Одномерная самоорганизующаяся карта

Нейроны в 2-D слое учатся представлять различные области входного пространства, где происходят входные векторы. В сложение соседние нейроны учатся реагировать на подобные входы, таким образом слой изучает топологию представленного входного пространства.

Здесь на модуль круге создаются 100 точек данных.

Для классификации этих точек в естественные классы будет использоваться конкурентоспособная сеть.

angles = 0:0.5*pi/99:0.5*pi;
X = [sin(angles); cos(angles)];
plot(X(1,:),X(2,:),'+r')

Figure contains an axes. The axes contains an object of type line.

Карта будет представлять собой 1-мерный слой из 10 нейронов.

net = selforgmap(10);

Укажите, что сеть должна быть обучена на 10 эпох и использовать train для обучения сети по входным данным.

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

Теперь постройте графики весовых позиций обученной сети с помощью plotsompos.

Красные точки являются векторами веса нейрона, и синие линии соединяют каждую пару на расстоянии 1.

plotsompos(net)

Figure SOM Weight Positions (plotsompos) contains an axes. The axes with title SOM Weight Positions contains 3 objects of type line.

Теперь карта может использоваться для классификации входов, таких как [1; 0]. Нейрон 1 или 10 должен иметь выход 1, так как вышеуказанный входной вектор находился на одном конце представленного входного пространства. Первая пара чисел указывает на нейрон, а одно число - на его выход.

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

     0
     0
     0
     0
     0
     0
     0
     0
     0
     1