Создание, настройка и обучение карт Кохонена.

Чтоб уменьшить текст m-файла, повторяющиеся команды можно вынести в отдельный файл и оформить его как функцию, задав её характеристики и возвращаемые значения:

function [net,kk,mr]=foo(a,b,X)

[kv,kf]=size(X);

net=som(kf,[a,b]);

Функция делает создание, обучение и обработку результатов обучения сети Создание, настройка и обучение карт Кохонена..

Приступаем к написанию тела функции. Перед созданием сети необходимо найти количество входов нейросетевой модели. Оно равно количеству причин, т.е. столбцов в массиве X:

[kv,kf]=size(X);

Последующая команда создаёт карту Кохонена net размерностью axb:

net=som(kf,[a,b]);

Где заместо a и b будут показаны фактические значения Создание, настройка и обучение карт Кохонена..

После перед пуском обучения сети нужно задать его характеристики.

Зададим исходные и конечные значения. Все характеристики обучения задаются через массив с главных именованием options:

options(14)=500; #кол-во эпох

options(18)=0.1; #исходная скорость обучения

options(16)=0.01; #конечная скорость обучения

options(17)=0.25*b; #исходный радиус функции соседства

options(15)=1; #конечный радиус функции соседства

Обучение сети net на массиве данных X с Создание, настройка и обучение карт Кохонена. данными параметрами options осуществляется последующей командой:

net=somtrain(net,options,X);

Дальше определим номера нейронов фаворитов Y:

[D2,Y]=somfwd(net,X); # номера нейронов фаворитов

1-ый выходной параметр данной функции D2 – матрица, в какой на скрещении i-й строчки и j-го столбца находится квадрат евклидова расстояния меж вектором данных Создание, настройка и обучение карт Кохонена. i и весовым вектором нейрона j. В предстоящем исследовании этот массив не требуется.

Количество кластеров – количество несовпадающих номеров нейров-победителей в массиве Y. Сами номера можно получить при помощи функции intersect. Данная функция служит для определения скрещения, она выдаст массив из частей, которые принадлежат обоим массивам

NN=intersect(Y,Y Создание, настройка и обучение карт Кохонена.); #номера нейронов получивших активацию

kk=length(NN); #количество кластеров

Дальше приступаем к расчёту среднего межкластерного расстояния. Это среднее расстояние меж центроидами кластеров. В карте самоорганизации центроидами являются весовые векторы нейронов. Получим матрицу весовых коэффициентов сети:

W=sompak(net); # матрица весовых коэффициентов

Весовые векторы – строчки матрицы W.

Используем массив с номерами нейронов-победителей Создание, настройка и обучение карт Кохонена., скопируем только надлежащие им строчки в новейшую матрицу:

W1=W(NN,:); # массив с номерами нейронов-победителей

Рассчитаем суммарное векторное расстояние SED и разделим на количество кластеров, чтоб найти среднее межкластерное расстояние:

SED=0;

for i=1:kk

for j=1:kk

SED=SED+sqrt( sum((W1(i,:)-W1(j,:)).^2));

end

end

mr=SED/kk;

Отбор хорошей Создание, настройка и обучение карт Кохонена. сети.

Нужно выстроить карты самоорганизации с различной размерностью нейронного слоя. Для каждой из карт:

- задать размерность;

- задать характеристики обучения;

- провести обучение на приобретенном массиве X;

- подсчитать количество кластеров, на которые разбиты начальные 16 столбцов массива Х;

- высчитать среднее межкластерное евклидово расстояние.

Этот метод, с целью сокращения программки, реализуем в Создание, настройка и обучение карт Кохонена. виде отдельного файла. Используем двумерную карту самоорганизации. Размеры нейронного слоя обозначим через a и b. В таблице приведены размерности карт.

A
B

После того, как будут определены результаты обучения всех карт самоорганизации, посреди их необходимо избрать лучшую. Хорошей будем считать ту карту, у которой среднее межкластерное евклидово расстояние очень посреди Создание, настройка и обучение карт Кохонена. всех карт.

Для отбора хорошей сети нужно выстроить график.

В системе Octave существует несколько методов выстроить два графика на одном рисунке, к примеру использовать функцию plotyy. В данном случае масштабы по оси ординат будут независимы. Аргументы функции: plotyy(X1,Y1,X2,Y2), где массивы X1 и Y1 содержат координаты Создание, настройка и обучение карт Кохонена. точки для построения первого графика, X2 и Y2 – второго. Пусть 1-ый график – количество кластеров, 2-ой – межкластерное расстояние. Потому что X1 и X2 совпадают, то пригодится сформировать 3 массива:

1) Количество нейронов;

2) Количество кластеров;

3) Межкластерное расстояние.

Таким макаром, описанные выше деяния в программке можно показать так:

X(:,deli)=[]; #Удаление

X1=zeros(0,1); # количество нейронов

Y1=zeros Создание, настройка и обучение карт Кохонена.(0,1); # количество кластеров

Y2=zeros(0,1); # межкластерное расстояние

for a=3:8

for b=a:a+1

[net,kk,mr]=foo(a,b,X);

X1=cat(1,X1,a*b); #Склейка количества нейронов

Y1=cat(1,Y1,kk); #Склейка количества кластеров

Y2=cat(1,Y2,mr); #Склейка межкластерного расстояния

end

end

plotyy(X1,Y1,X1,Y2); #Построение графика

Найти лучшую сеть можно по Создание, настройка и обучение карт Кохонена. графику:

Набросок 1 – Графики зависимости количества кластеров и межкластерного расстояния от количества нейронов карты.

Тут ось абсцисс – количество нейронов в сети, голубая линия – количество кластеров, зелёная – среднее межкластерное евклидово расстояние. Как видно, хорошей является карта 7х7=49 нейронов, выделившая 13 кластеров.

Вывод: Используя функционал математического пакета Octave, мы подготовили набор данных, на которых решалась Создание, настройка и обучение карт Кохонена. задачка кластеризации. Также мы исследовали и сделали карты самоорганизации – карты Кохонена, с различной размерностью нейронного слоя. Итогом работы стало построение графика зависимости количества кластеров и межкластерного расстояния, при помощи которого мы обусловили лучшую сеть. Можно прийти к выводу, что хорошей является двумерная карта Кохонена 7х7=49 нейронов, выделившая 13 кластеров.


sozdanie-rabochih-mest-specialnih-rabochih-mest-dlya-trudoustrojstva-invalidov.html
sozdanie-rastrovogo-izobrazheniya-dlya-paneli-instrumentov.html
sozdanie-redaktirovanie-formatirovanie-sohranenie-i-raspechatka-tekstovogo-dokumenta-v-srede-tekstovogo-redaktora.html