Self-Organizing Map
Self-Organizing maps provide a method for viewing information in a way that is intuitive, while preserving the topology of the higher dimensional data.
The following algorithm is run on each iteration of a properly initialized SOM network.
1. Determine the SOM neuron which is closest to the input vector by computing the following for each SOM neuron:
Where i and j are the dimensions of the weight matrix w, and x is the input vector.2. Update the winning neuron and the neurons in it's update neighborhood:
Where α is the current learning rate.3. On the update interval, diminish learning rate and neighborhood size.
The effect of the algorithm is such that the SOM neurons that remain are characteristic of the trends of input patterns.
In Simbrain, the weight matrix information is stored in the incoming synapses of the SOM neurons. Input Vectors are interpreted either from the activations of the neurons connecting to the SOM network, or from an input file of the *.csv format, the same file format that data worlds are saved in. Neighborhoods are currently only circular, where Neighborhood Size denotes the circles radius.
Initialization
SOMs are initialized with some number of neurons, in any formation. Formation is significant, as the neighborhood parameters are dependent on physical location. Input vectors are interpreted from neurons connecting to the SOM network; these neurons should be created
in the order of their occurance in the vector , and their quantity should be the length of the input vectors at hand. Furthermore, these neurons should be entirely connected to the SOM network; this is to say, the each input neuron should be connected to every SOM neuron. The synapses should be either small or sampled evenly from the subspace spanned by the two largest principal component eigenvectors. The total number of input vectors should be entered as the Update Interval.
Recall
Once the network has been trained, one can more easily read the SOM neuron data by using the Recall function to force the synapse values of the SOM neuron of greatest activation upon the input neurons. This does not iterate any network.
Train
The Train dialog is a tool that allows for quick and easy training of an SOM. It analyzes data from an input file to feed input vectors for training.
Play: Trains the network until told to stop.
Iterate: Iterates the network once.
Train: Trains the network in batches of the size given by the Batch parameter.
Parameters
Initial Learning Rate: The base learning rate from which all future learning rates are derived. Usually not equal to zero.
Initial Neighborhood Size: The base Neighborhood Size from which all future neighborhood sizes are derived.
Learning Decay Rate: The proportion that is imposed on the learning rate after each full iteration.
Neighborhood Decay Amount: The amount that Neighborhood Size decreases after each full iteration.
Update Interval: This is the interval that the Learning Decay Rate and Neighborhood Decay Amount is updated. In most cases, this is equal to the total amount of input vectors.
Randomize SOM Weights
Randomize all weights attaching to this subnetwork.