This project involved implementing Jon Tapson’s SKIM architecture in Nengo. These networks differ from standard Nengo/NEF models in that the calculation of optimal neural decoders is based on the neuron’s activity over some time window (usually ~10-100ms), rather than the instantaneous/steady-state activity.

The important part of this architecture is to obtain time-varying dynamics in the network (so the temporal decoding has meaningful variations/data to decode). This can be accomplished through varying time constants or synaptic delays on the dendritic populations. The base Nengo implementation does not have a rigorous notion of synaptic delay: all synapses are simply delayed by one simulation timestep. Thus for this project I extended the Nengo codebase to allow users the option of specifying variable synaptic delays. Downloading the latest version of Nengo (www.nengo.ca) will include these changes.

With this framework in place, the SKIM architecture can be recreated quite accurately in Nengo. Its usage is fairly straightforward: the user specifies the desired input/output signal (these can both be multidimensional), and the SKIM Nengo code will build a network that computes that mapping. It is also possible to specify a threshold for pattern detection, one of the common use cases of the SKIM architecture.

The source code is attached, as well as a video showing the network in action detecting two different patterns in the spiking activity of 10 input neurons.