Self-organising feature maps are a way of making computers classify input data according to arbitrary features of that data, with little input from human beings.
Also known as Kohonen networks, the maps are created by a form of neural network. This consists of a series of input neurons, connected to an array of output neurons. Each output neuron stores a vector, corresponding to a point in space. The vectors are initially assigned at random, but eventually they arrange themselves into a representation of the input space; neurons corresponding to related or similar inputs are clustered together in this resulting map.
This is useful firstly because the map that is produced can often bring out some of the order in the inputs which may not be obvious by a simple examination of the inputs themselves (which may in some cases have many dimensions); it can also be used to classify fresh inputs in terms of inputs already received. The algorithm has been applied, for example, in speech and handwriting recognition systems, and has also proven its worth in retrieving other images which resemble any given input image.
The self-organisation of the feature map works by repeatedly finding which of the neurons currently matches a given input most closely; the vector associated with this neuron is then updated to bring it closer to the input which it matched, and crucially the vectors of neighbouring neurons are similarly updated, but to a lesser degree. It is this updating of neighbouring neurons which leads to similar features being clustered together in the final map.
Usually, in the early stages of running the algorithm, many neurons are updated by a large factor to bring them closer to the input vector; later on, the size of the ‘neighbourhood’ of neurons slowly shrinks, and so does the size of each update. This allows the map to initally arrange itself into roughly the same sort of shape as the input space, followed by closer matching of any fine details.