Hopfield Network
A discrete hopfield network is a collection of binary neurons that are fully connected to all neurons but themselves. The Hopfield Network exists as a subnetwork in Simbrain because it updates asynchronously, unlike the synchronized updating method of a standard network. Hopfield networks must be updated in this way in order to be guaranteed to converge on a stable state.
The synapses in a Hopfield networks are trained by the Hebb rule. Note that if you open these synapses, however, you will see that they are clamped; the synapse values are changed by Hopfield subnetwork. To train a Hopfield network set the neurons to some desired level and select "train" from subnetwork tab context menu. You may want to begin by clearing the networks.
To create a continuous Hopfield networks see below.
Initialization
Hopfield networks are initialized with some number of units, and are by default laid out as a grid. They are fully interconnected with no self connections.
Parameters
Update Order: This can be set to random or sequential. If set to random, the neuronns are updated in random order. This is the standard assumption of Hopfield networks. if sequential is used, neurons are updated in the same sequence each time, making it possible to reproduce chains of behavior.
Randomize
Randomizes so that all connections remain symmetric.
Train
Trains the hopfield network using the Hebb rule to learn the current pattern of activity across its nodes.
Continuous Hopfield Networks
To create a continuous Hopfield network use a set of Additive neurons in a standard network. These can be connected appropriately and trained by using Hebbian synapses. The user then clamps all neurons, iterates to train the synapses, then clamps all weights. On clamping, see toolbar.