Многослойный персептрон

advertisement
Адалин ...........................................................................................................................................2
Правила Хебба .............................................................................................................................2
Дельта-правило ............................................................................................................................2
Обобщенное дельта-правило .....................................................................................................3
Персептрон ....................................................................................................................................3
Алгоритм обучения однослойного персептрона ....................................................................4
Многослойный персептрон........................................................................................................6
Алгоритм обратного распространения ошибки ....................................................................7
Сеть Хемминга .............................................................................................................................9
Сеть Хопфилда ...........................................................................................................................11
Сеть Кохонена ............................................................................................................................12
Двунаправленная ассоциативная память ............................................................................13
Адаптивная резонансная теория (АРТ) ................................................................................14
Линейная автоассоциативная память...................................................................................16
Линейная гетероассоциативная память ...............................................................................18
Дискретная сеть Хопфилда .....................................................................................................19
Модификация АОРО ................................................................................................................27
Адалин
В нейроне типа "адалайн" (ADAptive LInear Neuron - адаптивный линейный нейрон) адаптивный подбор
весовых коэффициентов осуществляется в процессе минимизации квадратичной ошибки, определяемой как
В связи с выполнением условия дифференцируемости целевой функции стало возможным применение
алгоритма градиентного обучения. Значения весовых коэффициентов уточняются следующим способом
Дельта-правило
Де́льта-пра́вило — метод обучения перцептрона по принципу градиентного спуска по поверхности ошибки. Дельтаправило развилось из первого и второго правил Хебба. Его дальнейшее развитие привело к созданию метода
обратного распространения ошибки.
Правила Хебба
Перцептрон Розенблатта в первоначальном его исполнении состоял из фотоэлементов, которые, в зависимости от
поданного на них сигнала вырабатывали сигнал логической единицы, либо логического нуля. Сигналы с
фотоэлементов поступали на взвешенный сумматор (элементарный процессор, искусственный нейрон) с пороговой
функцией активации. Нейрон также выдавал сигнал логического нуля, либо логической единицы [1]. Цель обучения
перцептрона состояла в том, чтобы при подаче на фотоэлементы закодированного образа на его выходе
появлялась логическая единица в случае принадлежности поданного образа к заранее определенному классу и
ноль в противном случае. Логика обучения следующая: если сигнал перцептрона при некотором образе верен, то
ничего корректировать не надо, если нет — производится корректировка весов сумматора. Правила корректировки
весов предложены Хеббом в 1949 году[2]и имеют следующий смысл:

Первое правило Хебба — Если сигнал перцептрона неверен и равен нулю, то необходимо увеличить
веса тех входов, на которые была подана единица.

Второе правило Хебба — Если сигнал перцептрона неверен и равен единице, то необходимо уменьшить
веса тех входов, на которые была подана единица.[3]
Правила применяются последовательно для всех образов, на которых производится обучение. На вопрос о том,
придет ли перцептрон к устойчивому состоянию, когда он будет корректно классифицировать все входные образы
отвечаеттеорема сходимости перцептрона.
Дельта-правило
Собственно дельта-правилом называют математическую, несколько более общую форму записи правил Хебба.
Пусть вектор
— вектор входных сигналов, а
вектор
— вектор сигналов, которые должны быть получены от перцептрона под
воздействием входного вектора. Здесь
— число нейронов, составляющих перцептрон. Входные сигналы,
поступив на входы перцептрона, были взвешены и просуммированы, в результате чего получен
вектор
выходных значений перцептрона. Тогда можно определить вектор
ошибки
, размерность которого совпадает размерностью вектором выходных
сигналов. Компоненты вектора ошибок определяются как разность между ожидаемым и реальным значением
выходного сигнала перцептронного нейрона:
При таких обозначениях формулу для корректировки j-го веса i-го нейрона можно записать следующим образом:
Номер сигнала изменяется в пределах от единицы до размерности входного вектора
. Номер нейрона
изменяется в пределах от единицы до количества нейронов . Величина — номер текущей итерации обучения.
Таким образом, вес входного сигнала нейрона изменяется в сторону уменьшения ошибки пропорционально
величине суммарной ошибки нейрона. Часто вводят коэффициент пропорциональности , на который умножается
величина ошибки. Этот коэффициент называют скоростью обучения. Таким образом, итоговая формула для
корректировки весов:
Обобщенное дельта-правило
С целью расширения круга задач, решаемых перцептроном, Уидроу и Хоффом[4] была
предложена сигмоидальная функция активации для нейронов. Это позволило перцептрону оперировать с
непрерывными сигналами, но потребовало модификации алгоритма обучения[5]. Модифицированный алгоритм
направлен на минимизацию функции среднеквадратичной ошибки:
Эта функция определяется матрицей весовых коэффициентов
. Здесь — номер нейрона, а — номер входа.
Поверхность, описываемая этой функцией имеет форму псевдопараболоида[6]. Задачей обучения является
нахождение глобального минимума этой поверхности. Одним из способов нахождения минимума является метод
градиентного спуска. Корректировка весов производится в направлении антиградиента поверхности:
Здесь
— коэффициент скорости обучения.
Функция ошибки является сложной и зависит в первую очередь от выходных сигналов перцептрона. В соответствии
с правилами дифференцирования сложных функций:
(*)
Выходной сигнал
Здесь
каждого нейрона определяется по формуле:
— число входов перцептрона,
— сигнал на j-ом входе, а
— функция активации. Тогда получим:
(**)
Продифференцировав функцию ошибки по значению выходного сигнала получим:
(***)
Подставив формулы (**) и (***) в выражение (*) получим выражение для корректировки веса j-го входа у i-го нейрона
при любой активационной функции[7]:
Из этой формулы видно, что в качестве активационной функции при использовании обобщенного дельта-правила
функция активации нейронов должна быть непрерывно дифференцируемой на всей оси абсцисс. Преимущество
имеют функции активации с простой производной (например — логистическая кривая или гиперболический тангенс).
Персептрон
Персептрон
Простой персептрон — это нейрон МакКаллока-Питса (рис.1). Весовые коэффициенты входов
сумматора, на которые подаются входные сигналы
обозначаются
,а
пороговое значение —
. Нелинейная функция активации
персептрона является ступенчатой,
вследствие чего выходной сигнал нейрона может принимать только два значения — 0 и 1 в
соответствии с правилом
или -1 и 1 в соответствии с правилом
где
обозначает выходной сигнал сумматора
В формуле (3) предполагается
.
Рис. 1. Нейрон МакКаллока-Питтса
Обучение персептрона состоит в таком подборе весов
заданным значением
или
, чтобы выходной сигнал
совпадал с
.
С персептроном связана задача четкого разделения двух классов по обучающей выборке, которая
ставится следующим образом: имеется два набора векторов
известно, что
,
относятся к первому классу, а
и
,
. Заранее
- ко
второму. Требуется построить решающее правило, т.е. определить такую функцию
при
вектор
относится к первому классу, а при
, что
- ко второму.
Алгоритм обучения однослойного персептрона
Персептрон должен решать задачу классификации по бинарным входным сигналам. Набор входных
сигналов будем обозначать
-мерным вектором
. Все элементы вектора являются булевыми
переменными (переменными, принимающими значения "Истина" или "Ложь"). Однако иногда полезно
оперировать числовыми значениями. Будем считать, что значению "ложь" соответствует числовое
значение 0, а значению "Истина" соответствует 1.
Персептроном будем называть устройство, вычисляющее следующую систему функций:
где
— веса персептрона,
— порог,
— значения входных сигналов, скобки
означают
переход от булевых (логических) значений к числовым значениям по правилам, изложенным выше.
Обучение персептрона состоит в подстройке весовых коэффициентов. Пусть имеется набор пар
векторов
,
, называемый обучающей выборкой. Будем называть
нейронную сеть обученной на данной обучающей выборке, если при подаче на входы сети каждого
вектора
на выходах всякий раз получается соответствующий вектор
Предложенный Ф.Розенблаттом метод обучения состоит в итерационной подстройке матрицы весов,
последовательно уменьшающей ошибку в выходных векторах. Алгоритм включает несколько шагов:
Шаг
Начальные значения весов всех нейронов
0
Шаг Сети предъявляется входной образ
1
образ
.
полагаются случайными
, в результате формируется выходной
Шаг
Вычисляется вектор ошибки
, делаемой сетью на выходе.
2
Дальнейшая идея состоит в том, что изменение вектора весовых коэффициентов в
области малых ошибок должно быть пропорционально ошибке на выходе и равно
нулю, если ошибка равна нулю.
Шаг Вектор весов модифицируется по следующей
3
формуле:
обучения.
. Здесь
— темп
Шаг Шаги 1—3 повторяются для всех обучающих векторов. Один цикл
4
последовательного предъявления всей выборки называется эпохой. Обучение
завершается по истечении нескольких эпох: а) когда итерации сойдутся, т.е.
вектор весов перестает изменяться, или б) когда полная, просуммированная по
всем векторам абсолютная ошибка станет меньше некоторого малого значения.
Объясним данный алгоритм более подробно. Подаем на вход персептрона такой вектор
, для
которого уже известен правильный ответ. Если выходной сигнал персептрона совпадает с правильным
ответом, то никаких действий предпринимать не надо. В случае ошибки, необходимо
обучить персептрон правильно решать данный пример. Ошибки могут быть двух типов. Рассмотрим
каждый из них.
Первый тип ошибки: на выходе персептрона — 0, а правильный ответ — 1. Для того
чтобы персептрон выдавал правильный ответ, необходимо, чтобы сумма в правой части (1) стала
больше. Поскольку переменные принимают значения 0 или 1, увеличение суммы может быть
достигнуто за счет увеличения весов
Однако нет смысла увеличивать веса при переменных
которые равны нулю. Таким образом, следует увеличить веса
при тех переменных xi, которые
равны 1.
,
Первое правило. Если на выходе персептрона получен 0, а правильный ответ равен 1, то необходимо
увеличить веса связей между одновременно активными нейронами. При этом
выходной персептронсчитается активным. Второй тип ошибки: на выходе персептрона — 1, а
правильный ответ равен нулю. Для обучения правильному решению данного примера следует
уменьшить сумму в правой части (1). Следовательно, необходимо уменьшить веса связей
при тех
переменных, которые равны 1 (поскольку нет смысла уменьшать веса связей при равных нулю
переменных
). Необходимо также провести эту процедуру для всех активных нейронов
предыдущих слоев. В результате получаем второе правило.
Второе правило. Если на выходе персептрона получена единица, а правильный ответ равен нулю, то
необходимо уменьшить веса связей между одновременно активными нейронами.
Таким образом, процедура обучения сводится к последовательному перебору всех примеров
обучающего множества с применением правил обучения для ошибочно решенных примеров. Если
после очередного цикла предъявления всех примеров окажется, что все они решены правильно, то
процедура обучения завершается.
Многослойный персептрон
Многослойными персептронами называют нейронные сети прямого распространения. Входной сигнал в таких сетях
распространяется в прямом направлении, от слоя к слою. Многослойный персептрон в общем представлении состоит из
следующих элементов:



множества входных узлов, которые образуют входной слой;
одного или нескольких скрытых слоев вычислительных нейронов;
одного выходного слоя нейронов.
Многослойный персептрон представляет собой обобщение однослойного
многослойного персептрона является следующая модель нейронной сети:
персептрона
Розенблатта.
Примером
Количество входных и выходных элементов в многослойном персептроне определяется условиями задачи. Сомнения могут
возникнуть в отношении того, какие входные значения использовать, а какие нет. Вопрос о том, сколько использовать
промежуточных слоев и элементов в них, пока совершенно неясен. В качестве начального приближения можно взять один
промежуточный слой, а число элементов в нем положить равным полусумме числа входных и выходных элементов.
Многослойные персептроны успешно применяются для решения разнообразных сложных задач и имеют следующих три
отличительных признака.
Свойство 1. Каждый нейрон сети имеет нелинейную функцию активации
Важно подчеркнуть, что такая нелинейная функция должна быть гладкой (т.е. всюду дифференцируемой), в отличие от
жесткой пороговой функции, используемой в персептроне Розенблатта. Самой популярной формой функции,
удовлетворяющей этому требованию, является сигмоидальная. Примером сигмоидальной функции может служить
логистическая функция, задаваемая следующим выражением:
где
– параметр наклона сигмоидальной функции. Изменяя этот параметр, можно построить функции с различной
крутизной.
Наличие нелинейности играет очень важную роль, так как в противном случае отображение «вход-выход» сети можно
свести к обычному однослойному персептрону.
Свойство 2. Несколько скрытых слоев
Многослойный персептрон содержит один или несколько слоев скрытых нейронов, не являющихся частью входа или выхода
сети. Эти нейроны позволяют сети обучаться решению сложных задач, последовательно извлекая наиболее важные
признаки из входного образа.
Свойство 3. Высокая связность
Многослойный персептрон обладает высокой степенью связности, реализуемой посредством синаптических соединений.
Изменение уровня связности сети требует изменения множества синаптических соединений или их весовых коэффициентов.
Комбинация всех этих свойств наряду со способностью к обучению на собственном опыте обеспечивает вычислительную
мощность многослойного персептрона. Однако эти же качества являются причиной неполноты современных знаний о
поведении такого рода сетей: распределенная форма нелинейности и высокая связность сети существенно усложняют
теоретический анализ многослойного персептрона.
Алгоритм обратного распространения ошибки
Алгоритм обратного распространения ошибки является одним из методов обучения многослойных
нейронных сетей прямого распространения, называемых также многослойными персептронами.
Многослойные персептроны успешно применяются для решения многих сложных задач.
Рассмотрим работу алгоритма подробней. Допустим необходимо обучить следующую нейронную сеть,
применив алгоритм обратного распространения ошибки:
На приведенном рисунке использованы следующие условные обозначения:

каждому слою нейронной сети соответствует своя буква, например: входному слою соответствует

буква , а выходному –
;
все нейроны каждого слоя пронумерованы арабскими цифрами;

– синаптический вес между нейронами

– выход нейрона
и
;
.
В качестве активационной функции в многослойных персептронах, как правило, используется
сигмоидальная активационная функция, в частности логистическая:
где – параметр наклона сигмоидальной функции. Изменяя этот параметр, можно построить функции с
различной крутизной. Оговоримся, что для всех последующих рассуждений будет использоваться именно
логистическая функция активации, представленная только, что формулой выше.
Сигмоид сужает диапазон изменения так, что значение
лежит между нулем и единицей.
Многослойные нейронные сети обладают большей представляющей мощностью, чем однослойные, только в
случае присутствия нелинейности. Сжимающая функция обеспечивает требуемую нелинейность. В
действительности имеется множество функций, которые могли бы быть использованы. Для алгоритма
обратного распространения ошибки требуется лишь, чтобы функция была всюду дифференцируема.
Сигмоид удовлетворяет этому требованию. Его дополнительное преимущество состоит в автоматическом
контроле усиления. Для слабых сигналов (т.е. когда
близко к нулю) кривая вход-выход имеет
сильный наклон, дающий большое усиление. Когда величина сигнала становится больше, усиление падает.
Таким образом, большие сигналы воспринимаются сетью без насыщения, а слабые сигналы проходят по
сети без чрезмерного ослабления.
Целью обучения сети алгоритмом обратного распространения ошибки является такая подстройка ее весов,
чтобы приложение некоторого множества входов приводило к требуемому множеству выходов. Для
краткости эти множества входов и выходов будут называться векторами. При обучении предполагается, что
для каждого входного вектора существует парный ему целевой вектор, задающий требуемый выход. Вместе
они называются обучающей парой. Сеть обучается на многих парах.
Алгоритм обратного распространения ошибки следующий:
1.
2.
3.
4.
5.
6.
Инициализировать синаптические веса маленькими случайными значениями.
Выбрать очередную обучающую пару из обучающего множества; подать входной вектор на вход
сети.
Вычислить выход сети.
Вычислить разность между выходом сети и требуемым выходом (целевым вектором обучающей
пары).
Подкорректировать веса сети для минимизации ошибки (как см. ниже).
Повторять шаги с 2 по 5 для каждого вектора обучающего множества до тех пор, пока ошибка на
всем множестве не достигнет приемлемого уровня.
Операции, выполняемые шагами 2 и 3, сходны с теми, которые выполняются при функционировании уже
обученной сети, т.е. подается входной вектор и вычисляется получающийся выход. Вычисления
выполняются послойно. На рис. 1 сначала вычисляются выходы нейронов слоя
(слой
входной, а значит
никаких вычислений в нем не происходит), затем они используются в качестве входов слоя
,
вычисляются выходы
нейронов слоя
, которые и образуют выходной вектор сети
.
Шаги 2 и 3 образуют так называемый «проход вперед», так как сигнал распространяется по сети от входа к
выходу.
Шаги 4 и 5 составляют «обратный проход», здесь вычисляемый сигнал ошибки распространяется обратно
по сети и используется для подстройки весов.
Рассмотрим подробней 5 шаг – корректировка весов сети. Здесь следует выделить два нижеописанных
случая.
Случай 1. Корректировка синаптических весов выходного слоя
Например, для модели нейронной сети на рис. 1, это будут веса имеющие следующие обозначения:
и
синаптический вес, а
. Определимся, что индексом
будем обозначать нейрон, из которого выходит
– нейрон в который входит:
Введем величину , которая равна разности между требуемым
и реальным
выходами,
умноженной на производную логистической функции активации (формулу логистической функции
активации см. выше):
Тогда, веса выходного слоя после коррекции будут равны:
где:

– номер текущей итерации обучения;


– величина синаптического веса, соединяющего нейрон
с нейроном
;
(греческая буква «эта») – коэффициент «скорости обучения», позволяет управлять средней
величиной изменения весов;

– выход нейрона
.
Приведем пример вычислений для синаптического веса
:
Случай 2. Корректировка синаптических весов скрытого слоя
Для модели нейронной сети на рис. 1, это будут веса соответствующие слоям
индексом
будем обозначать нейрон из которого выходит синаптический вес, а
входит (обратите внимание на появление новой переменной
Введем величину
):
, которая равна:
где:

– сумма от по
.
Тогда, веса скрытых слоев после коррекции будут равны:
Приведем пример вычислений для синаптического веса
Сеть Хемминга
:
и
. Определимся, что
– нейрон в который
Если в задаче ассоциативной памяти нет необходимости в том, чтобы нейросеть выдавала эталонный
образец, а достаточно только номера образца, то для этих целей используется сеть Хемминга. Структурная
схема сети Хемминга представлена на рисунке 2.
Рисунок 2. Сеть Хемминга
Данная сеть, в сравнении с сетью Хопфилда, характеризуется меньшими вычислительными затратами. В
сети Хемминга два слоя – первый и второй слои состоят из
нейронов и
равно числу образцов.
Нейроны первого слоя имеют по
входных синапсов, где - размерность входных векторов. Нейроны
второго слоя связаны между собой обратными, отрицательными связями. Обратная связь от аксона на
владельца нейрона равен +1. Суть работы состоит в нахождении расстояния Хемминга от тестируемого
образца до всех образцов. Расстоянием Хемминга называется число отличающихся битов в двух бинарных
векторах.
- расстояние Хемминга равно 0.
- расстояние Хемминга равно 2.
Сеть должна выбрать образец с минимальным расстоянием Хемминга до поданного входного сигнала – в
результате активируется один выход, отвечающий за данный эталонный образец.
При инициализации сети весовым коэффициентам первого слоя и порогу активационной функции
присваиваются следующие значения:
, i=0...n-1, k=0...m-1
Tk = n / 2, k = 0...m-1
где xik – i-ый элемент k-ого образца.
Весовые коэффициенты тормозящих синапсов во втором слое берут равными некоторой величине 0
<  < 1/m. Синапс нейрона, связанный с его же аксоном имеет вес +1.
Алгоритм работы сети Хэмминга следующий:
1. На входы сети подается неизвестный вектор X = {xi:i=0...n-1}, исходя из которого рассчитываются
состояния нейронов первого слоя (верхний индекс в скобках указывает номер слоя):
, j=0...m-1
После этого полученными значениями инициализируются значения аксонов второго слоя:
yj(2) = yj(1), j = 0...m-1
2. Вычислить новые состояния нейронов второго слоя:
и значения их аксонов:
Активационная функция f имеет вид порога, причем величина F должна быть достаточно большой,
чтобы любые возможные значения аргумента не приводили к насыщению.
3. Проверить, изменились ли выходы нейронов второго слоя за последнюю итерацию. Если да –
перейди к шагу 2. Иначе – завершение работы.
Из оценки алгоритма видно, что роль первого слоя нейронов весьма условна: воспользовавшись один
раз на шаге 1 значениями его весовых коэффициентов, сеть больше не обращается к нему, поэтому первый
слой может быть вообще исключен из сети (просто заменен на матрицу весовых коэффициентов.
Сеть Хопфилда
Структурная схема сети Хопфилда представлена на рисунке. Сеть состоит из единственного слоя нейронов,
число которых одновременно равно количеству входов и количеству выходов. Каждый нейрон связан
синапсами остальными нейронами и имеет один вход. Выходные сигналы формируются как обычно на
аксонах.
Рисунок 1. Сеть Хопфилда
Задача ассоциативной памяти, решаемая с помощью данной сети, обычно выглядит следующим образом –
есть некоторый набор двоичных сигналов, которые считаются эталонными. Сеть должна уметь из
произвольного входного сигнала выделить тот эталонный образец, который наиболее похож на поданный
сигнал или же выдать сообщение о том, что поданный сигнал ни с чем не ассоциируется. Входной сигнал, в
общем случае, может быть описан вектором
. - число нейронов в сети и размерность
входных и выходных векторов. Каждый элемент вектора равен либо +1, либо -1.
При инициализации сети коэффициенты устанавливаются следующим образом:
и - коэффициенты предсинаптического и постсинаптического нейронов. xik, xjk – i-ый и j-ый элементы
вектора k-ого образца.
Алгоритм работы сети следующий:
1. На входы сети подается неизвестный сигнал. Практически его ввод происходит за счет
установления аксонов yi(0) = xi , i = 0...n-1. То есть входы нужны лишь формально.
Рассчитывается новое состояние нейронов:
2.
, j=0...n-1
и новое состояние аксонов
При этом
- функция единичного скачка.
3. Проверяется – изменились ли состояния аксонов за последнюю итерацию. Если да, то переход на
пункт 2, если нет, то работа сети завершилась. На выходе получается эталонный образец наиболее
похожий на входной вектор.
Отметим, что иногда сеть не может сопоставить эталонный образец и входной сигнал, при этом на выходе
получается произвольный сигнал. Это связано с ограниченностью сети – сеть Хопфилда может запомнить не
более
образцов. Также – если эталонные образцы
перекрестные ассоциации.
и
похожи, то обычно происходят
Сеть Кохонена
В сети Кохонена происходит решение задачи нахождения кластеров в пространстве входных образов. Сеть
Кохонена обучается без учителя на основе самоорганизации. В течении обучения вектора весов нейронов
стремятся к центрам кластеров – групп векторов обучающей выборки. После обучения сеть сопоставляет
предъявляемый образ к одному из кластеров, то есть к одному из выходов. В общем случае задача
кластеризации представляется следующим образом:
-
есть
компонент
объекты,
характеризуемые
вектором параметров
Обычно
в пространстве классов
(обычно
, в
в пространстве классов
, так что бы меры
, задача сводится к тривиальной);
Необходимо определить ядра классов
близости
имеющих
;
- есть введенное множество классов
случае
,
были минимальны, то есть:
есть евклидова мера
.
Функция
, определяющая номер класса по индексу
множества объектов {
} , задает разбиение
на классы и является решением задачи классификации.
Например, для задачи разбиения учеников на группы {отличник, хорошист, троечник, двоечник} по
предметам, центрами групп будут
,
Сеть Кохонена выглядит, как показано на рисунке:
и так далее.
Ядра
являются весовыми коэффициентами нейронов. Каждый нейрон сети Кохонена запоминает один
класс, то есть величина выхода тем выше, чем ближе предъявляемый образец к данному классу. Суть
интерпретатора – выбрать номер нейрона с максимальным выходом (может не показываться). Если
использовать функцию SOFTMAX, то выход можно трактовать как вероятность. Меняя количество
нейронов, мы можем динамично менять количество классов.
Присвоение начальных значений происходит с помощью генератора случайных чисел – каждому весу
присваивается небольшое значение. Однако для сети Кохонена желательно, чтобы значения весов
изначально были равномерно распределены, для этого используется метод выпуклой комбинации.
Обучение сети Кохонена происходит следующим образом:

подаем на вход один из векторов

рассчитываем выход слоя Кохонена и определяем номер выигравшего нейрона
максимален;

корректируем веса только выигравшего нейрона
;
, выход которого
:
- скорость обучения, обычно используется монотонно убывающая функция
Обучение происходит пока не застабилизируются веса.
.
Двунаправленная ассоциативная память
Обобщением сети Хопфилда на случай двухслойной рекуррентной структуры,
позволяющей кодировать множества двух взаимосвязанных векторов, считается
двунаправленное ассоциативное запоминающее устройство, называемое BAM
(Bidirectional Associative Memory) (рис. 3). Сигналы распространяются в двух
направлениях. Если в первом цикле сигналы вначале проходят в одну сторону для
задания состояний нейронов-получателей, то в следующем цикле эти нейроны сами
становятся источниками, высылающими сигналы в обратную сторону. Процесс
повторяется до достижения состояния равновесия.
Функция активации нейронов имеет пороговый характер. Для обеспечения лучших
характеристик сети на этапе обучения используются только биполярные сигналы.
Матрица весов
, связывающая обе части сети, является действительной и в общем
случае несимметричной. При прямом распространении сигналов веса описываются
матрицей
, а при обратном — матрицей
.
Пусть входные обучающие данные представляют собой множество
пар
формируется матрица
биполярных векторов. На основе этого множества
В результате процесса двунаправленной обработки сигналов формируются два
стабильных вектора
и
, удовлетворяющих уравнениям
Каждой промежуточной точке
можно сопоставить энергетическую функцию
которая убывает при каждом изменении состояния вплоть до достижения локального
минимума
Рис. 3. Структура сети BAM
В режиме распознавания при начальных значениях векторов, совпадающих с
использованными при обучении, сеть распознает их безошибочно. При искажении
векторов
и
сеть BAM не всегда способна откорректировать эти векторы и
распознает их с определенными погрешностями. Если размерности векторов
и
обозначить соответственно
и
, то удовлетворительное качество распознавания
можно получить при выполнении зависимости
где
- число запоминаемых в сети BAM пар векторов.
Адаптивная резонансная теория (АРТ)
1.2. Базовая архитектура сетей АРТ
Базовая архитектура сетей АРТ включает три группы нейронов: поле F1 входных обрабатывающих
нейронов, состоящее из двух слоев элементов, слой распознающих нейронов и группу нейронов
управления (рис. 1).
Поле F1 нейронов состоит из двух слоев: входной слой
и интерфейсный слой
. Входной
слой воспринимает предъявляемые изображения и передает полученную информацию нейронам
интерфейсного слоя
и управляющему нейрону
связан с каждым элементом распознающего слоя
Сигналы из интерфейсного слоя в слой
R. Каждый элемент интерфейсного слоя
Yдвумя множествами взвешенных связей.
Yпередаются связями, идущими снизу вверх (с весами
), а из распознающего слоя в интерфейсный - связями, идущими сверху вниз (с весами
). Изза наличия большого числа связей на рисунке приведено обозначение только одной пары связей
между интерфейсными и распознающими элементами.
Слой
является слоем конкурирующих или соревнующихся нейронов. В любое время каждый
элемент
распознающего слоя находится в одном из трех состояний:
активен (
неактивен (
заторможен (
вектора).
для ART-1 и 0 <
d<1
для АРТ-2);
но способен участвовать в соревновании);
и не допущен к соревнованиям при предъявлении текущего входного
После предъявления входного изображения активным остается только один распознающий нейрон,
все остальные Y-элементы имеют нулевые или отрицательные выходные сигналы. Выделенный
распознающий нейрон допускается к обучению входным изображением только в том случае, если
его весовой вектор связей из слоя
Y в слой
подобен входному вектору. Это решение
принимается с помощью R-нейрона на основе специального параметра, получившего название
параметра сходства, и сигналов, поступающих из входного и интерфейсного слоя элементов. Через
вспомогательные элементы, разные для сетей АРТ-1 и АРТ-2, производится или обучение
выделенного распознающего Y-элемента, или его затормаживание с дальнейшим исключением из
числа соревнующихся при повторных предъявлениях этого же входного изображения, когда
выделяются новые кандидаты для обучения входным изображением.
В наиболее общем виде алгоритм функционирования АРТ нейронной сети можно представить в
следующем виде:
Шаг 1. Инициируются параметры сети.
Шаг 2. До тех пор, пока не соблюдаются условия останова, выполняются шаги 3 - 10.
Шаг 3. Для каждого входного вектора или изображения выполняются шаги 4 - 9.
Шаг 4. Предъявляется входной вектор и вычисляются выходные сигналы нейронов входного
слоя
.
Шаг 5. Пока не соблюдаются условия сброса или возврата к поиску нового Y-нейрона,
выполняются шаги 6 - 8.
Шаг 6. Находится незаторможенный
Y-элемент, имеющий наибольший выходной сигнал.
Шаг 7. Вычисляются выходные сигналы нейронов интерфейсного слоя
.
Шаг 8. С помощью параметра сходства проверяются условия сброса или возврата (они различны
для сетей АРТ-1 и АРТ?2). Если они выполняются, тогда выделенный Y-элемент затормаживается и
производится возврат к шагу 5. Если условия сброса не выполняются, тогда выделенный кандидат
из Y-слоя допускается к обучению на шаге 9.
Шаг 9. Производится обучение выделенного Y-элемента.
Шаг 10. Проверяются условия останова. Если они не выполняются, то переход к шагу 2, в
противном случае - переход к шагу 11.
Шаг 11.
Останов.
Хотя сети АРТ не предъявляют требований к порядку появления входных изображений и не
требуют появления всех изображений с одинаковой частотой, при их обучении также используется
понятие эпохи (последовательного предъявления каждого из обучающих изображений). Процесс
обучения сетей АРТ может занимать много эпох.
Нейронные сети АРТ - динамические объекты, описываемые системами обыкновенных
дифференциальных уравнений, поэтому их обучение в общем случае достаточно трудоемко.
Однако модели сетей АРТ могут быть упрощены, если предположить, что изменение выходных
сигналов нейронов происходит много быстрее, чем изменение весовых векторов их связей.
Поэтому в нейросетях теории адаптивного резонанса можно полагать, что после выделения для
обучения приемлемого Y-элемента (наступлении резонанса между предъявленным и хранящимся в
памяти изображением), выходные сигналы всех нейронов остаются неизменными на протяжении
длительного периода времени, в течение которого происходят изменения весов связей.
В АРТ различают два типа обучения: быстрое и медленное. Они отличаются как теоретическими
предпосылками, так и своими рабочими характеристиками. В методе быстрого обучения веса в
течение времени длительного резонанса достигают равновесного состояния при каждом
предъявлении изображений. Эта форма обучения типична для двоичных нейронных сетей АРТ-1 и
будет подробно рассмотрена в следующих параграфах. В методе медленного обучения имеет место
существенно более медленное изменение весов во время резонанса, и они не достигают
равновесных значений при каждом предъявлении входных изображений. Этот метод более
свойственен нейросетям АРТ-2, хотя теоретически может применяться (но, практически не
применяется) для обучения и дискретных сетей АРТ-1. Он требует большого числа предъявлений
входных изображений, но относительно небольшого объема вычислений при каждом
предъявлении.
7.3. Линейная автоассоциативная память
Автоассоциативная память есть однослойная сеть, состоящая из полностью взаимосвязанных линейных модулей,
которые управляются параллельно. Линейный модуль — это простейшая единица, чей выход прямо
пропорционален уровню ее активации (выход есть линейная функция от активации). Целью автоассоциативной
памяти является классификация и последующее опознание стимула, который поступает в сеть в виде входного
образа. Каждый образ проходит идентификацию и добавляется в «банк данных» памяти. Также необходимо
опознать стимул, у которого отсутствует какая-либо часть, или входящий образ, представляющий собой искаженную
версию уже известного стимула.
Представление индивидуального стимула не локализовано в памяти, но распределено по всей сети.
Автоассоциативная память является «контентно-адресной»: каждая часть или черта образа хранится в отдельной
клетке. В отличие от компьютерной памяти, которая использует точное местоположение или адрес в памяти для
поиска информации, автоассоциативная память способна найти целые образы, представленные только частью
информации. Например, Кохонен ( Kohonen , 1977) показал, что автоассоциативная память может использоваться
для вос- становления изображений лиц. Сначала автоассоциативная память была заполнена изображениями 100
лиц, которые хранились в пиксельном формате. Затем на вход поступали тестовые задания — неполные
изображения лиц. Результаты продемонстрировали, что система реконструировала изображения, убедительно
похожие на оригинал.
Автоассоциативная память широко применяется для моделирования обучения человека восприятию и
запоминанию. Она увеличивает число тестируемых (формализуемых) поведенческих наклонностей, а также
возможности дать правильный ответ, даже если он требуется очень быстро или входная и нформация является
неполной (поскольку мы используем контекст, «чувствуем» пробел). Например, у вас не будет проблем с ответом на
вопрос: «Сколько животных каждого вида взял Нах на ковчег, чтобы спасти их от потопа?» Вы можете даже не
заметить, что вопрос неправильный (Ной, а не Нах, взял животных на ковчег).
Линейная автоассоциативная память строится из полностью взаимосвязанных линейных модулей. Линейный
модуль очень похож на базовый оценочный модуль (см. рис. 25). Линейный модуль подсчитывает активационный
уровень, складывая все взвешенные внешние значения, а затем преобразует эти активации. Данное
преобразование,
Автоассоциативная память — это сеть /линейных модулей, которые полностью взаимосвязаны (каждая клетка
соединена с любой другой и также сама с собой) изменяющимися связями (см. рис. 26).
Результатом модификации оценки связей через обучение будут выходные образы. При этом в качестве обучающего
инструмента могут использоваться два разных правила обучения. Первое обучающее правило, Хеббиана ( Hebbian ,
1949), требует минимальных вычислений. Его можно описать как «непересматривающее», потому что обратная
связь не заканчивается на корректировке ответа, вес корректируется в течение всего процесса обучения. Второе
обучающее правило, Видроу-Хоффа ( Widrow - Hoff , 1985), требует больших вычислительных и временных затрат.
7.4. Линейная гетероассоциативная память
Гетероассоциативная память состоит из двух слоев линейных модулей — входного и выходного, соединенных
изменяющимися связями. Отличие от автоассоциативной памяти заключается том, что входной образ связан с
выходным, а не с самим собой. Цель гетероассоциативной памяти — установить связи между входными-выходными
образами так, чтобы при получении определенного входного образа память могла выдать соответствующий ему
выходной образ.
Гетероассоциативная память, в общем, решает задачи распознавания образов и классификации. Отличие этого
типа памяти втом, что ее базовый модуль линеен, а вход и выход непрерывны. С позиции статистики, внутренняя
работа гетероассоциативной памяти подобна технике многомерного регрессионного анализа и может быть
исследована с помощью математического аппарата автоассоциативной памяти. С когнитивной точки зрения, эта
память копирует ассоциативные правила человеческой памяти.
Машине было предложено изучить снимки человеческого лица в фас и на три четверти для того, чтобы затем
смоделировать вид сбоку. После анализа снимка в фас машина дала более точное изображение вида сбоку, чем
после изучения снимка натри четверти.
Строительный блок линейной гетероассоциативной памяти — базовый линейный модуль (см. рис. 27).
Особенностью линейной гетероассоциативной памяти является композиция сети, которая состоит из / входных
клеток, связанных с/выходными клетками. Каждая выходная клетка получает веса от всех входных клеток,
суммирует их и преобразует сумму в ответ через ли нейную трансферную функцию. Веса связей между входимыми
и выходными клетками представлены в матрице ^размером IxJ :
Обучение сопоставлению входных-выходных образов осуществляется через модифицирование силы связи между
входными и выходными клетками. Эти модификации также могут быть осуществлены при использовании
обучающих правил Хеббиана и Видроу-Хоффа.
Дискретная сеть Хопфилда
В своей первой работе, посвященной нейронным сетям, Хопфилд рассмотрел
полносвязную нейронную сеть из бинарных элементов с симметричными связями.
Структура этой сети приведена на рис. 4.
Дискретная сеть Хопфилда состоит из единственного слоя нейронов, каждый из
которых связан со всеми остальными и имеет сетевые вход и выход. Сигналы на
сетевых входах нейронов определяют их выходные сигналы:
При отсутствии сигналов на сетевых входах элементы сети функционируют в
асинхронном режиме, при котором каждый из них определяет свой выходной сигнал
в случайные моменты времени с заданной средней частотой в соответствии с
выражением
(5)
где
- соответственно выходной сигнал и порог i-го нерона; wji - вес связи
между j-м и i-м нейронами.
Матрица
весов связей нейросети симметрична и имеет нулевые
компоненты на главной диагонали, то есть
(6)
Такой вид матрицы весов обеспечивает устойчивость сети: при подаче на ее входы
внешних сигналов возникает последовательность состояний сети вида (3), которая
оканчивается стационарным состоянием. Процесс достижения стационарного
состояния можно описать с помощью минимизации специальной энергетической
функции:
(7)
где E - искусственная энергия сети, заданная в виде функции Ляпунова; Uвх.j внешний входной сигнал j-го нейрона.
Энергию всей сети можно представить как сумму энергий ее отдельных нейронов:
(8)
Из выражений (8) и (7) имеем:
Рассмотрим изменение энергии DEj произвольного j-го элемента при его
срабатывании:
(9)
Для бинарных нейронов приращения их выходных сигналов может принимать
только три значения: +1, 0, -1. При этом знак приращения DUвых.j для j-го элемента
совпадает со знаком выражения в круглых скобках. Действительно, если DUвых.j = 1, то есть нейрон переходит из единичного состояния в нулевое, то это означает,
что в соответствии с выражением (5) выполняется неравенство
то есть выражение в круглых скобках соотношения (9) отрицательно. Если DUвых.j=
1, то рассматриваемый j-й нейрон переходит из нулевого состояния в единичное и,
следовательно,
или
Из совпадения знаков сомножителей в выражении (9) следует, что при
срабатывании любого j-го нейрона ни его энергия, ни энергия всей сети
увеличиться не может. Она либо остается прежней, если DUвых.j = 0, либо
уменьшается, если DUвых.j ? 0. Следовательно, по мере срабатывания нейронов
энергия будет монотонно убывать, пока не достигнет одного из своих локальных
минимумов, которому соответствует одна из стационарных точек нейросети.
Эволюция сети из любого начального состояния в силу существования функции
Ляпунова (7) всегда кончается в одной из ее стационарных точек, то есть
аттракторами в дискретной бинарной сети Хопфилда являются только стационарные
точки. Это же утверждение справедливо и для дискретной сети Хопфилда с
биполярными нейронами.
Для хранения некоторого множества изображений
в биполярной сети Хопфилда используется матрица W весов
связей с элементами
(10)
где индекс k указывает на принадлежность входных сигналовk-му изображению.
При переходе к бинарным нейронам элементы wij матрицы W определяются
соотношением
(11)
Пороги qi всех бинарных элементов обычно принимаются равными нулю, а пороги
биполярных нейронов часто определяются через сумму элементов матрицы весов:
(12)
Для сети Хопфилда число p запоминаемых изображений не должно превышать
величины, примерно равной 0,15n, где n - число нейронов сети. Кроме того, если
есть пары очень похожих изображений, например, S k,S q, то они могут вызывать у
сети перекрестные ассоциации, то есть предъявление на входы сети
изображенияS k может приводить к появлению на ее выходе изображения S q и
наоборот.
Задачи, решаемые дискретной сетью Хопфилда с бинарными или биполярными
нейронами в качестве ассоциативной памяти, формулируются следующим образом.
Известен набор эталонных двоичных изображений или сигналов. Сеть должна уметь
по частичной информации неидеальных изображений, подаваемых на ее вход,
выделять эталонные изображения или давать информацию о том, что входной
вектор не соответствует ни одному из хранимых в ее памяти. Когда сеть распознает
какое-либо изображение, то на ее выходах появляется именно это изображение. В
противном случае вектор выходных сигналов не совпадает ни с одним из
эталонных.
Пример 1. Рассмотрим возможности дискретной сети Хопфилда с девятью
биполярными нейронами по распознаванию неидеальных изображений букв Н и Т.
Эталонные изображения S1и S2 этих букв приведены на рис. 5, там же дана
нумерация элементов изображений, соответствующая нейронам сети Хопфилда и их
векторному представлению:
В соответствии с исходными данными выражение (11) для рассматриваемого
примера принимает вид:
Рассчитаем вес связи w12:
w12 = 1? (-1) + 1?1 = 0.
В силу общего равенства
также получим, что
. Аналогично
рассчитываются и остальные элементы
матрицы W весов
связей. Элементы главной диагонали матрицы W определяются выражением (10)
при i = j: w11 = w22 = … = w99 = 0.
Результаты расчетов матрицы W приведены в табл. 1.
Таблица 1. Матрица весов связей
Номера
нейронов
Номера нейронов
1
2
3
4
5
6
7
8
9
1
0
0
2
0
2
0
0
0
0
2
0
0
0
-2
0
-2
-2
2
-2
3
2
0
0
0
2
0
0
0
0
4
0
-2
0
0
0
2
2
-2
2
5
2
0
2
0
0
0
0
0
0
6
0
-2
0
2
0
0
2
-2
2
7
0
-2
0
2
0
2
0
-2
2
8
0
2
0
-2
0
-2
-2
0
-2
9
0
-2
0
2
0
2
2
-2
0
Пороги биполярных нейронов сети Хопфилда рассчитываются с помощью
соотношения (12) и данных табл. 1:
Предъявим сети Хопфилда изображение S 1 буквы Н (рис. 5) и рассчитаем
выходные сигналы сети после его снятия при двух значениях порогов:
и
Результаты расчетов приведены в табл. 2.
Таблица 2. Результаты расчетов выходных сигналов сети Хопфилда после
предъявления изображения S 1 буквы Н
Номера
нейронов
Компоненты
изображенияS 1
Входные
сигналы
нейронов
Пороги
нейронов
Выходные
сигналы
нейронов
1
1
4
-4 или 4
1
2
-1
-10
-4 или 4
-1
3
1
4
-4 или 4
1
4
1
10
-4 или 4
1
5
1
4
-4 или 4
1
6
1
10
-4 или 4
1
7
1
10
-4 или 4
1
8
-1
-10
-4 или 4
-1
9
1
10
-4 или 4
1
Из анализа данных табл. 2 следует, что вектор выходного изображения сети
повторяет изображение S 1 в широком диапазоне значений порогов. Аналогичная
ситуация получается и при предъявлении изображения S 2 буквы Т (табл. 3), то
есть рассчитанная дискретная сеть Хопфилда, как ей и положено, повторяет на
своем выходе идеальные входные изображения.
Таблица 3. Результаты расчетов выходных сигналов сети Хопфилда после
предъявления изображения S 2 буквы Т
Номера
нейронов
Входные
сигналы
нейронов
Компоненты
изображенияS 2
Пороги
нейронов
Выходные
сигналы
нейронов
1
1
4
-4 или 4
1
2
1
10
-4 или 4
1
3
1
4
-4 или 4
1
4
-1
-10
-4 или 4
-1
5
1
4
-4 или 4
1
6
-1
-10
-4 или 4
-1
7
-1
-10
-4 или 4
-1
8
1
10
-4 или 4
1
9
-1
-10
-4 или 4
-1
Предъявим теперь сети изображение S 3И, инверсное изображению S 3 (рис. 5).
Изображение S 3И можно рассматривать как искаженное представление буквы Н, у
которого утеряны две отрицательные компоненты. Результаты расчетов для этого
случая при
приведены в табл. 4 (при
изображение не
восстанавливается.). Сопоставление пятых столбцов таблиц 4 и 2 показывает, что
сеть восстановила эталонное изображение буквы Н.
Таблица 4. Результаты расчетов выходных сигналов сети Хопфилда после
предъявления изображения S 3
Номера
нейронов
Компоненты
изображенияS 3И
Входные
сигналы
нейронов
Пороги
нейронов
Выходные
сигналы
нейронов
1
1
4
-4
1
2
1
-6
-4
-1
3
1
4
-4
1
4
1
2
-4
1
5
1
4
-4
1
6
1
2
-4
1
7
1
2
-4
1
8
1
-6
-4
-1
9
1
2
-4
1
При предъявлении изображений S 1, S 2, S 3И сеть попадала в стационарную точку
за один такт времени при синхронном срабатывании всех ее элементов. Однако
такое идеально быстрое достижение устойчивого состояния возможно далеко не
всегда. Предъявим сети изображение S 4 (рис. 6), которое можно рассматривать как
сильно искаженный эталон буквы Н, у которого пять единичных компонент
заменены на противоположные "-1". Для достижения стационарной точки,
соответствующей изображению S 1 буквы Н, в этом случае при
необходимо
два такта времени. При этом сеть проходит через состояния S 5 (рис. 6). Входные и
выходные сигналы нейронов сети во время этого динамического процесса
приведены в табл. 5.
Таблица 5. Результаты расчетов выходных сигналов сети Хопфилда после
предъявления изображения S 4
Номера
нейронов
Компоненты
изображенияS 4(t
= 0)
Входные сигналы
нейронов
Выходные сигналы
нейронов
t=1
t=2
t=1
t=2
1
1
0
4
1
1
2
-1
6
-6
1
-1
3
-1
4
4
1
1
4
-1
-2
2
1
1
5
1
0
4
1
1
6
-1
-2
2
1
1
7
-1
-2
2
1
1
8
-1
6
-6
1
-1
9
-1
-2
2
1
1
Модификация АОРО
Кроме того, метод быстрого распространения в некоторых случаях сильнее страдает от неустойчивости и
застревания в локальных минимумах, чем метод обратного распространения; все эти свойства нужно
учитывать при решении вопроса о том, подходит ли метод быстрого распространения к данной конкретной
задаче.
В методе быстрого распространения производится пакетная обработка данных. В то время как в методе
обратного распространения веса сети корректируются после обработки каждого очередного наблюдения, в
методе быстрого распространения вычисляется усредненный градиент поверхности ошибок по всему
обучающему множеству, и веса корректируются один раз в конце каждой эпохи.
По этой причине в методе быстрого распространения функция Перемешать недоступна, так как она,
очевидно, не имела бы никакого действия.
Метод быстрого распространения действует в (как правило, необоснованном) предположении, что
поверхность ошибок является локально квадратичной. Если это так, то точка минимума на ней находится
всего через одну-две эпохи. Разумеется, в общем случае такое предположение неверно, но даже если оно
выполняется лишь приблизительно, алгоритм все равно очень быстро сходится к минимуму.
В этом предположении алгоритм быстрого распространения работает так:
На первой эпохе веса корректируются по тому же правилу, что и в методе обратного распространения,
исходя из локального градиента и коэффициента скорости обучения.
На последующих эпохах алгоритм использует предположение о квадратичности для более быстрого
продвижения к точке минимума.
Исходные формулы метода быстрого распространения имеют ряд вычислительных недостатков. Во-первых,
если поверхность ошибок не является вогнутой, алгоритм может уйти в ложном направлении. Далее, если
вектор градиента не меняется или меняется мало, шаг алгоритма может оказаться очень большим и даже
бесконечным. Наконец, если по ходу встретился нулевой градиент, изменение весов вообще прекратится.
Вариант этого метода, реализованный в пакете STATISTICA Нейронные Сети, включает ряд средств для
борьбы с этими трудностями.


Если алгоритм идет в неверном направлении или слишком быстро меняет величину шага, скорость
изменений весов ограничивается специальным коэффициентом ускорения.
2. Если градиент, который был ранее нулевым, стал ненулевым, то для этого веса алгоритм
запускается заново.
Технические подробности. Метод быстрого распространения обрабатывает данные в пакетном режиме:
градиент ошибки вычисляется как сумма градиентов ошибок по всем обучающим наблюдениям.
На первой эпохе алгоритм быстрого распространения корректирует веса так же, как и алгоритм обратного
распространения.
Затем изменения весов вычисляются по формуле быстрого распространения:
Эта формула численно неустойчива при s(t) близком, равном, или большем, чем s(t-1).
Поскольку s(t) находится после продвижения по направлению градиента, это может произойти, только если
наклон поверхности стал постоянным или становится круче (т.е. поверхность не является вогнутой).
В таких случаях веса корректируются по формуле:
a - коэффициент ускорения.
Если градиент становится равным нулю, то приращение (дельта) веса также делается равным нулю и, по
приведенной выше формуле, так нулем и остается, даже если градиент потом изменится. Обычный способ
борьбы с такой трудностью состоит в добавлении к вычисленным выше изменениям весов маленького
коэффициента. Однако, это может привести к численной неустойчивости. Вместо этого в
пакете STATISTICA Нейронные Сети отслеживается величина градиента. Если градиент был нулем, а затем
становится существенно отличным от нуля, то корректировка соответствующего веса вновь делается как для
отрицательного градиента.
Download