<div dir="ltr"><div><div><div>Hi Claus,<br><br></div>The problem is likely just that you don't have enough neurons in your 20 dimensional ensemble. Computing a complex function like four different dot products in a single ensemble is going to require a lot of neurons. You could make it more tractable by splitting up the calculation. For example, you do four 1D multiplies to do the dot product for one vector, then you repeat that 4 times for your 4 vectors, and then you combine the results together.<br><br></div>Also, if you're using Nengo 2.0, you can take a look at the `nengo.networks.Product` network to see how to go about implementing an element-wise product as accurately as possible. The main trick is that you want to set all your encoders to be on the diagonals (e.g., [1, 1], [1,-1], [-1, 1], [-1,-1]). Also don't forget that you will probably need to adjust the radius of your ensemble to match the range of the values you are multiplying.<br><br></div>Daniel<br></div><div class="gmail_extra"><br><div class="gmail_quote">On 21 November 2014 04:21, Claus Agerskov <span dir="ltr"><<a href="mailto:clausagerskov@hotmail.com" target="_blank">clausagerskov@hotmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div dir="ltr">Hi<div>I have a model where an ensemble stores four different semantic pointer in the form of 4D vectors. To this ensemble is coupled a simplenode input that shows one of those four pointers every half a second. Both input and storage ensembles are outputting to a another ensemble that is 20 dimensional. It takes five 4D inputs, which represents every pattern stored (4) and the simplenode (1). The ensemble that takes the input then computes four dot products, comparing each pattern to the (simplenode) input. This in effect should give a signal of 1 every time a pattern is recognized. My problem is however that this system only works if the ensemble comparing the inputs is using direct mode. I assume this is because the NEF algorithm cannot compute the necessary weights. Is this because the full weight matrix between the inputs and the dot product ensemble is not square (currently a 4x5-matrix)? As I have looked through a lot of Eliasmith's and his colleague's papers and the How to Build a Brain book, I see that the Basal Ganglia model as well as the Clean-up memory model is performing the same function that I am interested in but simply by having the dot product ensemble have direct access to the full vocabulary which doesn't seem very biologically realistic. Am I required to using a direct mode ensemble or is there a better way of comparing two semantic pointer outputs using the dot product? </div><div>Sorry for the very long question, hope you will forgive me!</div><div>With best regards</div><span class="HOEnZb"><font color="#888888"><div>Claus Agerskov</div> </font></span></div></div>
<br>_______________________________________________<br>
nengo-user mailing list<br>
<a href="mailto:nengo-user@ctnsrv.uwaterloo.ca">nengo-user@ctnsrv.uwaterloo.ca</a><br>
<a href="http://ctnsrv.uwaterloo.ca/mailman/listinfo/nengo-user" target="_blank">http://ctnsrv.uwaterloo.ca/mailman/listinfo/nengo-user</a><br>
<br></blockquote></div><br></div>