exponenta event banner

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

Нейроны в 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.

Карта будет представлять собой одномерный слой 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