МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ
АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«САМАРСКИЙ национальный исследовательский
УНИВЕРСИТЕТ имени академика С.П. КОРОЛЕВА
(САМАРСКИЙ университет)»
Солдатова О. П.
Системы искусственного интеллекта
Курс лекций
Самара
2016
Оглавление
1 Введение в нейронные сети 2
1.1 Основные свойства нейронных сетей 2
1.2 Биологические основы нейронных сетей 4
1.3 Модель МакКаллока - Питса 6
1.4 Персептрон 8
1.5 Сигмоидальный нейрон 8
1.6 Нейрон типа WTA 11
1.7 Функции активации нейронов 12
2 Многослойные сети прямого распространения сигнала 14
2.1 Однослойный персептрон 14
2.2 Многослойный персептрон 15
2.3 Структура двухслойной сигмоидальной нейронной сети 17
2.4 Градиентные методы обучения многослойного персептрона 19
2.4.1 Основные положения градиентных алгоритмов обучения сети 19
2.4.2 Подбор коэффициента обучения 20
2.4.3 Алгоритм обратного распространения ошибки 21
2.4.4 Алгоритм наискорейшего спуска 24
3 Сети с самоорганизацией на основе конкуренции 26
3.1 Сеть Кохонена 26
3.2 Меры расстояния между векторами и нормализация векторов 28
3.3 Проблема мертвых нейронов 29
3.4 Алгоритмы обучения без учителя 31
3.4.1 Алгоритм WTA 31
3.4.2 Алгоритм Кохонена 32
4 Рекуррентные сети 33
4.1 Общие положения 33
4.2 Сеть Хопфилда 34
4.3 Сеть Хемминга 37
1 Введение в нейронные сети
1.1 Основные свойства нейронных сетей
Исследования по искусственным нейронным сетям связаны с тем, что способ обработки информации человеческим мозгом принципиально отличается от методов, применяемых обычными цифровыми компьютерами. Мозг представляет собой чрезвычайно сложный, нелинейный, параллельный компьютер. Он обладает способностью организовывать свои структурные компоненты, называемые нейронами, так, чтобы они могли выполнить конкретные задачи (такие как распознавание образов, обработку сигналов органов чувств, моторные функции) во много раз быстрее, чем могут позволить самые быстродействующие компьютеры. Мозг имеет совершенную структуру, позволяющую строить собственные правила на основе опыта. Опыт накапливается с течением времени.
Понятие развития нейронов мозга связано с понятием пластичности мозга – способностью настройки нервной системы в соответствии с окружающей средой. Аналогично в искусственных нейронных сетях производится настройка искусственных нейронов и формируется структура нейронной сети. В общем случае нейронная сеть представляет машину, моделирующую способ обработки мозгом конкретной задачи. Эта сеть обычно реализуется с помощью электронных компонентов или моделируется программой.
Таким образом, можно дать следующее определение нейронных сетей, выступающих в роли адаптивной машины [3]:
нейронная сеть – это громадный распределенный параллельный процессор, состоящий из элементарных единиц обработки информации, накапливающих экспериментальные знания и представляющих их для последующей обработки. Нейронная сеть сходна с мозгом с двух точек зрения:
• знания поступают в нейронную сеть из окружающей среды и используются в процессе обучения;
• для накопления знаний применяются связи между нейронами, называемые синаптическими весами.
Процедура настройки синаптических весов называется алгоритмом обучения.Эта процедура выстраивает в определённом порядке веса нейронов сети для обеспечения необходимой взаимосвязи между ними.
Наиболее существенными свойствами нейронных сетей являются:
1. Нелинейность.Поскольку искусственные нейроны могут быть линейными и нелинейными, то нейронные сети позволяют воспроизводить сложные зависимости, как линейные, так и нелинейные. Нейронные сети реализуют нелинейность особого вида, так как она распределена по сети. Кроме того, нейронные сети справляются с "проклятием размерности", которое не позволяет моделировать нелинейные зависимости в случае большого числа переменных.
2. Параллельная обработка информации. Благодаря этой способности при большом количестве межнейронных связей достигается значительное ускорение процесса обработки информации. Во многих ситуациях становится возможной обработка сигналов в реальном масштабе времени.
3. Обучение на примерах. Одной из популярных парадигм обучения является обучение с учителем. Такой способ обучения предполагает изменение синаптических весов на основе набора учебных примеров. Каждый пример состоит из входного сигнала и соответствующего ему ожидаемого выходного сигнала. Нейронная сеть модифицирует синаптические веса для минимизации разности ожидаемого выходного сигнала и реального выходного сигнала, формируемого нейронной сетью. Таким образом, нейронная сеть обучается на примерах, представляющих собой таблицу соответствий вход-выход для конкретной задачи. Ранее использованные примеры могут быть использованы для обучения снова в таком же или ином порядке.
4. Адаптивность (adaptivity). Нейронные сети обладают способностью адаптировать свои синаптические веса к изменениям окружающей среды. Нейронные сети могут быть легко переучены для работы в нестационарной среде. Для того, чтобы использовать все достоинства адаптивности, основные параметры системы должны быть достаточно стабильными, чтобы не учитывать внешние помехи, и достаточно гибкими, чтобы обеспечить реакцию на существенные изменения среды.
5. Нечувствительность к ошибкам (faulttolerance). Очень большое количество межнейронных соединений приводит к тому, что сеть становится нечувствительной к ошибкам, возникающим в отдельных контактах. Функции поврежденных соединений принимают на себя другие элементы, в результате в деятельности сети не наблюдаются заметные нарушения. Только серьезные повреждения структуры нейронных сети существенно влияют на ее работоспособность.
6. Способность к обобщению полученных знаний. Сеть обладает чертами искусственного интеллекта. Натренированная на ограниченном множестве обучающих примеров, она обобщает накопленную информацию и вырабатывает ожидаемую реакцию применительно к данным, не обрабатывавшимся в процессе обучения.
7. Единообразие анализа и проектирования. Нейронные сети являются универсальным механизмом обработки информации. Одно и тоже проектное решение нейронной сети может быть использовано в разных предметных областях. Это свойство проявляется из-за нескольких причин:
◦ нейроны являются стандартными составными частями любой нейронной сети;
◦ можно использовать одни и те же алгоритмы обучения в различных нейросетевых приложениях;
◦ на основе интеграции целых модулей могут быть построены модульные сети.
8. Аналогия с нейробиологией.Строение нейронных стетй определяется аналогией с живым мозгом, являющимся доказательством возможности существования отказоустойчивых вычислительных параллельных систем, эффективно решающих поставленные задачи.
Наличие перечисленных свойств вызвало в последние годы огромный рост интереса к нейронным сетям и существенный прогресс в их исследовании. Искусственные нейронные сети используются для аппроксимации функций, сжатия данных, классификации и распознавания образов, прогнозирования, идентификации, оценивания и ассоциативного управления.
1.2 Биологические основы нейронных сетей
Искусственные нейронные сети возникли на основе знаний о функционировании нервной системы живых существ. Невную систему человека можно представить в виде трёхступенчатой системы.
Центром этой системы является мозг, представляемый сетью нервных клеток,то есть нейронной сетью. Он получает информацию, анализирует ее и выдает соответствующие решения. Рецепторы получают информацию от тела и окружающей среды и преобразуют её в электрический импульс, передаваемый в мозг. Эффекторы преобразовывают электрические импульсы, вырабатываемы мозгом в выходные сигналы.
Нервная клетка, сокращенно называемая нейроном, является основным элементом нервной системы. У нейрона есть тело, называемое сомой, внутри которого располагается ядро. Из сомы нейрона выходят отростки двух видов: многочисленные тонкие, густо ветвящиеся дендриты и более толстый, расщепляющийся на многочисленные нервные окончания – колатералы,аксон (рис.1.1)[4].
Выходной сигнал клетки передается через аксон при помощи колатералов. Колатералы контактируют с сомой и дендритами других нейронов, образуя каналы связи выходных сигналов клетки с входами других клеток, которые называются синапсами. Синапсы могут находиться как на дендритах, так и непосредственно в теле клетки. Самым распространённым типом синапсов является химический синапс, который работает следующим образом.
Передача сигналов внутри нервной системы – это очень сложный электрохимический процесс. С большим упрощением можно считать, что передача нервного импульса между двумя клетками основана на выделении особых химических субстанций, называемых нейромедиаторами, которые формируются под влиянием поступающих от синапсов раздражителей. Предсинаптический процесс формирует субстанцию, которая методом диффузии передаётся по синаптическим связям и влияет на постсинаптический процесс. Синапс преобразует пресинаптический электрический сигнал в химический, а затем в постсинаптический - электрический.
Данные субстанции воздействуют на клеточную мембрану, вызывая изменение ее энергетического потенциала, причем величина этого изменения пропорциональна количеству нейромедиатора, попадающего на мембрану.
Синапсы отличаются друг от друга размерами и возможностями концентрации нейромедиатора.
Рис. 1.1 Упрощенная структура биологической нервной клетки
Поэтому импульсы одинаковой величины, поступающие на входы нервной клетки через различные синапсы, могут в разной степени изменять ее энергетический потенциал. Мерой изменения потенциала считается уровень поляризации мембраны, зависящий от суммарного количества нейромедиатора, выделенного на всех синапсах.
В результате поступления входных импульсов на конкретные синапсы происходит изменение электрического потенциала клетки. Если отклонение от состояния электрического равновесия невелико, клетка возвращается в исходное состояние и на ее выходе сигнал не регистрируется. В этом случае считается, что уровень изменения потенциала ниже порога ее срабатывания. Если суммарное изменение потенциала превысило порог активации клетки, значение выходного сигнала начинает нарастать, приобретая характер нервного импульса, пересылаемого аксоном на другие нейроны, подключенные к данной клетке (рис.1.2). Величина этого сигнала не зависит от степени превышения порога срабатывания.
Количество взаимодействующих друг с другом нервных клеток в человеческом мозге оценивается, как 1011- 1014. Каждая нервная клетка выполняет функцию суммирования весовых коэффициентов входных сигналов и сравнивает полученную сумму с пороговым значением. Каждый нейрон имеет свои веса и свои пороговые значения. Громадное количество нейронов и межнейронных связей (до 1000 входов в каждый нейрон) приводит к тому, что ошибка в срабатывании отдельного нейрона остается незаметной в общей массе взаимодействующих клеток.
*
Рис. 1.2 Типичная форма нервного импульса
Существует огромное количество форм и размеров нейронов в зависимости от того, в какой части мозга он находятся.Самыми распространёнными нейронами коры головного мозга являются пирамидальные нейроны.
Следует отметить, что ни одна современная технология не позволяет построить искусственную нейронную сеть, близкую по масштабам к нейронной сети мозга. Однако изучение и копирование биологических нервных систем, позволяет надеяться на создание нового поколения электронных устройств, имеющих аналогичные характеристики.
1.3 Модель МакКаллока - Питса
Нейрон является единицей обработки информации в нейронной сети. Из приведенных выше рассуждений следует, что каждый нейрон суммирует с соответствующими весами сигналы, приходящие от других нейронов, выполняет нелинейную решающую функцию и передает результат связанным с ним другим нейронам. В простейших моделях нейронов выходной сигнал принимает двоичные значения: 0 или 1. Значение 1 соответствует превышению порогового уровня, значение 0 – в противном случае. Одна из первых моделей нейрона была предложена Дж. МакКаллоком и У. Питсом в 1943 году [4]. Структурная схема этой модели представлена на рис. 1.3.
Сигналы xj на входе синапсов j (j = 1,2,…,N), связанные с нейроном i, суммируются с учетом соответствующих синаптических весов wij (первый индекс относится к нейрону, а второй к синапсу), после чего результат сравнивается с пороговым значением wi0 .
Пороговое значение отражает увеличение или уменьшение входного сигнала, подаваемого на функцию активации, которая ограничивает амплитуду выходного сигнала. Выходной сигнал нейрона yi определяется при этом зависимостью
(1.1)
Рис. 1.3 Модель нейрона МакКаллока-Питса
Аргументом функции выступает суммарный сигнал, формируемый сумматором искусственного нейрона.
. (1.2)
Коэффициенты в формуле (1.1) представляют веса синапсов. Положительные значения соответствует синапсам, повышающим потенциал, отрицательные значения – синапсам, понижающим потенциал, свидетельствует об отсутствии связи между i-м и j-м нейронами.
Использование порогового сигнала обеспечивает эффект аффинного преобразования выхода линейного сумматора .
Модель МакКаллока – Питса – это дискретная модель, в которой состояние нейрона в момент (t+1) рассчитывается по значению его входных сигналов в момент времени t.
Функция f(ui) называется функцией активации. В модели МакКаллока – Питса это пороговая функция вида:
. (1.3)
В общем случае эта функция активации описывается следующим выражением:
(1.4)
где b и c – некоторые постоянные. На практике чаще всего используют две пары постоянных b и c: первая (-1,1); вторая – (0,1). Первая пара коэффициентов определяет так называемую симметричную пороговую функцию, вторая – смещенную.
1.4 Персептрон
Ф. Розенблатт в 1958 году ввел понятие персептрона как первой модели обучения с учителем [4]. Обучение персептрона требует наличие учителя и состоит в таком подборе весов,чтобывыходной сигнал был наиболее близок к заданному значению . При таком способе обучения, каждой обучающей выборке, представленной вектором x поставлено в соответствии ожидаемое значение на выходе i-го нейрона.
Наиболее популярный метод обучения персептрона, называемый правилом персептрона, состоит в подборе весовых коэффициентов по следующему алгоритму:
• при первоначально выбранных (как правило, случайным образом) значениях весов на вход нейрона подается обучающий вектор x и рассчитывается значение выходного сигнала . По результатам сравнения значения с заданным значением уточняются значения весов;
• если совпадает с ожидаемым значением , то весовые коэффициенты wijне изменяются;
• если =0 , а соответствующее значение =1 , то значения весов уточняются по формуле , где (t+1)– это номер текущего цикла, а t – номер предыдущего цикла;
• если =1 , а соответствующее значение =0 , то значения весов уточняются по формуле , где (t+1)– это номер текущего цикла, а t – номер предыдущего цикла;
По завершении уточнения весов предоставляются очередной обучающий вектор x и связанное с ним значение , и значения весов уточняются заново. Этот процесс повторяется для всех обучающих выборок, пока не будут минимизированы различия между всеми значениями и соответствующими им значениями .
1.5 Сигмоидальный нейрон
Нейрон сигмоидального типа имеет структуру, подобную модели МакКаллока–Питса, с той разницей, что функция активации является непрерывной и может быть выражена в виде сигмоидальной униполярной или биполярной функции [4]. Структура нейрона представлена на рис. 1.4.
Входные сигналы (j=1,2,…,N) суммируются с учетом соответствующих весов (сигнал поступает в направлении от узла j к узлу i) в сумматоре, после чего результат сравнивается с пороговым значением . Выходной сигнал нейрона yi определяется при этом зависимостью
. (1.9)
Аргументом функции выступает суммарный сигнал . Функция f(ui), называемая функцией активации, относится к классу непрерывных, монотонно возрастающих и дифференцируемых функций. Нейрон сигмоидального типа использует сигмоидальную униполярную (логистическую) или сигмоидальную биполярную (гиперболический тангенс) функцию активации.
Рис. 1.4 Модель сигмоидального нейрона
Униполярная функция, как правило, представляется формулой
, (1.10)
тогда как биполярная функция задается в виде (1.11) или (1.12):
. (1.11)
(1.12)
Графики сигмоидальных функций при k=1 представлены на рис. 1.5.
Отметим, что, как правило, современные компьютеры вычисляют функцию гиперболического тангенса быстрее, чем логистическую. Другое преимущество функции гиперболического тангенса состоит в том, что она изменяется в диапазоне от –1 до +1. Часто бывает необходимо нормировать обучающий набор данных таким образом, чтобы среднее значение было равно 0 при единичном стандартном отклонении.
Такая нормировка возможна только с функцией активации, которая способна принимать отрицательные значения. И наконец, нечетная функция, такая, как гиперболический тангенс, обеспечивает более быстрое обучение, чем несимметричная логистическая функция.
В этих формулах параметр k подбирается пользователем. Его значение влияет на форму функции активации. При малых значениях k график функции достаточно пологий, по мере роста значения kкрутизна графика увеличивается.
Рис. 1.5 Графики сигмоидальных функций:
а – логистическая; б – гиперболический тангенс
При k → ∞ сигмоидальная функция превращается в пороговую функцию, идентичную функции активации персептрона. На практике чаще всего для упрощения используется значение k =1.
Важным свойством сигмоидальной функции является ее дифференцируемость. Для униполярной функции имеем
, (1.13)
тогда как для биполярной функции
. (1.14)
И в первом, и во втором случае график изменения производной относительно переменной x имеет колоколообразную форму, а его максимум соответствует значению x=0.
Сигмоидальный нейрон, как правило, обучается с учителем.
При обучении с учителем предполагается, что помимо входных сигналов, составляющих вектор x, известны также и ожидаемые выходные сигналы нейрона , составляющие вектор d. В подобной ситуации подбор весовых коэффициентов должен быть организован так, чтобы фактические выходные сигналы нейрона принимали бы значения, как можно более близкие к ожидаемым значениям . Ключевым элементом процесса обучения с учителем является знание ожидаемых значений выходного сигнала нейрона.
При обучении с учителем производится минимизация целевой функции, которая для единичного обучающего кортежа
i-го нейрона определяется в виде
(1.15)
где
. (1.16)
Применение непрерывной функции активации позволяет использовать при обучении градиентные алгоритмы.
1.6 Нейрон типа WTA
В соответствии с принципами функционирования биологических нейронов созданы различные математические модели, которыми в большей или меньшей степени реализуются свойства природной нервной клетки. Обобщенная схема, составляющая основу большинства таких моделей, восходит к представленной на рисунке 1.3 модели МакКаллока-Питса, содержащий сумматор взвешенных входных сигналов и нелинейный блок выработки выходного сигнала нейрона, функционально зависящего от выходного сигнала сумматора. Однако, существуют и другие модели нейронов существенно отличающиеся от модели МакКаллока–Питса.
Рассмотрим более подробно нейроны типа WTA(winnertakesall – победитель получает все) [4]. Эти нейроны имеют входной модуль в виде стандартного сумматора, рассчитывающего сумму входных сигналов с соответствующими весами . Выходной сигнал i-го сумматора определяется согласно формуле:
(1.17)
Группа конкурирующих между собой нейронов получает одни и те же входные сигналы . Выходные сигналы нейронов сравниваются между собой, и по результатам сравнения победителем признается нейрон, значение выходного сигнала у которого оказалось наибольшим. Нейрон-победитель вырабатывает на своем выходе состояние 1, а остальные нейроны переходят в состояние 0. Для обучения нейронов типа WTA не требуется учитель. На начальном этапе случайным образом выбираются весовые коэффициенты каждого нейрона, нормализуемые относительно 1. После подачи первого входного вектора x определяется победитель этапа. Победивший нейрон переходит в состояние 1, что позволяет провести уточнение весов его входных линий по следующему правилу:
(1.18)
Проигравшие нейроны не изменяют свои весовые коэффициенты.
Схема соединения нейронов типа WTA изображена на рис.1.6.
На функционирование нейронов типа WTA оказывает существенное влияние нормализация входных векторов и весовых коэффициентов. Выходной сигнал i-го нейрона может быть описан векторным отношением:
(1.19)
Поскольку , значение выходного сигнала определяется углом между векторами x и w. Поэтому победителем оказывается нейрон, вектор весов которого оказывается наиболее близким текущему обучаемому вектору.
Рис. 1.6 Схема соединения нейронов типа WTA
В результате победы нейрона уточняются его весовые коэффициенты, значения которых приближаются к значениям вектора x. Проигравшие нейроны не изменяют свои веса. Следствием такой конкуренции становится самоорганизация процесса обучения.
1.7 Функции активации нейронов
Вид функции активации во многом определяет функциональные возможности нейронной сети и метод обучения этой сети. Перечень наиболее известных функций активации представлен в таблице 1.1.
Табл. 1.1
Примеры функций активации
Название
Формула
Область значений
Линейная
Полулинейная
Линейная с насыщением
Логистическая
Гиперболический тангенс
Рациональная
Синусоидальная
Экспоненциальная
Гаусса
Пороговая
Модульная
Знаковая (сигнатурная)
Квадратичная
2 Многослойные сети прямого распространения сигнала
2.1 Однослойный персептрон
Однослойный персептрон образуют нейроны, расположенные в одной плоскости (рисунок 2.1). Каждый нейрон имеет поляризатор, то есть единичный сигнал, который с весом поступает на вход нейрона, а также множество связей с весами , по которым поступают входные сигналы .
Рисунок 2.1 Структура однослойного персептрона
Значения весов подбираются в процессе обучения сети путём приближения реальных выходных значений к эталонным значениям . Мерой близости является значение целевой функции.При использовании обучающих векторов для сети из нейронов, целевую функцию можно определить следующим образом:
(2.1)
Выходные сигналы являются функциями весов сети и уточняются в процессе обучения в соответствии с критерием минимизации целевой функции (2.1).
Расположенные на одном уровне нейроны функционируют независимо друг от друга, поэтому возможности однослойного персептрона определяются возможностями отдельных нейронов.Каждый нейрон реализует функциональное отображение , где - сигмоидальная функция, поэтому значение выходного сигнала будет зависеть от знака выражения .
Выходной сигнал при фиксированных значениях весов зависит от входного вектора , который определяет гиперплоскость, разделяющую многомерное входное пространство на два подпространства. Вследствие этого, задача классификации (приписывание выходному сигналу значения 1 или 0), может быть решена одним нейроном, если это задача линейной разделимости классов. Добавление нейронов в единственный слой сети не позволяет улучшить её функциональные возможности. Вследствие этого, однослойная сеть имеет небольшое практическое значение. Добавление ещё одного слоя нейронов, даже состоящего из единственного нейрона позволяет существенно расширить возможнойти сети.
2.2 Многослойный персептрон
В настоящее время наиболее часто используемой архитектурой нейросети является многослойный персептрон (MLP), который представляет собой обобщение однослойного персептрона.
Обычно сеть состоит из множества входных узлов, которые образуют входной слой; одного или нескольких скрытых слоев вычислительных нейронов и одного выходного слоя. Входной сигнал распространяется по сети в прямом направлении от слоя к слою. Многослойные персептроны успешно применяются для решения разнообразных сложных задач. При этом обучение с учителем выполняется с помощью такого популярного алгоритма, как алгоритм обратного распространения ошибки.
Многослойный персептрон имеет три отличительных признака:
1. Каждый нейрон имеет нелинейную функцию активации. Данная функция должна быть гладкой (то есть всюду дифференцируемой). Самой популярной гладкой функцией активации является сигмоидальная функция.
2. Сеть содержит один или несколько слоев скрытых нейронов. Эти нейроны позволяют сети обучаться решению сложных задач, последовательно извлекая наиболее важные признаки из входного вектора.
3. Сеть обладает высокой степенью связности, реализуемой посредством синаптических соединений.
Структура многослойного персептрона с двумя скрытыми слоями изображена на рис. 2.2 [4]. Показанная на рисунке сеть является полносвязной, что характерно для многослойного персептрона. Это значит, что каждый нейрон любого слоя связан со всеми нейронами предыдущего слоя. Сигнал передается по сети в прямом направлении слева направо.
Рисунок 2.2 Структура многослойного персептрона с двумя скрытыми слоями
Для многослойного персептрона выделяют два типа сигналов:
1. Функциональный сигнал – это входной сигнал сети, передаваемый в прямом направлении по всей сети. Такой сигнал достигает конца сети в виде выходного сигнала. В каждом нейроне, через который передается этот сигнал, вычисляется некоторая функция от взвешенной суммы его входов с поправкой в виде порогового элемента - единичного сигнала с весовым коэффициентом wio.
2. Сигнал ошибки – берет своё начало на выходе сети и распространяется в обратном направлении от слоя к слою. Вычисляется каждым нейроном на основе функции ошибки, представленной в той или иной форме.
Выходные нейроны составляют выходной слой сети. Остальные нейроны относятся к скрытым слоям. Первый скрытый слой получает данные из входного слоя. Результирующий сигнал первого скрытого слоя, в свою очередь, поступает на следующий скрытый слой и так далее, до самого конца сети.
В сетях подобного типа используются, в основном, сигмоидальные нейроны. Такую сеть легко можно интерпретировать как модель вход-выход, в которой веса и пороговые значения являются свободными параметрами модели. Такая сеть может моделировать функцию практически любой степени сложности, причем число слоев и число нейронов в каждом слое определяют сложность функции.
В многослойных сетях эталонные значения выходных сигналов известны, как правило, только для нейронов выходного слоя, поэтому сеть невозможно обучить, руководствуясь только величинами ошибок на выходе нейросети.
Один из вариантов решения этой проблемы – разработка учебных примеров для каждого слоя нейросети, что является очень трудоемкой операцией и не всегда осуществимо.
Второй вариант – динамическая подстройка весовых коэффициентов синапсов, в ходе которой выбираются, как правило, наиболее слабые связи и изменяются на малую величину в ту или иную сторону, а сохраняются только те изменения, которые повлекли уменьшение ошибки на выходе всей сети. Очевидно, что данный метод "тыка", несмотря на свою кажущуюся простоту, требует громоздких рутинных вычислений.
И, наконец, третий, более приемлемый вариант – распространение сигналов ошибки от выходов нейросети к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы. Этот алгоритм обучения нейросети получил название процедуры обратного распространения. Разработка алгоритма обратного распространения для определения весов в многослойном перcептроне сделала эти сети наиболее популярными у исследователей и пользователей нейронных сетей.
Основными достоинствами многослойного персептрона являются простота в использовании, гарантированное получение ответа после прохода данных по слоям, хорошо апробированные и широко применяемые алгоритмы обучения, способность моделирования функции любой степени сложности.
С другой стороны, существует множество спорных вопросов при проектировании сетей прямого распространения. Например, сколько скрытых слоев необходимо для решения данной задачи, сколько следует выбрать нейронов в каждом слое, как сеть будет реагировать на данные, не включенные в обучающую выборку, и какой размер обучающей выборки необходим для достижения "хорошей" обобщающей способности сети.
2.3 Структура двухслойной сигмоидальной нейронной сети
На рис. 2.3 представлена сеть с одним скрытым слоем. Все последующие рассуждения относятся к сетям именно такого типа. Обозначения сигналов и весов также будут соответствовать этому рисунку. Веса нейронов скрытого слоя пометим верхним индексом (1), а выходного слоя – верхним индексом (2). Выходные сигналы нейронов скрытого слоя обозначим (i=0, 1, 2,…, K), а выходного слоя (s=1, 2, …, M).
Пусть функция активации нейронов задана в сигмоидальной униполярной или биполярной форме. Для упрощения описания будем использовать расширенное обозначение входного вектора сети в виде , где соответствует единичному сигналу порогового элемента.
Рисунок 2.3 Обобщенная структура двухслойной сигмоидальной нейронной сети
С вектором x связаны два выходных вектора сети: вектор фактических выходных сигналов и вектор ожидаемых выходных сигналов .
Цель обучения состоит в подборе таких значений весов и для двух слоев сети, чтобы при заданном входном векторе x получить на выходе значения сигналов , которые с требуемой точностью будут совпадать с ожидаемыми значениями для s=1, 2, …, M.
Если рассматривать единичный сигнал порогового элемента как один из компонентов входного вектора x, то веса пороговых элементов можно добавить в векторы весов соответствующих нейронов обоих слоев. При таком подходе выходной сигнал i-го нейрона скрытого слоя удается описать функцией
, (2.2)
в которой индекс 0 соответствует сигналу и весам пороговых элементов, причем , . В выходном слое s-ый нейрон вырабатывает выходной сигнал, определяемый как
. (2.3)
Из формулы (2.3) следует, что на значение выходного сигнала влияют веса обоих слоев, тогда как сигналы, вырабатываемые в скрытом слое, не зависят от весов выходного слоя.
Для того чтобы сеть можно было применять в дальнейшем, ее прежде надо обучить на полученных ранее данных, для которых известны и значения входных параметров, и правильные ответы на них. Это обучение состоит в подборе весов межнейронных связей, обеспечивающих наибольшую близость ответов сети к известным правильным ответам.
Определение числа промежуточных слоев и числа элементов в них является важным вопросом при конструировании многослойного персептрона.
2.4 Градиентные методы обучения многослойного персептрона
2.4.1 Основные положения градиентных алгоритмов обучения сети
Задачу обучения нейронной сети будем рассматривать, как требование минимизировать априори определенную целевую функцию E(w). При таком подходе можно применять для обучения алгоритмы, которые в теории оптимизации считаются наиболее эффективными. К ним, без сомнения, относятся градиентные алгоритмы, чью основу составляет выявление градиента целевой функции. Они связаны с разложением целевой функции E(w) в ряд Тейлора в ближайшей окрестности точки имеющегося решения w. В случае целевой функции от многих переменных () такое представление связывается с окрестностью ранее определенной точки (в частности, при старте алгоритма это исходная точка ) в направлении p. Подобное разложение описывается универсальной формулой вида
(2.4)
где - это вектор градиента, а симметричная квадратная матрица
является матрицей производных второго порядка, называемой гессианом [4].
В выражении (2.4) p играет роль направляющего вектора, зависящего от фактических значений вектора w. На практике чаще всего рассчитываются три первых члена ряда (2.4), а последующие члены ряда просто игнорируются. При этом зависимость (2.4) может считаться квадратичным приближением целевой функции E(w) в ближайшей окрестности найденной точки w с точностью, равной локальной погрешности отсеченной части , где h= ||p||. Для упрощения описания значения переменных, полученных в t-ом цикле, будем записывать с нижним индексом t. Точкой решения будем считать точку, в которой достигается минимум целевой функции E(w) и , а гессиан ) является положительно определенным.
В процессе поиска минимального значения целевой функции направление поиска p и шаг h подбираются таким образом, чтобы для каждой очередной точки выполнялось условие . Поиск минимума продолжается, пока норма градиента не упадет ниже априори заданного значения допустимой погрешности либо пока не будет превышено максимальное время вычислений (количество итераций).
Универсальный оптимизационный алгоритм обучения нейронной сети можно представить в следующем виде (будем считать, что начальное значение оптимизируемого вектора известно и составляет ) [4]:
1. Проверка сходимости и оптимальности текущего решения . Если точка отвечает градиентным условиям остановки процесса – завершение вычислений. В противном случае перейти к п.2.
2. Определение вектора направления оптимизации для точки .
3. Выбор величины шага в направлении , при котором выполняется условие .
4. Определение нового решения , а также соответствующих ему значений и , а если требуется – то и , и возврат к п.1.
2.4.2 Подбор коэффициента обучения
После правильно выбранного направления , в градиентных алгоритмах обучения, следует определить новую точку решения , в которой будет выполняться условие . Необходимо подобрать такое значение , чтобы новое решение лежало как можно ближе к минимуму функции E(w) в направлении . Грамотный подбор коэффициента оказывает огромное влияние на сходимость алгоритма оптимизации к минимуму целевой функции. Чем сильнее величина отличается от значения, при котором E(w) достигает минимума в выбранном направлении , тем большее количество итераций потребуется для поиска оптимального решения. Слишком малое значение не позволяет минимизировать целевую функцию за один шаг и вызывает необходимость повторно двигаться в том же направлении. Слишком большой шаг приводит к «перепрыгиванию» через минимум функции и фактически заставляет возвращаться к нему.
Существуют различные способы подбора значений , называемого в теории нейронных сетей коэффициентом обучения. Простейший из них основан на фиксации постоянного значения на весь период оптимизации. Этот способ практически используется только совместно с методом наискорейшего спуска. Он имеет низкую эффективность, поскольку значение коэффициента обучения никак не зависит от вектора фактического градиента и, следовательно, от направления p на данной итерации. Величина подбирается, как правило, раздельно для каждого слоя сети с использованием различных эмпирических зависимостей. Один из походов состоит в определении минимального значения для каждого слоя по формуле
, (2.5)
где обозначает количество входов i-го нейрона в слое.
В [4] предложена следующая адаптивная формула для корректировки значений коэффициента обучения в зависимости от итерации обучения:
, (2.6)
где - начальное значение коэффициента обучения, - константа времени поиска, задаваемые пользователем, а - номер итерации обучения.
При достаточно больших значениях и при большом числе итераций, значительно превосходящих константу , алгоритм обучения будет вести себя как стохастический алгоритм аппроксимации, а веса будут сходиться к своим оптимальным значениям.
2.4.3 Алгоритм обратного распространения ошибки
Алгоритм обратного распространения ошибки определяет стратегию подбора весов многослойной сети с применением градиентных методов оптимизации. В настоящее время считается одним из наиболее эффективных алгоритмов обучения многослойной сети. При обучении ставится задача минимизации целевой функции, формируемой, как правило, в виде квадратичной суммы разностей между фактическими и ожидаемыми значениями выходных сигналов, которая для P обучающих выборок определяется по формуле:
(2.7)
В случае единичной обучающей выборки (x,d) целевая функция имеет вид:
(2.8)
Уточнение весов может проводиться после предъявления каждой обучающей выборки (так называемый режим «онлайн»), при этом используется целевая функция вида (2.8), либо однократно после предъявления всех обучающих выборок (режим «оффлайн»), при этом используется целевая функция вида (2.7). В последующем изложении используется целевая функция вида (2.8).
Для упрощения можно считать, что цель обучения состоит в таком определении значений весов нейронов каждого слоя сети, чтобы при заданном входном векторе получить на выходе значения сигналов , совпадающие с требуемой точностью с ожидаемыми значениями при s= 1, 2,…,M.
Обучение сети с использованием алгоритма обратного распространения ошибки проводится в несколько этапов.
На первом из них предъявляется обучающая выборка x и рассчитываются значения сигналов соответствующих нейронов сети. При заданном векторе x определяются вначале значения выходных сигналов vi скрытого слоя, а затем значения ys выходного слоя. Для расчета применяются формулы (2.1) и (2.2). После получения значений выходных сигналов становится возможным рассчитать фактическое значение целевой функции ошибки E(w).
На втором этапе минимизируется значение этой функции.
Так как целевая функция непрерывна, то наиболее эффективными методами обучения оказываются градиентные алгоритмы, согласно которым уточнение вектора весов (обучение) производится по формуле:
, (2.9)
где , (2.10)
- коэффициент обучения, а p(w) – направление в многомерном пространстве w. В алгоритме обратного распространения ошибки p(w) определяется как частная производная , взятая со знаком минус.
Обучение многослойной сети с применением градиентных методов требует определения вектора градиента относительно весов всех слоев сети, что необходимо для правильного выбора направления p(w). Эта задача имеет очевидное решение только для весов выходного слоя. Для других слоев используется алгоритм обратного распространения ошибки, который определяется следующим образом [4]:
1. Подать на вход сети вектор x и рассчитать значения выходных сигналов нейронов скрытых слоев и выходного слоя, а также соответствующие производные функций активации каждого слоя (m – количество слоев).
2. Создать сеть обратного распространения ошибок путем изменения направления передачи сигналов, замены функций активации их производными и подачи на бывший выход сети в качестве входного сигнала разности между фактическими и ожидаемыми значениями.
3. Уточнить веса по формулам (2.9) и (2.10) на основе результатов, полученных в п.1 и п.2 для исходной сети и для сети обратного распространения ошибки.
4. Пункты 1, 2, 3 повторить для всех обучающих выборок, вплоть до выполнения условия остановки: норма градиента станет меньше заданного значения , характеризующего точность обучения.
Рассмотрим основные расчетные формулы для сети с одним скрытым слоем, представленной на рисунке 2.2. Используется сигмоидальная функция активации, при этом в случае гиперболического тангенса производная функции активации равна
(2.11)
В случае логистической функции производная равна
(2.12)
В формулах (2.11) и (2.12) под переменной u будем понимать выходные сигналы сумматоров нейронов скрытого или выходного слоя, представленных формулами (2.13) и (2.14).
(2.13)
(2.14)
Уточнение весовых коэффициентов будем проводить после предъявления каждой обучающей выборки. Минимизация ведется методом градиентного спуска, что означает подстройку весовых коэффициентов следующим образом:
(2.15)
(2.16)
Здесь – весовой коэффициент синаптической связи, соединяющей i-ый нейрон слоя m с j-ым нейроном слоя m-1, – коэффициент обучения, 0<<1.
С учетом принятых на рисунке 2.3 обозначений целевая функция для выходного слоя нейронов определяется следующим образом:
(2.17)
(2.18)
Здесь под , как и раньше, подразумевается выход s –го нейрона.
Компоненты градиента относительно нейронов скрытого слоя описываются более сложной зависимостью:
(2.19)
В другом виде эта зависимость может быть выражена формулой:
(2.20)
2.4.4 Алгоритм наискорейшего спуска
Если при разложении целевой функции E(w) в ряд Тейлора ограничиться ее линейным приближением, то мы получим алгоритм наискорейшего спуска. Для выполнения соотношения достаточно подобрать . Условию уменьшения значения целевой функции отвечает выбор вектора направления
. (2.21)
В этом случае коррекция весовых коэффициентов производится по формуле:
(2.22)
В другом виде формулу коррекции весов по методу наискорейшего спуска можно представить следующим образом:
(2.23)
Ограничение слагаемым первого порядка при разложении функции в ряд Тейлора, не позволяет использовать информацию о ее кривизне. Это обуславливает линейную сходимость метода. Указанный недостаток, а также резкое замедление минимизации в ближайшей окрестности точки оптимального решения, когда градиент принимает очень малые значения, делают алгоритм наискорейшего спуска низкоэффективным. Тем не менее, простота, невысокие требования к объему памяти и относительно невысокая вычислительная сложность, обуславливают широкое использование алгоритма. Повысить эффективность удается путем эвристической модификации выражения, определяющего направление градиента.
Одна из модификаций получила название алгоритма обучения с моментом. При этом подходе уточнение весов сети производится по формуле:
(2.24)
где - это коэффициент момента, принимающий значения в интервале [0, 1].
Первое слагаемое в формуле (2.24) соответствует алгоритму наискорейшего спуска, а второе слагаемое учитывает последнее изменение весов и не зависит от фактического значения градиента. Чем больше значение коэффициента , тем большее значение оказывает показатель момента на подбор весов. При постоянном значении коэффициента обучения приращение весов остается примерно одинаковым, то есть , поэтому эффективное приращение весов можно писать формулой:
(2.25)
При значении =0,9 это соответствует десятикратному увеличению значения коэффициента обучения и, следовательно, десятикратному ускорению процесса обучения. При малых значениях градиента показатель момента начинает доминировать, что приводит к такому приращению весов, которое соответствует увеличению значения целевой функции, позволяющему выйти из зоны локального минимума. Однако показатель момента, не должен доминировать на протяжении всего процесса обучения, поскольку это приводит к нестабильности алгоритма. На практике, увеличение целевой функции не допускается больше, чем на 4%. В противном случае, . При этом показатель градиента начинает доминировать над показателем момента и процесс развивается в направлении минимизации, заданном вектором градиента [2].
3 Сети с самоорганизацией на основе конкуренции
3.1 Сеть Кохонена
Основу самоорганизации нейронных сетей составляет подмеченная закономерность, что глобальное упорядочение сети становится возможным в результате самоорганизующих операций, независимо друг от друга проводящихся в различных локальных сегментах сети. В соответствии с поданными сигналами осуществляется активация нейронов, в результате чего активным оказывается один нейрон в сети (или в группе). Выходной нейрон, который выиграл соревнование, называется нейроном-победителем.
Нейроны в ходе конкурентного процесса, вследствие изменения значений синаптических весов, избирательно настраиваются на различные входные векторы или классы входных векторов. В процессе обучения наблюдается тенденция к росту значений весов, из-за которой создается своеобразная положительная обратная связь: более мощные возбуждающие импульсы – более высокие значения весов – большая активность нейронов.
При этом происходит естественное расслоение нейронов на различные группы, отдельные нейроны или их группы сотрудничают между собой и активизируются в ответ на возбуждение, создаваемое конкретными обучающими векторами, подавляя своей активностью другие нейроны. Можно говорить как о сотрудничестве между нейронами внутри группы, так и о конкуренции между нейронами внутри группы и между различными группами.
Среди механизмов самоорганизации можно выделить два основных класса: самоорганизация, основанная на ассоциативном правиле Хебба, и механизм конкуренции нейронов на базе обобщенного правила Кохонена. В дальнейшем будем рассматривать механизм конкуренции нейронов.
Нейроны помещаются в узлах решетки, обычно одно- или двумерной. Сети более высокой размерности также возможны, но используются достаточно редко. Как правило, это однослойные сети прямого распространения, в которых нейрон соединен со всеми компонентами -мерного входного вектора х так, как это схематично изображено для на рис. 3.1 [4].
Рис. 3.1 Структура самоорганизующейся сети Кохонена.
Формирование самоорганизующихся сетей начинается с инициализации синаптических весов сети. Обычно синаптическим весам присваиваются малые значения, которые формируются генератором случайных чисел. При такой инициализации сеть изначально не имеет какого-либо порядка признаков входных векторов. После инициализации сети реализуются три основных процесса [4]:
1. Конкуренция. Для каждого входного вектора нейроны сети вычисляют относительные значения дискриминантной функции.
2. Кооперация. Победивший нейрон определяет топологическую окрестность группы нейронов, обеспечивая базис для кооперации между ними.
3. Синаптическая адаптация. Корректировка синаптических весов возбужденных нейронов позволяет увеличить их собственные значения дискриминантных функций по отношению к входным векторам. Корректировка производится таким образом, чтобы выходной сигнал нейрона-победителя усиливался при последующем применении аналогичных входных векторов.
Веса синаптических связей нейронов образуют вектор . После нормализации входных векторов при активации сети вектором в конкурентной борьбе побеждает тот нейрон, веса которого в наименьшей степени отличаются от соответствующих компонентов этого вектора. Для -го нейрона-победителя выполняется соотношение
(3.1)
где обозначает расстояние между векторами и , а - количество нейронов. Вокруг нейрона-победителя образуется топологическая окрестность с определенной энергетикой, уменьшающейся с течением времени. Нейрон-победитель и все нейроны, лежащие в пределах его окрестности, подвергаются адаптации, в ходе которой их векторы весов изменяются в направлении вектора по правилу Кохонена:
(3.2)
для , где - коэффициент обучения -го нейрона на окрестности в t-й момент времени. Значение уменьшается с увеличением расстояния между -м нейроном и победителем. Веса нейронов, находящихся вне окрестности , не изменяются. Размер окрестности и коэффициенты обучения нейронов являются функциями, значения которых уменьшаются с течением времени. В [10] доказано, что адаптация по формуле (3.2) эквивалентна градиентному методу обучения, основанному на минимизации целевой функции
, (3.3)
а представляет собой функцию определения окрестности, изменяющуюся в процессе обучения.
После предъявления двух различных векторов и активизируются два нейрона сети, веса которых наиболее близки к координатам соответствующих векторов. Эти веса, обозначенные и , могут отображаться в пространстве как две точки. Сближение векторов и вызывает соответствующее изменение в расположении векторов и В пределе равенство выполняетсятогда и только тогда, когда и совпадают или практически неотличимы друг от друга. Сеть, в которой эти условия выполняются, называется топографической картой или картой Кохонена.
3.2 Меры расстояния между векторами и нормализация векторов
Процесс самоорганизации предполагает определение победителя каждого этапа, то есть нейрона, вектор весов которого в наименьшей степени отличается от поданного на вход сети вектора х. В этой ситуации важной проблемой становится выбор метрики, в которой будет измеряться расстояние между векторами х и . Чаще всего в качестве меры расстояния используются:
• эвклидова мера
; (3.4)
• скалярное произведение
; (3.5)
• мера относительно нормы L1 (Манхэттен)
; (3.6)
• мера относительно нормы L∞
. (3.7)
При использовании эвклидовой меры разбиение пространства на зоны доминирования нейронов равносильно разбиению на области Вороного. При использовании другой меры формируется другое разделение областей влияния нейронов. Использование скалярного произведения требует нормализации входных векторов, так как в противном случае возможно неравномерное распределение нейронов: в одной области может находиться несколько нейронов, а в другой – ни одного нейрона.
При нормализованных входных обучающих векторах стремящиеся к ним векторы весов нормализуются автоматически. Однако нормализация векторов приводит к тому, что если , то для всех нейронов при фиксированном значении произведение также становится постоянной величиной. Поэтому активация нейрона определяется значением , которое становится общей мерой для всей сети. Следует отметить, что при нормализации вектора весов эвклидова мера и скалярное произведение равнозначны друг другу, так как . Поэтому при. Экспериментальные исследования подтвердили необходимость применения нормализации векторов при малой размерности пространства [2]. Такая нормализация проводится двумя способами:
1. Переопределение компонентов вектора в соответствии с формулой
. (3.8)
2. Увеличением размерности пространства на одну координату с таким выбором -го компонента вектора, чтобы выполнялось условие:
. (3.9)
При использовании второго способа возникает необходимость предварительного масштабирования компонентов вектора .
С увеличением размерности входного вектора эффект нормализации становится менее заметным, а при размерности вообще сходит на нет.
3.3 Проблема мертвых нейронов
При инициализации весов сети случайным способом часть нейронов может оказаться в области пространства, в которой отсутствуют данные или их количество ничтожно мало. Эти нейроны имеют мало шансов на победу и адаптацию своих весов, поэтому они остаются мертвыми. Таким образом, входные данные будут интерпретироваться меньшим количеством нейронов, а погрешность интерпретации данных увеличится. Поэтому важной проблемой становится активация всех нейронов сети, которую можно осуществить, если в алгоритме обучения предусмотреть учет количества побед каждого нейрона, а процесс обучения организовать так, чтобы дать шанс победить и менее активным нейронам.
Существуют различные механизмы учета активности нейронов в процессе обучения [4]. Часто используется метод подсчета потенциала pi каждого нейрона, значение которого модифицируется всякий раз после предъявления очередной реализации входного вектора х в соответствии со следующей формулой (в ней предполагается, что победителем стал w-й нейрон):
. (3.10)
Значение коэффициента определяет минимальный потенциал, разрешающий участие в конкурентной борьбе. Если фактическое значение потенциала падает ниже , то i-й нейрон «отдыхает», а победитель ищется среди нейронов, для которых выполняется соотношение
(3.11)
Максимальное значение потенциала ограничивается на уровне, равном 1. Выбор конкретного значения позволяет установить порог готовности нейрона к конкурентной борьбе. При =0 утомляемость нейронов не возникает, и каждый из них сразу после победы будет готов к продолжению соперничества. При =1 возникает другая крайность, вследствие которой нейроны побеждают по очереди, так как в каждый момент только один из них оказывается готовым к соперничеству. На практике хорошие результаты достигаются при ≈0,74.
В другом очень удачном алгоритме обучения количество побед нейрона учитывается при подсчете эффективного расстояния между вектором весов и реализацией обучающего вектора х. Это расстояние модифицируется пропорционально количеству побед данного нейрона в прошлом. Если обозначить количество побед i-го нейрона , такую модификацию можно представить в виде
. (3.12)
Активные нейроны с большим значением штрафуются искусственным завышением этого расстояния. Отметим, что модификация расстояния производится только при выявлении победителя. В момент уточнения весов учитывается фактическое расстояние. Обычно после двух или трех циклов обучения модификация прекращается, что позволяет продолжить «честную» конкуренцию нейронов.
3.4 Алгоритмы обучения без учителя
3.4.1 Алгоритм WTA
Алгоритмы обучения, используемые для обучения нейронных сетей Кохонена, называются алгоритмами обучения без учителя. Подобные алгоритмы применяются в тех случаях, когда нет эталонных выходных значений для входных векторов.
Целью обучения сети с самоорганизацией на основе конкуренции, считается такое упорядочение нейронов, которое минимизирует значение отклонения вектора весов от входного вектора x. При p входных векторах x эта погрешность в эвклидовой метрике может быть выражена в виде:
, (3.13)
где - это вес нейрона-победителя при предъявлении вектора .
Этот подход также называется векторным квантованием (VQ). Номера нейронов-победителей при последовательном предъявлении векторов xобразуют так называемую кодовую таблицу. При классическом решении задачи кодирования применяется алгоритм K-усреднений, носящий имя обобщенного алгоритма Ллойда.
Для нейронных сетей аналогом алгоритма Ллойда считается алгоритм WTA(WinnerTakesAll – победитель получает все). В соответствии с ним после предъявления вектора x рассчитывается активность каждого нейрона. Победителем признается нейрон с самым сильным выходным сигналом, то есть тот, для которого скалярное произведение оказывается наибольшим, что для нормализованных векторов равнозначно наименьшему эвклидову расстоянию между входным вектором и вектором весов нейронов. Победитель получает право уточнить свои веса в направлении вектора x согласно правилу
(3.14)
Веса остальных нейронов уточнению не подлежат. Алгоритм позволяет учитывать усталость нейронов путем подсчета количества побед каждого из них и поощрять элементы с наименьшей активностью для выравнивания их шансов.
Помимо алгоритмов WTA, в которых в каждой итерации может обучаться только один нейрон, для обучения сетей с самоорганизацией широко применяется алгоритмы типа WTM (WinnerTakesMost – победитель получает больше), в которых, кроме победителя, уточняют значения своих весов и нейроны из его ближайшего окружения. При этом, чем дальше какой-либо нейрон находится от победителя, тем меньше изменяются его веса. Процесс уточнения вектора весов может быть определен в виде
(3.15)
для всех i нейронов, расположенных в окрестности победителя. В приведенной формуле коэффициент обучения каждого нейрона отделен от его расстояния до предъявленного вектора x функцией . Если определяется в форме
, (3.16)
для wобозначает номер победителя, то мы получаем классический алгоритм WTA. Существует множество вариантов алгоритма WTM, отличающихся ,прежде всего формой функции . Для дальнейшего обсуждения выберем классический алгоритм Кохонена.
3.4.2 Алгоритм Кохонена
Алгоритм Кохонена относится к наиболее старым алгоритмам обучения сетей с самоорганизацией на основе конкуренции, и в настоящее время существуют различные его версии [4]. В классическом алгоритме Кохонена сеть инициализируется путем приписывания нейронам определенных позиций в пространстве и связывании их с соседями на постоянной основе. В момент выбора победителя уточняются не только его веса, но также веса и его соседей, находящихся в ближайшей окрестности. Таким образом, нейрон-победитель подвергается адаптации вместе со своими соседями.
, (3.17)
В этом выражении может обозначать как эвклидово расстояние между векторами весов нейрона-победителя и -го нейрона, так и расстояние, измеряемое количеством нейронов.
Другой тип соседства в картах Кохонена- это соседство гауссовского типа, при котором функция определяется формулой
. (3.18)
Уточнение весов нейронов происходит по правилу:
. (3.19)
Степень адаптации нейронов-соседей определяется не только эвклидовым расстоянием между i-м нейроном и нейроном-победителем (w-м нейроном) , но также уровнем соседства . Как правило, гауссовское соседство дает лучшие результаты обучения и обеспечивает лучшую организацию сети, чем прямоугольное соседство.
4 Рекуррентные сети
4.1 Общие положения
Отдельную группу нейронных сетей составляют сети с обратной связью между различными слоями нейронов. Это так называемые рекуррентные сети. Их общая черта состоит в передаче сигналов с выходного либо скрытого слоя во входной слой. Главная особенность таких сетей – динамическая зависимость на каждом этапе функционирования. Изменение состояния одного нейрона отражается на всей сети вследствие обратной связи типа «один ко многим». В сети возникает переходный процесс, который завершается формированием нового устойчивого состояния, отличающегося в общем случае от предыдущего [4].
Другой особенностью рекуррентных сетей является тот факт, что для них не подходит ни обучение с учителем, ни обучение без учителя. В таких сетях весовые коэффициенты синапсов рассчитываются только однажды перед началом функционирования сети на основе информации об обрабатываемых данных, и все обучение сети сводится именно к этому расчету.
С одной стороны, предъявление априорной информации можно расценивать, как помощь учителя, но с другой – сеть фактически просто запоминает образцы до того, как на ее вход поступают реальные данные, и не может изменять свое поведение, поэтому говорить о звене обратной связи с учителем не приходится.
Из сетей с подобной логикой работы наиболее известны сеть Хопфилда и сеть Хемминга, которые обычно используются для организации ассоциативной памяти. Ассоциативная память играет роль системы, определяющей взаимную зависимость векторов. В случае, когда на взаимозависимость исследуются компоненты одного и того же вектора, говорят об ассоциативной памяти. Если же взаимозависимыми оказываются два различных вектора, можно говорить о памяти гетероассоциативного типа. Типичным представителем первого класса является сеть Хопфилда, а второго – сеть Хемминга.
Главная задача ассоциативной памяти сводится к запоминанию входных обучающих выборок таким образом, чтобы при представлении новой выборки система могла сгенерировать ответ, – какая из запомненных ранее выборок наиболее близка к вновь поступившему образу. Наиболее часто в качестве меры близости отдельных векторов применяется мера Хемминга.
При использовании двоичных значений расстояние Хемминга между двумя векторами и определяется в виде [4]:
. (4.1)
При биполярных значениях элементов обоих векторов расстояние Хемминга рассчитывается по формуле:
. (4.2)
Мера Хемминга равна нулю только тогда, когда . В противном случае она равна количеству битов, на которое различаются оба вектора.
4.2 Сеть Хопфилда
Обобщенная структура сети Хопфилда представляется, как правило, в виде системы с непосредственной обратной связью выхода с входом (рис. 4.1) [4]. Характерная особенность такой системы состоит в том, что выходные сигналы нейронов являются одновременно входными сигналами сети:
(4.3)
В классической системе Хопфилда отсутствует связь нейрона с собственным выходом, что соответствует , а матрица весов является симметричной . Процесс обучения сети формирует зоны притяжения некоторых точек равновесия, соответствующих обучающим данным.
Сеть Хопфилда состоит из единственного слоя нейронов, число которых является одновременно числом входов и выходов сети. Каждый нейрон связан синапсами со всеми остальными нейронами, а также имеет один входной синапс, через который осуществляется ввод сигнала. В качестве функции активации нейронов сети Хопфилда будем использовать знаковую функцию, хотя для сетей Хопфилда также можно использовать пороговую функцию, линейную функцию с насыщением или сигмоидальные функции активации.
Рисунок 4.1 Обобщенная структура сети Хопфилда
Это означает, что выходной сигнал нейрона определяется функцией:
, (4.4)
где обозначает число нейронов.
Будем считать, что пороговые элементы являются компонентами вектора . Без учета единичных задержек сети, представляющих собой способ синхронизации процесса передачи сигналов, основные зависимости, определяющие сеть Хопфилда, можно представить в виде:
, (4.5)
с начальным условием . В процессе функционирования сети Хопфилда можно выделить два режима: обучения и классификации. В режиме обучения на основе известных обучающих выборок подбираются весовые коэффициенты . В режиме классификации при зафиксированных значениях весов и вводе конкретного начального состояния нейронов возникает переходной процесс, протекающий в соответствии с выражением (4.5) и завершающийся в одном из локальных минимумов, для которого .
При вводе только одной обучающей выборки процесс изменений продолжается до тех пор, пока зависимость (4.5) не начнет соблюдаться для всех нейронов. Это условие автоматически выполняется в случае выбора значений весов, соответствующих отношению
, (4.6)
поскольку только тогда (вследствие биполярных значений элементов вектора всегда выполняется соотношение ). Следует отметить, что зависимость (4.6) представляет собой правило обучения Хебба. При вводе большого числа обучающих выборок для веса подбираются согласно обобщенному правилу Хебба, в соответствии с которым
. (4.7)
Благодаря такому режиму обучения веса принимают значения, определяемые усреднением множества обучающих выборок.
В случае множества обучающих выборок становится актуальным фактор стабильности ассоциативной памяти. Для стабильного функционирования сети необходимо, чтобы реакция -го нейрона на -ю обучающую выборку совпадала с ее -й составляющей . Это означает, что с учетом выражения (4.7) получим
. (4.8)
Если взвешенную сумму входных сигналов -го нейрона обозначить , то можно выделить в ней ожидаемое значение и остаток, называемый диафонией [2]:
. (4.9)
Вследствие применения знаковой функции активации, выполнение условия (4.8) возможно при малых значениях диафонии, не способных изменить знак . Это означает, что, несмотря на определенное несовпадение битов, переходный процесс завершается в нужной точке притяжения. При предоставлении тестовой выборки, отличающейся некоторым количеством битов, нейронная сеть может откорректировать эти биты и завершить процесс классификации в нужной точке притяжения.
Тем не менее, правило Хебба обладает невысокой продуктивностью. Максимальная емкость ассоциативной памяти (число запомненных образцов) при обучении по правилу Хебба с допустимой погрешностью 1%, составляет примерно 14% от числа нейронов сети [4]. Кроме того, при наличии шума, применение правила Хебба приводит к различным неточностям в виде локальных минимумов, далеких от исходного решения. Поэтому в качестве альтернативы используют методы обучения, основанные на псевдоинверсии.
Идея этого метода состоит в том, что при правильно подобранных весах, каждая поданная на вход выборка генерирует на выходе саму себя, мгновенно приводя к исходному состоянию (зависимость (4.5)) [2]. В матричной форме это можно представить в виде:
, (4.10)
где - матрица весов сети размерностью , а - прямоугольная матрица размерностью , составленная из последовательных обучающих векторов , то есть . Решение такой линейной системы уравнений имеет вид:
, (4.11)
где знак + обозначает псевдоинверсию. Если обучающие векторы линейно независимы, последнее выражение можно представить в форме:
. (4.12)
Псевдоинверсия матрицы размерностью в этом выражении заменена обычной инверсией квадратной матрицы размерностью . Дополнительное достоинство выражения (4.12) – возможность записать его в итерационной форме, не требующей расчета обратной матрицы. В этом случае выражение (4.12) принимает вид функциональной зависимости от последовательности обучающих векторов для:
(4.13)
при начальных условиях . Такая форма предполагает однократное предъявление всех обучающих выборок, в результате чего матрица весов принимает значение . Зависимости (4.12) и (4.13) называются методом проекций. Применение метода псевдоинверсии увеличивает максимальную емкость сети Хопфилда, которая становится равной .
Модифицированный вариант метода проекций – метод проекций – это градиентная форма алгоритма минимизации целевой функции. В соответствии с этим способом веса подбираются рекуррентно с помощью циклической процедуры, повторяемой для всех обучающих выборок:
. (4.14)
Коэффициент - это коэффициент обучения, выбираемый обычно из интервала [0.7 – 0.9]. Процесс обучения завершается, когда изменение вектора весов становится меньше априорно принятого значения .
По завершении подбора весов сети их значения «замораживаются», и сеть можно использовать в режиме распознавания. В этой фазе на вход сети подается тестовый вектор и рассчитывается ее отклик в виде:
(4.15)
(в начальный момент ), причем итерационный процесс повторяется для последовательных значений вплоть до стабилизации отклика.
В процессе распознавания образа по зашумленным сигналам, образующим начальное состояние нейронов, возникают проблемы с определением конечного состояния, соответствующего одному из запомненных образов. Возможны ошибочные решения. Одной из причин нахождения ошибочных решений является возможность перемешивания различных компонентов запомненных образов и формирования стабильного состояния, воспринимаемого как локальный минимум.
4.3 Сеть Хемминга
Сеть Хемминга – это трехслойная рекуррентная структура, которую можно считать развитием сети Хопфилда, была предложена Р. Липпманом. Она позиционируется как специализированное гетероассоциативное запоминающее устройство. Основная идея функционирования сети состоит в минимизации расстояния Хемминга между тестовым вектором, подаваемым на вход сети, и векторами обучающих выборок, закодированными в структуре сети. Обобщенная структура сети Хемминга представлена на рисунке 4.2. [4].
Первый ее слой имеет однонаправленное распространение сигналов от входа к выходу и фиксированные значения весов. Второй слой, MAXNET, состоит из нейронов, связанных обратными связями по принципу «каждый с каждым», при этом в отличие от структуры Хопфилда существует ненулевая связь входа нейрона со своим собственным выходом. Веса нейронов в слое MAXNET постоянны. Разные нейроны связаны отрицательной обратной связью с весом , при этом обычно величина обратно пропорциональна числу образов.
С собственным выходом нейрон связан положительной обратной связью с весом +1. Веса пороговых элементов равны нулю. Нейроны этого слоя функционируют в режиме WTA, при котором в каждой фиксированной ситуации активизируется только один нейрон.
Выходной однонаправленный слой формирует выходной вектор, в котором только один нейрон имеет выходное значение, равное 1, а все остальные – равные 0.
Рисунок 4.2 Обобщенная структура сети Хемминга
Веса первого слоя соответствуют входным векторам-образцам , поэтому для , i=t,, то есть веса первого нейрона запоминают компоненты первого входного вектора. Веса второго нейрона – компоненты второго вектора и т. д.
Аналогично веса выходного слоя соответствуют очередным векторам образов , , i,t,l=1,2,…p.
В случае нейронов слоя MAXNET, функционирующих в режиме WTA, веса сети должны усиливать собственный сигнал нейрона и ослаблять остальные сигналы. Для достижения этого принимается , а также
(4.16)
для. Для обеспечения абсолютной сходимости алгоритма веса должны отличать друг от друга. Р. Липпман в своей работе принял
, (4.17)
где - случайная величина с достаточно малой амплитудой.
В процессе функционирования сети в режиме распознавания можно выделить три фазы. В первой из них на вход подается N-элементный вектор х. После предъявления этого вектора на выходах нейронов первого слоя генерируются сигналы, задающие начальные состояния нейронов второго слоя. Нейроны первого слоя рассчитывают расстояния Хемминга между поданными на вход сети вектором и векторами весов отдельных нейронов этого слоя. Значения выходных сигналов этих нейронов определяются по формуле:
, (4.18)
где обозначает расстояние Хемминга между входными векторами и , то есть число битов, на которое различаются эти два вектора. Значение , если , и , если . В остальных случаях значения лежат в интервале [0, 1].
Сигналы нейронов первого слоя становятся начальными состояниями нейронов слоя MAXNET на второй фазе функционирования сети.
Во второй фазе инициировавшие MAXNET сигналы удаляются, и из сформированного ими начального состояния запускается итерационный процесс. Итерационный процесс завершается в момент, когда все нейроны, кроме нейрона-победителя с выходным сигналом не равным 0, перейдут в нулевое состояние.
Задача нейронов этого слоя состоит в определении победителя, то есть нейрона, у которого выходной сигнал отличен от 0. Процесс определения победителя выполняется согласно формуле:
, (4.19)
при начальном значении . Функция активации нейронов слоя MAXNET задается выражением:
. (4.20)
Итерационный процесс (4.19) завершается в момент, когда состояние нейронов стабилизируется, и активность продолжает проявлять только один нейрон, тогда как остальные пребывают в нулевом состоянии. Активный нейрон становится победителем и через веса (s= 1,2,..,N)линейных нейронов выходного слоя представляет вектор , который соответствует номеру вектора, признанному слоем MAXNET в качестве ближайшего к входному вектору .
В третьей фазе этот нейрон посредством весов, связывающих его с нейронами выходного слоя, формирует на выходе сигнал, равный 1, его номер является номер входного образца, к которому принадлежит входной вектор.
Входные узлы сети принимают значения, задаваемые аналогичными компонентами вектора х. Нейроны первого слоя рассчитывают расстояние Хемминга между входным вектором х и каждым из закодированных векторов-образцов , образующих веса нейронов первого слоя. Нейроны в слое MAXNET выбирают вектор с наименьшим расстоянием Хемминга, определяя, таким образом, класс, к которому принадлежит предъявленный входной вектор х. Веса нейронов выходного слоя формируют вектор, соответствующий классу входного вектора. При нейронах первого слоя, емкость запоминающего устройства Хемминга также равна , так как каждый нейрон представляет единственный класс.
Важным достоинством сети Хемминга считается небольшое, по сравнению с сетью Хопфилда, число взвешенных связей между нейронами. Так, например, 100-входовая сеть Хопфилда, кодирующая 10 различных векторных классов, должна содержать 10000 взвешенных связей, тогда как аналогичная сеть Хемминга содержит 1100 связей, из которых 1000 весов находятся в первом слое, а 100 – в слое MAXNET [4].
4 Сети на основе радиально-базисных функций
4.1 Математическое обоснование радиально-базисных сетей
Многослойные нейронные сети, с точки зрения математики, выполняют аппроксимацию стохастической функции нескольких переменных путем преобразования множества входных переменных во множество выходных переменных . Вследствие характера сигмоидальной функции активации осуществляется аппроксимация глобального типа, так как преобразование значения функции в произвольной точке пространства выполняется объединенными усилиями многих нейронов.
Другой способ отображения входного множества в выходное множество заключается в преобразовании путем адаптации нескольких одиночных аппроксимирующих функций к ожидаемым значениям, причем эта адаптация проводится только в локальной области многомерного пространства. При таком подходе отображение всего множества данных представляет собой сумму локальных преобразований, а скрытые нейроны составляют множество базисных функций локального типа.
Особое семейство образуют радиальные сети, в которых скрытые нейроны реализуют функции, радиально изменяющиеся вокруг выбранного центра и принимающие ненулевые значения только в окрестности этого центра. Подобные функции, определяемые в виде , называются радиальными базисными функциями. В таких сетях роль скрытого нейрона заключается в отображении радиального пространства вокруг одиночной заданной точки либо вокруг группы таких точек, образующих кластер. Суперпозиция сигналов, поступающих от всех скрытых нейронов, которая выполняется выходным нейроном, позволяет получить отображение всего многомерного пространства.
Сети радиального типа представляют собой естественное дополнение сигмоидальных сетей. Сигмоидальный нейрон представляется в многомерном пространстве гиперплоскостью, которая разделяет это пространство на два класса, в которых выполняется одно из двух условий: либо , либо . Такой подход продемонстрирован на рис. 4.1а. В свою очередь радиальный нейрон представляет собой гиперсферу, которая осуществляет шаровое разделение пространства вокруг центральной точки (рис. 4.1б) [4].
Именно с этой точки зрения радиальный нейрон является естественным дополнением сигмоидального нейрона, поскольку в случае круговой симметрии данных позволяет заметно уменьшить количество нейронов, необходимых для разделения различных классов.
Рис. 4.1 Иллюстрация способов разделения пространства данных:
а) сигмоидальным нейроном; б) радиальным нейроном
Так как нейроны могут выполнять различные базисные функции, в радиальных сетях отсутствует необходимость использования большого количества скрытых слоев. Структура типичной радиальной сети включает входной слой, на который подаются сигналы, описываемые входным вектором x, скрытый слой с нейронами радиального типа и выходной слой, состоящий, как правило, из одного или нескольких линейных нейронов. Функция выходного нейрона сводится исключительно к взвешенному суммированию сигналов, генерируемых скрытыми нейронами.
Математическую основу функционирования радиальных сетей составляет теорема Т. Ковера о разделимости образов, которая базируется на двух моментах [4]:
1. Определение нелинейной скрытой функции , где x– входной вектор, а i=1,2,…,K, K – размерность скрытого пространства.
2. Высокая размерность скрытого пространства по сравнению с размерностью входного. Эта размерность определяется количеством скрытых нейронов.
Если вектор радиальных функций в N-мерном входном пространстве обозначить (x), то это пространство является нелинейно -разделяемым на два пространственных класса X+и X- тогда, когда существует такой вектор весов w, что
(4.1)
Граница между этими классами определяется уравнением .
Ковер доказал, что каждое множество образов, случайным образом размещенных в многомерном пространстве, является -разделяемым с вероятностью 1 при условии большой размерности K этого пространства. На практике это означает, что применение достаточно большого количества скрытых нейронов, реализующих радиальные функции , гарантирует решение задачи классификации при построении всего лишь двухслойной сети. При этом скрытый слой должен реализовать вектор (x), а выходной слой может состоять из единственного линейного нейрона, выполняющего суммирование выходных сигналов от скрытых нейронов с весовыми коэффициентами, заданными вектором w.
Простейшая нейронная сеть радиального типа функционирует по принципу многомерной интерполяции, состоящей в отображении p различных входных векторов (t=1,2,…,p) из входного N-мерного пространства во множество из p рациональных чисел (t=1,2,…,p). Для реализации этого процесса необходимо использовать p скрытых нейронов радиального типа и задать такую функцию отображения F(x), для которой выполняется условие интерполяции:
. (4.2)
С практической же точки зрения использование в разложении большого числа p базисных функций недопустимо, поскольку если число обучающих выборок велико и равно числу радиальных функций, то в результате вычислительная сложность обучающего алгоритма становится чрезмерной, а сама сеть адаптируется к разного рода шумам и нерегулярностям, сопровождающим обучающие выборки. Поэтому необходимо редуцировать количество весов, что приводит к уменьшению количества базисных функций. В этом случае ищется субоптимальное решение в пространстве меньшей размерности, которое с достаточной точностью аппроксимирует точное решение. Если ограничиться K базисными функциями, то аппроксимирующее решение можно представить в виде
, (4.3)
где KT – уменьшается до нуля.
4.3.2. Применение метода обратного распространения ошибки для радиально-базисных сетей
Обособленный класс алгоритмов обучения радиальных сетей составляют градиентные алгоритмы обучения с учителем, в которых используется алгоритм обратного распространения ошибки. Их основу составляет целевая функция, которая для одного обучающегопримера имеет вид:
(4.10)
Предположим, что применяется гауссовская радиальная функция вида:
(4.11)
(4.12),
где i– индекс нейрона скрытого слоя, j–индекс компонента входного вектора, t – индекс обучающего примера в выборке.
Обучение сети с использованием алгоритма обратного распространения ошибки проводится в два этапа. На первом этапе предъявляется обучающий пример и рассчитываются значения сигналов выходных нейронов сети и значение целевой функции, заданной выражением (4.10). На втором этапе минимизируется значение этой функции.
Подбор значений параметров можно осуществлять, используя градиентные методы оптимизации независимо от объекта обучения – будь то вес или центр. Независимо от выбираемого метода градиентной оптимизации, необходимо, прежде всего, получить вектор градиента целевой функции относительно всех параметров сети. В результате дифференцирования этой функции получим:
(4.13)
(4.14)
(4.15)
(4.16)
При использовании метода наискорейшего спуска формулы для корректировки параметров радиально-базисной сети примут следующий вид:
, (4.17)
, (4.18)
. (4.19)
Список используемых источников
1. Адаменко А.Н., Кучуков А. Логическое программирование и Visual Prolog – Спб.: БХВ – Петербург, 2003.
2. Андрейчиков А.В., Андрейчикова О.Н.. Интеллектуальные информационные системы: Учебник. – М.: Финансы и статистика, 2006. – 424 с., ил.
3. Хайкин С. Нейронные сети: Полный курс: Пер. с англ. - 2-е изд. – М.: Вильямс, 2006. – 1104 с.: ил.
4. Оссовский С. Нейронные сети для обработки информации / Пер. с пол. И.Д. Рудинского. – М.: Финансы и статистика, 2002. – 344 с.: ил.
5. Уоссерман Ф. Нейрокомпьютерная техника: теория и практика / Пер. с англ. Ю.А. Зуев. – М.: Мир, 1992.