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

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

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

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

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

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

net = selforgmap(10);

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

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

Теперь постройте положения веса обученной сети при помощи plotsompos.

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

plotsompos(net)

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

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

     0
     0
     0
     0
     0
     0
     0
     0
     0
     1

Для просмотра документации необходимо авторизоваться на сайте