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