Для создания самоорганизующейся карты Кохонена в составе ППП NNT предусмотрена М-функция newsom. Допустим, что требуется создать сеть для обработки двухэлементных векторов входа с диапазоном изменения элементов от 0 до 2 и от 0 до 1 соответственно. Предполагается использовать гексагональную сетку размера 2´3. Тогда для формирования такой нейронной сети достаточно воспользоваться оператором
net = newsom([0 2; 0 1], [2 3]);
net.layers{1}
ans =
dimensions: [2 3]
distanceFcn: 'linkdist'
distances: [6´6 double]
initFcn: 'initwb'
netInputFcn: 'netsum'
positions: [2´6 double]
size: 6
topologyFcn: 'hextop'
transferFcn: 'compet'
userdata: [1´1 struct]
Из анализа характеристик этой сети следует, что она использует по умолчанию гексагональную топологию hextop и функцию расстояния linkdist.
Для обучения сети зададим следующие 12 двухэлементных векторов входа:
P = [0.1 0.3 1.2 1.1 1.8 1.7 0.1 0.3 1.2 1.1 1.8 1.7;...
0.2 0.1 0.3 0.1 0.3 0.2 1.8 1.8 1.9 1.9 1.7 1.8];
Построим на топографической карте начальное расположение нейронов карты Кохонена и вершины векторов входа (рис. 7.11):
plotsom(net.iw{1,1},net.layers{1}.distances)
hold on
plot(P(1,:),P(2,:),'*k','markersize',10)
Рис. 7.11
Векторы входа помечены символом * и расположены по периметру рисунка,
а начальное расположение нейронов соответствует точке с координатами (1, 0.5).