I have stored a semantic pointer that is the convolution of two semantic pointers “A*Pos” using a networks.circular convolution . I want to unbind the pointer “A” from Pos using another convolution network using another convolution network.
I tried using another nengo.networks.circularconvolution network with my memory trace as one input and the Pos vector as the other, with the invert_B argument set as True. This does not seem to be working.
I guess I need to get the involution of “Pos” and pass that as the second input to the circular convolution network instead of performing a correlation.
Is there a built-in way to get the involution of a semantic pointer in nengo or should I manually multiply it with the involution matrix? I don’t want to use the action language.
Also, is there a need for normalisation at any stage of the binding/ unbinding operation?