A collection of videos for demonstrating aspects of the Neural Engineering Framework. See also our Nengo tutorial videos and Spaun demonstrations
Fly through of several models
This video was used at our NIPS demo display.
What does it look like to represent a high-dimensional vector using neurons? Here is a video of 2500 neurons representing a 25-dimensional vector. The vector is shown as an image at the top of the screen, but the vector being represented does not need to be an image. The shading of the neurons indicates their membrane voltage: the start white, then become darker as the voltage builds up. Eventually, they fire (yellow), resetting their voltage back to the beginning. We have organized the neurons so that ones with similar preferred direction vectors are near each other.
Several different 2-dimensional neural oscillators running in Nengo. The recurrent connections implement a simple, square, and controlled oscillator.
Convolution in neurons
This video shows the neural activity of a network that combines two 25-dimensional vectors into a single new 25-dimensional vector using the circular convolution. This operation is the basis of our approach to conceptual combination (binding symbols together). The resulting vector acts as a new symbol, with the added property that it can be broken down into the original components if needed. The two original vectors are represented by the two left-hand groups of neurons (1600 neurons each). The far left shows a pictorial version of the vector, but these vectors could be images, sounds, somatosensory data, or anything else that could be represented using a vector. The far right show a pictorial version of the resulting convolved vector. The shading of the neurons indicates their membrane voltage. When a neuron reaches its firing threshold (pure black), it spikes (yellow), sending current to any neurons it is connected to. The two neural groups on the left both have connections to an intermediate group of neurons (not shown). This intermediate group consists of 6400 neurons. These neurons then connect to the neural group shown on the right. After one minute in the video (0.1 seconds of simulated time), we change the input to the top group of neurons. The system now performs the convolution using this new vector. Importantly, synaptic connection weights are not changed in any way. This demonstrates that this system can convolve any two given vectors, rather than requiring special dedicated synaptic connections for each possible combination. After two minutes (0.2 seconds of simulated time), the input to the bottom group is also changed.
Neural Production System
Part of our ongoing research involves implementing symbolic rule-following in neurons. This would form a neural implementation of a production system, which is a common component of many cognitive architectures. For a full paper on this model, see here.
In this demonstration, the large neural group represents
the current state (the buffers in ACT-R terms). The five neural groups below
it represent five different productions. Each production has a particular
state it should be applied in. When this state occurs, these neurons begin to
fire. When the neurons fire, they in turn affect the buffer state, changing
it. These five productions are configured to each change the state in a cycle: