Как уже отмечалось выше, можно задать различные топологии для карты расположения нейронов, используя М-функции gridtop, hextop, randtop.
Рассмотрим простейшую прямоугольную сетку размера 2´3 для размещения шести нейронов, которая может быть сформирована с помощью функции gridtop:
pos = gridtop(2,3)
pos =
0 1 0 1 0 1
0 0 1 1 2 2
plotsom(pos) % Рис.7.6
Соответствующая сетка показана на рис. 7.6. Метки position(1, i) и position(2, i) вдоль координатных осей генерируются функцией plotsom и задают позиции расположения нейронов по первой, второй и т. д. размерностям карты.
Рис. 7.6
Здесь нейрон 1 расположен в точке с координатами (0,0), нейрон 2 – в точке (1,0), нейрон 3 – в точке (0,1) и т. д. Заметим, что, если применить команду gridtop, переставив аргументы местами, получим иное размещение нейронов:
pos = gridtop(3,2)
pos =
0 1 2 0 1 2
0 0 0 1 1 1
Гексагональную сетку можно сформировать с помощью функции hextop:
pos = hextop(2,3)
pos =
0 1.0000 0.5000 1.5000 0 1.0000
0 0 0.8660 0.8660 1.7321 1.7321
plotsom(pos) % Рис.7.7
Рис. 7.7
Заметим, что М-функция hextop используется по умолчанию при создании карт Кохонена при применении функции newsom.
Сетка со случайным расположением узлов может быть создана с помощью функции randtop:
pos = randtop(2,3)
pos =
0.061787 0.64701 0.40855 0.94983 0 0.65113
0 0.12233 0.90438 0.54745 1.4015 1.5682
plotsom(pos) % Рис.7.8
Рис. 7.8