Самоорганизующиеся нейронные сети
Свойство самоорганизации является одним из наиболее привлекательных свойств нейронных сетей. Таким свойством обладают самоорганизующиеся нейронные сети, описанные финским ученым Т. Кохоненом [23]. Нейроны самоорганизующейся сети могут быть обучены выявлению групп (кластеров) векторов входа, обладающих некоторыми общими свойствами. При изучении самоорганизующихся нейронных сетей, или сетей Кохонена,существенно различать сети с неупорядоченными нейронами, которые часто называют слоями Кохонена,и сети с упорядочением нейронов, которые часто называют картами Кохонена. Последние отражают структуру данных таким образом, что близким кластерам данных на карте соответствуют близко расположенные нейроны.
Для создания самоорганизующихся нейронных сетей, являющихся слоем или картой Кохонена, предназначены М-функции newc и newsom соответственно.
По команде help selforg можно получить следующую информацию об М-функциях, входящих в состав ППП Neural Network Toolbox и относящихся к построению сетей Кохонена:
Self-organizing networks
| Самоорганизующиеся сети
| New networks
| Формирование сети
| newc
newsom
| Создание слоя Кохонена Создание карты Кохонена
| Using networks
| Работа с сетью
| sim
init
adapt
train
| Моделирование Инициализация Адаптация Обучение
| Weight functions
| Функции расстояния и взвешивания
| negdist
| Отрицательное евклидово расстояние
| Net input functions
| Функции накопления
| netsum
| Сумма взвешенных входов
| Transfer functions
| Функции активации
| compet
| Конкурирующая функция активации
| Topology functions
| Функции описания топологии сети
| gridtop
hextop
randtop
| Прямоугольная сетка Гексагональная сетка Сетка со случайно распределенными узлами
| Distance functions
| Функции расстояния
| dist
boxdist
mandist
linkdist
| Евклидово расстояние Расстояние максимального координатного смещения Расстояние суммарного координатного смещения Расстояние связи
| Initialization functions
| Функции инициализации сети
| initlay
initwb
initcon
midpoint
| Послойная инициализация Инициализация весов и смещений Инициализация смещений с учетом чувствительности нейронов Инициализация весов по правилу средней точки
| Learning functions
| Функции настройки параметров
| learnk
learncon
learnsom
| Правило настройки весов для слоя Кохонена Правило настройки смещений для слоя Кохонена Правило настройки весов карты Кохонена
| Adapt functions
| Функции адаптации
| adaptwb
| Адаптация весов и смещений
| Training functions
| Функции обучения
| trainwb1
| Повекторное обучение весов и смещений
| Demonstrations
| Демонстрационные примеры
| democ1
demosm1
demosm2
| Настройка слоя Кохонена Одномерная карта Кохонена Двумерная карта Кохонена
|
Слой Кохонена
Рассмотрим самоорганизующуюся нейронную сеть с единственным слоем, задача которой заключается в том, чтобы правильно сгруппировать (кластеризировать) поступающие на нее векторы входа.
Архитектура сети
Архитектура слоя Кохонена показана на рис. 7.1.
Рис. 7.1
Нетрудно убедиться, что это слой конкурирующего типа, поскольку в нем применена конкурирующая функция активации. Кроме того, архитектура этого слоя очень напоминает архитектуру скрытого слоя радиальной базисной сети. Здесь использован блок ndist для вычисления отрицательного евклидова расстояния между вектором входа p и строками матрицы весов IW11. Вход функции активации n1 – это результат суммирования вычисленного расстояния с вектором смещения b. Если все смещения нулевые, максимальное значение n1 не может превышать 0. Нулевое значение n1 возможно только, когда вектор входа p оказывается равным вектору веса одного из нейронов. Если смещения отличны от 0, то возможны и положительные значения для элементов вектора n1.
Конкурирующая функция активации анализирует значения элементов вектора n1 и формирует выходы нейронов, равные 0 для всех нейронов, кроме одного нейрона – победителя, имеющего на входе максимальное значение. Таким образом, вектор выхода слоя a1 имеет единственный элемент, равный 1, который соответствует нейрону-победителю, а остальные равны 0. Такая активационная характеристика может быть описана следующим образом:
(7.1)
Заметим, что эта активационная характеристика устанавливается не на отдельный нейрон, а на слой. Поэтому такая активационная характеристика и получила название конкурирующей. Номер активного нейрона i* определяет ту группу (кластер), к которой наиболее близок входной вектор.
Создание сети
Для формирования слоя Кохонена предназначена М-функция newc. Покажем, как она работает, на простом примере. Предположим, что задан массив из четырех двухэлементных векторов, которые надо разделить на 2 класса:
p = [.1 .8 .1 .9; .2 .9 .1 .8]
p =
0.1000 0.8000 0.1000 0.9000
0.2000 0.9000 0.1000 0.8000
В этом примере нетрудно видеть, что 2 вектора расположены вблизи точки (0,0) и 2 вектора – вблизи точки (1, 1). Сформируем слой Кохонена с двумя нейронами для анализа двухэлементных векторов входа с диапазоном значений от 0 до 1:
net = newc([0 1; 0 1],2);
Первый аргумент указывает диапазон входных значений, второй определяет количество нейронов в слое. Начальные значения элементов матрицы весов задаются как среднее максимального и минимального значений, т. е. в центре интервала входных значений; это реализуется по умолчанию с помощью М-функции midpoint при создании сети. Убедимся, что это действительно так:
wts = net.IW{1,1}
wts =
0.5000 0.5000
0.5000 0.5000
Определим характеристики слоя Кохонена:
net.layers{1}
ans =
dimensions: 2
distanceFcn: 'dist'
distances: [2´2 double]
initFcn: 'initwb'
netInputFcn: 'netsum'
positions: [0 1]
size: 2
topologyFcn: 'hextop'
transferFcn: 'compet'
userdata: [1´1 struct]
Из этого описания следует, что сеть использует функцию евклидова расстояния dist, функцию инициализации initwb, функцию обработки входов netsum, функцию активации compet и функцию описания топологии hextop.
Характеристики смещений следующие:
net.biases{1}
ans =
initFcn: 'initcon'
learn: 1
learnFcn: 'learncon'
learnParam: [1´1 struct]
size: 2
userdata: [1´1 struct]
Смещения задаются функцией initcon и для инициализированной сети равны
net.b{1}
ans =
5.4366
5.4366
Функцией настройки смещений является функция learncon, обеспечивающая настройку с учетом параметра активности нейронов.
Элементы структурной схемы слоя Кохонена показаны на рис. 7.2, а-б и могут быть получены с помощью оператора
gensim(net)
Они наглядно поясняют архитектуру и функции, используемые при построении слоя Кохонена.
а
|
б
| Рис. 7.2
Теперь, когда сформирована самоорганизующаяся нейронная сеть, требуется обучить ее решению задачи кластеризации данных. Напомним, что каждый нейрон блока compet конкурирует за право ответить на вектор входа p. Если все смещения равны 0, то нейрон с вектором веса, самым близким к вектору входа p, выигрывает конкуренцию и возвращает на выходе значение 1; все другие нейроны возвращают значение 0.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|