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