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

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

Здесь 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 object. The axes object 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 object. The axes object 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