RSS    

   Дипломная работа: Моделирование сети кластеризации данных в MATLAB NEURAL NETWORK TOOL

plotsom(pos) % (рисунок 3.8).

Рисунок 3.8 – Сетка со случайным расположением узлов

3.2.2 Функции для расчета расстояний

В ППП NNT используется 4 функции для расчета расстояний между узлами сетки.

Функция dist вычисляет евклидово расстояние между нейронами, размещенными в узлах сетки, в соответствии с формулой:

, (3.9)

где ,  - векторы положения нейронов с номерами i и j.

Обратимся к прямоугольной сетке из шести нейронов (рисунок 3.6) и вычислим соответствующий массив расстояний:

pos = gridtop(2,3)

d = disе(pos)

d =

0 1 1  1.4142 2  2.2361

1 0  1.4142 1  2.2361 2

1  1.4142 0 1 1  1.4142

1.4142 1 1 0  1.4142 1

2  2.2361 1  1.4142 0 1

2.2361 2  1.4142 1 1 0.

Этот массив размера 6х6 описывает расстояния между нейронами и содержит на диагонали нули, поскольку они определяют расстояние нейрона до самого себя, а затем, двигаясь вдоль строки, до второго, третьего и т. д.

На рисунке 3.9 показано расположение нейронов в узлах прямоугольной сетки. Введем понятие окрестности для прямоугольной сетки. В этом случае окрестность размера 1, или просто окрестность 1, включает базовый нейрон и его непосредственных соседей; окрестность 2 включает нейроны из окрестности 1 и их соседей.

Рисунок 3.9 – Расположение нейронов в узлах прямоугольной сетки

Размер, а соответственно и номер окрестности, определяется максимальным значением координаты смещения нейрона от базового. Вводимое таким способом расстояние между нейронами называется расстоянием максимального координатного смещения и может быть вычислено по формуле:

, (3.10)

где ,  - векторы положения нейронов с номерами i и j.

Для вычисления этого расстояния в ППП NNT предназначена М-функция boxdist. Для конфигурации нейронов, показанной на рисунке 3.6, эти расстояния равны:


роs = gridtop(2,3)

d = boxdist(pos)

d=

0 1 1 1 2 2

1 0 1 1 2 2

1 1 0 1 1 1

1 1 1 0 1 1

2 2 1 1 0 1

2 2 1 1 1 0.

Расстояние максимального координатного смещения между базовым нейроном 1 и нейронами 2, 3 и 4 равно 1, поскольку они находятся в окрестности 1, а расстояние между базовым нейроном и нейронами 5 и 6 равно 2, и они находятся в окрестности 2. Расстояние максимального координатного смещения от нейронов 3 и 4 до всех других нейронов равно 1.

Определим другое расстояние между нейронами, которое учитывает то количество связей, которое необходимо установить, чтобы задать путь движения от базового нейрона. Если задано  нейронов, положение которых определяется векторами , i = 1,..., S, то расстояние связи между ними определяется соотношением:

 (3.11)

Если евклидово расстояние между нейронами меньше или равно 1, то расстояние связи принимается равным 1; если между нейронами с номерами i и j имеется единственный промежуточный нейрон с номером , то расстояние связи равно 2, и т. д.

Для вычисления расстояния связи в ППП NNT предназначена функции linkdist. Для конфигурации нейронов, доказанной на рисунке 3.6, эти расстояния равны:

pos = gridtop{2,3)

d = linkdist(pos)

d =

0 1 1 2 2 3

1 0 2 1 3 2

1 2 0 1 1 2

2 1 1 0 2 1

2 3 1 2 0 1

3 2 2 1 1 0.

Расстояние связи между базовым нейроном 1 и нейронами 2, 3 равно 1, между базовым нейроном и нейронами 4 и 5 равно 2, между базовым нейроном и нейроном 6 равно 3. Наконец, определим расстояние максимального координатного смещении по формуле:

, (3.12)

где , - векторы расположения нейронов с номерами i и j.

Для вычисления расстояния максимального координатного смещения в ППП NNT предназначена функции mandist.

Вновь обратимся к конфигурации нейронов на рисунке 3.6:

pos = gridtop(2,3)

d = mandist(pos)

d =

0 1 1 2 2 3

1 0 2 1 3 2

1 2 0 1 1 2

2 1 1 0 2 1

2 3 1 2 0 1

3 2 2 1 1 0.

В случае прямоугольной сетки оно совпадает с расстоянием связи.

3.2.3 Архитектура сети

Промоделированная архитектура самоорганизующейся карты Кохонена в MATLAB NNT показана на рисунке 3.10.

Рисунок 3.10 – Архитектура самоорганизующейся карты Кохонена

Эта архитектура аналогична структуре слоя Кохонена за исключением того, что здесь не используются смещения. Конкурирующая функция активации возвращает 1 для элемента выхода , соответствующего победившему нейрону; все другие элементы вектора  равны 0.

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


3.2.4 Создание сети

Для создания самоорганизующейся карты Кохонена в составе ППП MATLAB NNT предусмотрена М-функция newsom. Допустим, что требуется создать сеть для обработки двухэлементных векторов входа с диапазоном изменения элементов от 0 до 2 и от 0 до 1 соответственно. Предполагается использовать гексагональную сетку размера 2x3. Тогда для формирования такой нейронной сети достаточно воспользоваться оператором:

net = newsom([0 2; 0 1], [2 3])

net.layers{l}

ans =

dimensions:[2 3]

distanceFcn:'linkdist'

distances:[6x6 double]

initFcn:'initwb'

netInputFcn:'netsum'

positions:[2x6 double]

size:6

topologyFcn:'hextop'

transferFcn:'compet'

userdata:[1x1 struct].

Из анализа характеристик этой сети следует, что она использует по умолчанию гексагональную топологию hextop и функцию расстояния linkdist.

Для обучения сети зададим следующие 12 двухэлементных векторов входа:

Р = [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].

Построим на топографической карте начальное расположение нейронов карты Кохонена и вершины векторов входа (рисунок 3.11):

plotsom(net.iw{1,1}, net.layers{1}.distances)

hold on

plot(P(1,;),P(2,:), '*к','markersize',10)

Рисунок 3.11 – Начальное расположение нейронов

Векторы входа помечены символом * и расположены по периметру рисунка, а начальное расположение нейронов соответствует точке с координатами (1, 0.5).

3.2.5 Обучение сети

Обучение самоорганизующейся карты Кохонена реализуется повекторно независимо от того, выполняется обучение сети с помощью функции trainwbl или адаптация с помощью функции adaptwb. В любом случае функция learnsom выполняет настройку элементов весовых векторов нейронов.

Прежде всего определяется нейрон-победитель и корректируются его вектор весов и векторы весов соседних нейронов согласно соотношению:

, (3.13)

где - параметр скорости обучения; - массив параметров соседства для нейронов, расположенных в окрестности нейрона-победителя i, который вычисляется по соотношению:

 (3.14)

где  - элемент выхода нейронной сети;  - расстояние между нейронами i и j; - размер окрестности нейрона-победителя.

Весовые векторы нейрона-победителя и соседних нейронов изменяются в зависимости от значения параметра соседства. Веса нейрона-победителя изменяются пропорционально параметру скорости обучения, а веса соседних нейронов - пропорционально половинному значению этого параметра.

Процесс обучения карты Кохонена включает 2 этапа: этап упорядочения векторов весовых коэффициентов в пространстве признаков и этап подстройки. При этом используются следующие параметры обучения сети (таблица 2.1):

Таблица 2.1

Параметры обучения сети

Параметры обучения и настройки карты Кохонена Значение по умолчанию
Количество циклов обучения neе.trainParamepochs N >1000
Количество циклов на этапе упорядочения netinputWeights{1,1}.learnParam.order_steps S 1000
Параметр скорости обучения на этапе упорядочения net.inputWeights{1,1}.leamParam.order_lr order_lr 0.9
Параметр скорости обучения на этапе подстройки net.inputWeights{1,1}.learnParam.tune_lr tune 0.02
Размер окрестности на этапе подстройки net.inputWeights(1,1).learnParam.tune_nd tune_nd 1

В процессе построения карты Кохонена изменяются 2 параметра: размер окрестности и параметр скорости обучения.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.