I’m confused about the setting of neuron encoder and bias.
I’ve go throught some examples, neuron encoder is explicitely set as something like this:
encoders = [, [-1]]
I know this can make neurons response to positive input or negative input.
In some cases, if encoder is not set, I looked at the source code, encoder will be UniformHypersphere by default.
In nengo dl tutorial(https://www.nengo.ai/nengo-dl/examples/from-nengo.html), it says encoder can also be optimized. But I can’t find how nengo dl optimize the encoder.
In addition, A Technical Overview of the Neural Engineering Framework says decoder can be obtained by least-squares minimization, however encoder is randomly determined in this case.
I also noticed there is a tutorial “Improving function approximation by adjusting tuning curves”. But this seems like getting a better tuning curve by observation.
So my questions are:
- what does UniformHypersphere mean? It seems like encoders value are uniformly distributed.
- I’d like to encode time-varing input as spike trains, I hope output spike trains can reflect input accurately.
How do I determine optimal encoder and bias? input distrubution and statistics are already known, is there any way to get optimal encoder/bias analytically or by some optimization methods?
- Is it possible to get encoder by least square optimization if I can fix all decoder value to 1? Since I need the spike train for future processing, I don’t care about the decoder value. My objective is to find encoder/bias that can make the spike trains as distinguishable as possible if provide different input.