This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

One-Dimensional Self-organizing Map

Neurons in a 2-D layer learn to represent different regions of the input space where input vectors occur. In addition, neighboring neurons learn to respond to similar inputs, thus the layer learns the topology of the presented input space.

Here 100 data points are created on the unit circle.

A competitive network will be used to classify these points into natural classes.

angles = 0:0.5*pi/99:0.5*pi;
X = [sin(angles); cos(angles)];

The map will be a 1-dimensional layer of 10 neurons.

net = selforgmap(10);

Specify that the network is to be trained for 10 epochs and use train to train the network on the input data.

net.trainParam.epochs = 10;
net = train(net,X);

Now plot the trained network's weight positions by using plotsompos.

The red dots are the neuron's weight vectors, and the blue lines connect each pair within a distance of 1.


The map can now be used to classify inputs, such as [1; 0]. Either neuron 1 or 10 should have an output of 1, as the above input vector was at one end of the presented input space. The first pair of numbers indicate the neuron, and the single number indicates its output.

x = [1;0];
a = net(x)
a = 10×1


Was this topic helpful?