Головна

Нейронная сеть Кохонена

  1. Нейронная сеть Хебба

6.6.1. Звіт треба оформити в зошиті для звітів або на аркушах формату А4.

6.6.2. Звіт може бути роздрукований.

6.6.3. Звіт виконують українською мовою.

6.6.4. У звіті мають бути вказані:

1) номер лабораторної роботи;

2) тема лабораторної роботи;

3) мета її виконання;

4) індивідуальне завдання;

5) результати виконання індивідуального завдання;

6) особливості функціонування демонстраційної програми і результати, отримані при її виконанні;

7) відповіді на контрольні запитання;

8) висновки по даній лабораторній роботі.

Контрольні запитання

1. Чому отримуване після ділення за наведеними вище схемами значення частки часто не співпадає з очікуваним?

2. Чим відрізняється схема ділення без відновлення залишку від схеми ділення з відновленням залишку?

3. Намалювати схему алгоритму виконання ділення під час формування цілої частини частки.

4. Намалювати схему алгоритму виконання ділення без відновлення залишку, а також з відновленням залишку під час формування дробової частини частки.

Нейронная сеть Кохонена

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

Структура этой нейронной сети, имеющей и другие названия - самоорганизующееся отображение Кохонена, топологически сохраняющее преобразование, самоорганизующиеся карты признаков Кохонена, была предложена Кохоненом в 1982 году. Отличительная особенность сети - отображать входную информацию, сохраняя отношение соседства входных элементов, т.е. сохраняя её топологическую структуру. Это свойство присуще мозгу, но используется лишь в немногих нейронных сетях, хотя оно часто бывает необходимо при установлении характера взаимосвязей, которые человеческим глазом трудно улавливаются. В этом случае возможно применение отображения Кохонена, которое позволяет от трудно воспринимаемых человеческим зрением взаимосвязей элементов перейти, например, к упорядоченному расположению элементов на прямоугольной, гексагональной или любой другой подходящей сетке. Это широко используется для преобразования многомерных исходных данных в одно- или двумерные карты признаков Кохонена (или самоорганизующиеся карты Кохонена).

Другой возможный эффективный случай применения преобразования Кохонена. Имеется множество объектов, часть из них очень похожа друг на друга, другая нет или похожа относительно, а необходимо выполнить классификацию таким образом, чтобы было наглядно видно каким образом группируются объекты и насколько они близки или далеки друг от друга.

Возможно также применение отображения Кохонена для преобразования многомерных исходных данных в одно- или двумерные "карты признаков Кохонена", которые можно рассматривать как результат предобработки для других нейронных сетей.

Структура сети Кохонена представлена на рис. 1.

Сеть имеет два слоя нейронов. Нейроны первого слоя воспринимают входную информацию в виде n-мерных непрерывных векторов и передают её А-нейронам, которые упорядочены в одно- или двумерном массиве как элементы некоторых кластеров. Во время процесса самоорганизации при предъявлении вектора некоторого входного изображения выделяется А-элемент кластера, который в смысле минимума заданного расстояния (например, квадрата евклидового расстояния) наиболее хорошо соответствует этому входному вектору. Этот выделенный или победивший элемент и его ближайшие соседи (или в терминах топологии - покрытие элемента) по заданному правилу изменяют свои веса, чтобы ещё лучше соответствовать входному вектору, т.е. элемент победитель и его покрытие в некотором смысле близки к входному вектору и стремятся эту близость увеличить.

 
 


Пример покрытия элемента Aj для одномерного случая приведен на рис. 2, а для двумерного случая - на рис. 3.

 
 


На рис. 2 покрытие элемента Aj с радиусом R = 1 включает кроме Aj всего два элемента: Aj - 1 и Aj + 1, а покрытие с R = 5 - десять элементов: Aj - 5, ..., Aj - 1, Aj + 1, ..., Aj + 5. В двумерном случае (рис 3) при прямоугольной решетке и R = 1в покрытие входят восемь элементов, ближайших к выделенному, а в случае гексагональной решетки - шесть. Победившие элементы, расположенные близко к краю решетки имеют, меньшее число ближайших соседей, отсутствующие соседи в процессе функционирования сети просто игнорируются.

Алгоритм работы сети Кохонена

Шаг 1. Инициируются веса связей сети случайными числами из интервала [0, 1]. Задается множество, определяющее топологическую близость элементов, и обучающий коэффициент

Шаг 2. Пока не выполняются условия останова, реализуются шаги 3 - 9 алгоритма.

Шаг 3. Для каждого входного вектора выполняются шаги 4 - 6.

Шаг 4. Для каждого нейрона Aj вычисляется расстояние

Шаг 5. Определяется нейрон Aj для которого расстояние D(Aj) минимально.

Шаг 6. Для всех А-элементов в пределах заданной окрестности R элемента Aj и для всех i выполняется изменение весов связей:

Шаг 7. Модифицируется обучающий коэффициент α.

Шаг 8. Уменьшается радиус топологической близости как функция времени.

Шаг 9. Проверяется условия останова.

Шаг 10. Останов.

Замечание 1. Рассмотрим некоторые возможные альтернативные изменения в структуре алгоритма.

Исходным весам в приведенном алгоритме задаются случайные значения. Однако, если имеется некоторая априорная информация о расположении или распределении кластеров, касающаяся конкретной изучаемой проблемы, то её можно и желательно учесть в исходных весах связей нейронов.

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

Возможными условиями окончания итерационного процесса могут быть: заданное число итераций (предъявлений входного множества изображений) или уменьшение обучающего коэффициента до наперед заданного значения, или изменения величин элементов матрицы весов между двумя итерациями меньше заданного значения и т.д.

Пример 1. Применение самоорганизующегося преобразования Кохонена для кластеризации четырех векторов (0 0 0 1), (0 0 1 1), (1 0 0 0), (1 1 0 0 ) на два класса.

Поскольку вектора 4-мерные, то число входных S-нейронов равно 4, а так как задано два класса, то m = 2 и число А-нейронов равно 2, отсюда также следует, что покрытие нейронов состоит только из самого нейрона, т.е. радиус окрестности нейронов R равен нулю. Положим также, что обучающий коэффициент изменяется как функция времени:

где k = 0,5 и

Используем приведенный выше алгоритм для решения данной задачи кластеризации:

Шаг 1. Инициируется матрица Mq весов связей случайно выбранными числами из интервала [0, 1]:

.

Инициируется радиус и обучающий коэффициент: R = 0,a = 0,6.

Задаются условия окончания итерационного процесса: процесс оканчивается, если выполняются восемь неравенств:

(1)

где элементы матрицы весов Mq после завершения текущей и предшествующей итераций.

Шаг 2. Начинаются вычисления, реализующие шаги 3 - 9 алгоритма.

Шаг 3. Для первого вектора S1 = (0 0 0 1) выполняем шаги 4 - 6.

Шаг 4. Для нейронов A1 и A2 вычисляются расстояния:

D(A1) = (0,7 - 0)2 + (0,4 - 0)2 + (0,5 - 0)2 + (0,2 - 1)2 = 1,54,

D(A2) = (0,6 - 0)2 + (0,1 - 0)2 + (0,5 -0 )2 + (0,9 - 1)2 = 0,63.

Шаг 5. Определяется, что D(A1) > D(A2), следовательно, нейрон A2 является победителем.

Шаг 6. Вычисляются новые веса победившего нейрона A2:

После расчетов получается новая матрица весов:

.

Шаг 3. Для второго вектора S 2 = (0 0 1 1) выполняем шаги 4 - 6.

Шаг 4. Для нейронов A1 и A2 вычисляются расстояния:

D(A1) = (0,7 - 0)2 + (0,4 - 0)2 + (0,5 - 1)2 + (0,2 - 1)2 = 1,54,

D(A2) = (0,24 - 0)2 + (0,04 - 0)2 + (0,2 -0 )2 + (0,96 - 1)2 = = 0,70.

Шаг 5. Определяется, что нейрон A2 является победителем.

Шаг 6. Адаптируются веса связей победившего нейрона и получается матрицу весов с новым вторым столбцом:

.

Шаг 3. Для третьего вектора S 3 = (1 0 0 0) выполняются шаги 4 - 6.

Шаг 4. Для нейронов A1 и A2 вычисляются расстояния:

D(A1) = (0,7 - 1)2 + (0,4 - 0)2 + (0,5 - 0)2 + (0,2 - 0)2 = 0,54,

D(A2) = (0,096 - 1)2 + (0,016 - 0)2 + (0,680 -0 )2 +

+ (0,984 - 0)2 = 1,888.

Шаг 5. Определяется, что нейрон A1 является победителем.

Шаг 6. Адаптируются веса связей победившего нейрона и получается матрицу весов с новым первым столбцом:

.

Шаг 3. Для четвертого вектора S 4 = (1 1 0 0) выполняем шаги 4 - 6.

Шаг 4. Вычисляются расстояния:

D(A1) = (0,880 - 1)2 + (0,160 - 1)2 + (0,200 - 0)2 +

+ (0,080 - 0)2 = 0,766,

D(A2) = (0,096 - 1)2 + (0,016 - 1)2 + (0,680 - 0)2 +

+ (0,984 - 0)2 = 3,216.

Шаг 5. Определяется, что победителем является нейрон A1.

Шаг 6. Адаптируются веса связей победившего нейрона и получается новая матрица весов:

.

Шаг 7. Модифицируется обучающий коэффициент a:

a(t = 1) = 0,5×a(t = 0) = 0,5×0,6 = 0,3.

Шаг 8. Поскольку R = 0, то этот шаг не выполняется.

Шаг 9. Проверяются условия останова и так как они не выполняются, то переход на шаг 2 алгоритм (в противном случае - останов).

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

...

После выполнения девятой итерации выполняются условия останова (1) и алгоритм прекращает свою работу.

Для векторов (0 0 0 1), (0 0 1 1), (1 0 0 0), (1 1 0 0) в силу того, что для каждого из двух классов только одна из единичных компонент есть у обоих представителей класса, а вторая - только в одном из двух, а остальные компоненты векторов нулевые, идеальная матрица Mи весов имеет вид:

Если сравнивать элементы w21, w32 матриц Mи и M9, то максимальная погрешность элементов, полученных в результате итерационной процедуры, составляет 16,5%. Такая относительно большая погрешность расчетов объясняется слишком быстрым изменением обучающего коэффициента α. Увеличим в выражении коэффициент k с 0,5 до 0,75 и повторим весь итерационный процесс при тех же исходных данных и условиях окончания итераций. В результате получим, что число итераций до выполнения условий останова возрастет с девяти до семнадцати, а погрешность определения элементов w21, w32 матрицы весов уменьшится до 8%:

...,

Из сопоставления элементов матриц и следует, что улучшились не только элементы w21, w32, но и все остальные компоненты матрицы. При увеличении числа итераций до 70 удается получить погрешность элементов w21, w32 в пределах одного процента.

3. Индивидуальные задания

3.1. Выполнить кластеризацию девяти двоичных векторов с помощью нейронной сети Кохонена на три класса. Двоичные вектора получить следующим образом:

Записать свою фамилию, имя и отчество. Выбрать из этих трех слов слово с наибольшим числом букв (если два или все слова имеют одинаковое наибольшее число букв, то выбирается любое из них). Закодировать гласные и согласные буквы этого слова соответственно единицами и нулями. Полученный двоичный код станет первым вектором ( ) из девяти векторов, кластеризацию которых необходимо выполнить с помощью нейронной сети Кохонена. Второй и третий вектора ( ) получите из вектора путем инверсии, соответственно, второго и третьего разряда вектора . Затем аналогичным образом закодируйте нулями и единицами буквы следующих двух слов. Если полученные двоичные вектора ( ) короче векторов , , то их длину увеличьте до длины этих векторов, добавляя слева или справа необходимое число двоичных разрядов. Вектора и получите соответственно из векторов путем инверсии, соответственно, второго и третьего разрядов этих векторов.

3.2. Разработать архитектуру нейронной сети для ваших входных векторов.

3.3. Обосновать предварительный выбор параметров и , весов связей нейронной сети для Вашего случая.

3.4. Исследуйте работоспособность сети при различных значениях .

4. Содержание отчета

4.1. Тема лабораторных занятий.

4.2. Индивидуальное задание.

4.3. Результаты выполнения пунктов 3.1 - 3.4 индивидуального задания.

-



Перевірка за допомогою демонстраційної програми правильності результатів, отриманих під час виконання індивідуального завдання у відповідності до п.6.4 | Глава 5. Редактор MPLAB
© um.co.ua - учбові матеріали та реферати