Биологический прототип
Алгоритмы обучения
Большинство современных алгоритмов обучения выросло из концепций Д.О. Хэбба. Он предложил модель обучения без учителя, в которой синаптическая сила (вес) возрастает, если активированы оба нейрона, источник и приемник. Таким образом, часто используемые пути в сети усиливаются и феномены привычки и обучения через повторение получают объяснение.
В искусственной нейронной сети, использующей обучение по Хэббу, наращивание весов определяется произведением уровней возбуждения передающего и принимающего нейронов. Это можно записать как
где
— значение веса от нейрона
к нейрону
до подстройки,
— значение веса от нейрона
к нейрону
после подстройки,
— коэффициент скорости обучения,
— выход нейрона
и вход нейрона
,
— выход нейрона
.
Сети, использующие обучение по Хэббу, конструктивно развивались, однако за последние 20 лет появились и разрабатывались более эффективные алгоритмы обучения. В частности, были развиты алгоритмы обучения с учителем, приводящие к сетям с более широким диапазоном характеристик обучающих входных образов и большими скоростями обучения, чем использующие простое обучение по Хэббу.
Биологический прототип
Развитие искусственных нейронных сетей вдохновляется биологией. То есть, рассматривая сетевые конфигурации и алгоритмы, исследователи применяют термины, заимствованные из принципов организации мозговой деятельности. Но на этом аналогия заканчивается. Наши знания о работе мозга столь ограничены, что мало бы нашлось точно доказанных закономерностей для тех, кто пожелал бы руководствоваться ими. Поэтому разработчикам сетей приходится выходить за пределы современных биологических знаний в поисках структур, способных выполнять полезные функции. Во многих случаях это приводит к необходимости отказа от биологического правдоподобия, мозг становится просто метафорой, и создаются сети, невозможные в живой материи или требующие неправдоподобно больших допущений об анатомии и функционировании мозга.
Несмотря на то, что связь с биологией слаба и зачастую несущественна, искусственные нейронные сети продолжают сравнивать с мозгом. Их функционирование часто имеет внешнее сходство с человеческим познанием, поэтому трудно избежать этой аналогии. К сожалению, такие сравнения неплодотворны и создают неоправданные ожидания, неизбежно ведущие к разочарованию.
Нервная система человека, построенная из элементов, называемых нейронами, имеет ошеломляющую сложность. Около
нейронов участвуют в примерно
передающих связях, имеющих длину метр и более. Каждый нейрон обладает многими свойствами, общими с другими органами тела, но ему присущи абсолютно уникальные способности: принимать, обрабатывать и передавать электрохимические сигналы по нервным путям, которые образуют коммуникационную систему мозга.
увеличить изображение
Рис. 1.1. На рис. 1.1 показана структура пары типичных биологических нейронов. Дендриты идут от тела нервной клетки к другим нейронам, где они принимают сигналы в точках соединения, называемых синапсами. Принятые синапсом входные сигналы передаются к телу нейрона. Здесь они суммируются, причем одни входы стремятся возбудить нейрон, другие — воспрепятствовать его возбуждению.
Когда суммарное возбуждение в теле нейрона превышает некоторый порог, нейрон возбуждается, посылая по аксону сигнал другим нейронам. У этой основной функциональной схемы много усложнений и исключений, тем не менее, большинство искусственных нейронных сетей моделируют лишь эти простые свойства.
Цель обучения
Сеть обучается, чтобы для некоторого множества входов давать желаемое (или, по крайней мере, сообразное с ним) множество выходов. Каждое такое входное (или выходное) множество рассматривается как вектор. Обучение осуществляется путем последовательного предъявления входных векторов с одновременной подстройкой весов в соответствии с определенной процедурой. В процессе обучения веса сети постепенно становятся такими, чтобы каждый входной вектор вырабатывал выходной вектор.
Искусственный нейрон
Искусственный нейрон имитирует в первом приближении свойства биологического нейрона. На вход искусственного нейрона поступает некоторое множество сигналов, каждый из которых является выходом другого нейрона. Каждый вход умножается на соответствующий вес, аналогичный синаптической силе, и все произведения суммируются, определяя уровень активации нейрона.
Рис. 1.2. На рис. 1.2 представлена модель, реализующая эту идею. Множество входных сигналов, обозначенных
, поступает на искусственный нейрон. Эти входные сигналы, в совокупности обозначаемые вектором
, соответствуют сигналам, приходящим в синапсы биологического нейрона. Каждый сигнал умножается на соответствующий вес
, и поступает на суммирующий блок, обозначенный
. Каждый вес соответствует "силе" одной биологической синаптической связи. (Множество весов в совокупности обозначается вектором
.) Суммирующий блок, соответствующий телу биологического элемента, складывает взвешенные входы алгебраически, создавая выход, который мы будем называть
. В векторных обозначениях это может быть компактно записано следующим образом:
Сигнал
далее, как правило, преобразуется активационной функцией
и дает выходной нейронный сигнал
. Активационная функция может быть обычной линейной функцией
где
— константа, пороговой функцией
где
— некоторая постоянная пороговая величина, или же функцией, более точно моделирующей нелинейную передаточную характеристику биологического нейрона и предоставляющей
нейронной сети большие возможности.
Рис. 1.3. На рис. 1.2 блок, обозначенный
, принимает сигнал
и выдает сигнал
. Если блок
сужает диапазон изменения величины
так, что при любых значениях
значения
принадлежат некоторому конечному интервалу, то
называется
"сжимающей" функцией. В качестве "сжимающей" функции часто используется логистическая или "сигмоидальная" (S-образная) функция, показанная на рис. 1.3. Эта функция математически выражается как
. Таким образом,
По аналогии с электронными системами активационную функцию можно считать нелинейной усилительной характеристикой искусственного нейрона.
Коэффициент усиления вычисляется как отношение приращения величины
к вызвавшему его небольшому приращению величины

. Он выражается наклоном кривой при определенном уровне возбуждения и изменяется от малых значений при больших отрицательных возбуждениях (кривая почти горизонтальна) до максимального значения при нулевом возбуждении и снова уменьшается, когда возбуждение становится большим положительным. С. Гроссберг (1973) обнаружил, что подобная нелинейная характеристика решает поставленную им дилемму шумового насыщения. Каким образом одна и та же сеть может обрабатывать как слабые, так и сильные сигналы? Слабые сигналы нуждаются в большом сетевом усилении, чтобы дать пригодный к использованию выходной сигнал. Однако усилительные каскады с большими коэффициентами усиления могут привести к насыщению выхода шумами усилителей (случайными флуктуациями), которые присутствуют в любой физически реализованной сети. Сильные входные сигналы, в свою очередь, также будут приводить к насыщению усилительных каскадов, исключая возможность полезного использования выхода. Центральная область логистической функции, имеющая большой коэффициент усиления, решает проблему обработки слабых сигналов, в то время как области с падающим усилением на положительном и отрицательном концах подходят для больших возбуждений. Таким образом, нейрон функционирует с большим усилением в широком диапазоне уровня входного сигнала

Другой широко используемой активационной функцией является гиперболический тангенс. По форме она сходна с логистической функцией и часто используется биологами в качестве математической модели активации нервной клетки. В качестве активационной функции искусственной нейронной сети она записывается следующим образом:
Рис. 1.4. Подобно логистической функции гиперболический тангенс является S-образной функцией, но он симметричен относительно начала координат, и в точке
значение выходного сигнала
равно нулю (см. рис. 1.4). В отличие от логистической функции, гиперболический тангенс принимает значения различных знаков, и это его свойство применяется для целого ряда сетей.
Рассмотренная простая модель искусственного нейрона игнорирует многие свойства своего биологического двойника. Например, она не принимает во внимание задержки во времени, которые воздействуют на динамику системы. Входные сигналы сразу же порождают выходной сигнал. И, что более важно, она не учитывает воздействий функции частотной модуляции или синхронизирующей функции биологического нейрона, которые ряд исследователей считают решающими в нервной деятельности естественного мозга.
Несмотря на эти ограничения, сети, построенные из таких нейронов, обнаруживают свойства, сильно напоминающие биологическую систему. Только время и исследования смогут ответить на вопрос, являются ли подобные совпадения случайными или же они есть следствие того, что в модели верно схвачены важнейшие черты биологического нейрона.
Многослойные искусственные нейронные сети
Более крупные и сложные нейронные сети обладают, как правило, и большими вычислительными возможностями. Хотя созданы сети всех конфигураций, какие только можно себе представить, послойная организация нейронов копирует слоистые структуры определенных отделов мозга. Оказалось, что такие многослойные сети обладают большими возможностями, чем однослойные, и в последние годы были разработаны алгоритмы для их обучения. Многослойные сети могут строиться из каскадов слоев. Выход одного слоя является входом для последующего слоя. Подобная сеть показана на рис. 1.6 и снова изображена со всеми соединениями. Многослойные сети не могут привести к увеличению вычислительной мощности по сравнению с однослойной сетью, если активационная функция между слоями линейна. Вычисление выхода слоя заключается в умножении входного вектора на первую весовую матрицу с последующим умножением (если отсутствует нелинейная активационная функция) результирующего вектора на вторую весовую матрицу

Так как умножение матриц ассоциативно, то
.
Рис. 1.6. Это показывает, что двухслойная линейная сеть эквивалентна одному слою с весовой матрицей, равной произведению двух весовых матриц. Следовательно, любая многослойная линейная сеть может быть заменена эквивалентной однослойной сетью. Однако однослойные сети весьма ограниченны по своим вычислительным возможностям. Таким образом, для расширения возможностей сетей по сравнению с однослойной сетью необходима нелинейная активационная функция.
У сетей, рассмотренных до сих пор, не было обратных связей, т. е. соединений, идущих от выходов некоторого слоя к входам этого же слоя или предшествующих слоев. Этот специальный класс сетей, называемых
сетями без обратных связей или
сетями прямого распространения, представляет большой интерес и широко используется. Сети более общего вида, имеющие соединения от выходов к входам, называются
сетями с обратными связями. У сетей без обратных связей нет памяти, их выход полностью определяется текущими входами и значениями весов.
В некоторых конфигурациях сетей с обратными связями предыдущие значения выходов возвращаются на входы; выход, следовательно, определяется как текущим входом, так и предыдущими выходами. Поэтому сети с обратными связями могут обладать свойствами, сходными с кратковременной человеческой памятью, где сетевые выходы тоже частично зависят от предыдущих входов.
К сожалению, нет общепринятого способа подсчета числа слоев в сети. Многослойная сеть состоит, как показано на рис. 1.6, из чередующихся множеств нейронов и весов. Ранее, в связи с рис. 1.5, уже говорилось, что входной слой не выполняет суммирования. Эти нейроны служат лишь в качестве разветвлений для первого множества весов и не влияют на вычислительные возможности сети. По этой причине первый слой не принимается во внимание при подсчете слоев, и сеть, подобная изображенной на рисунке 1.6, считается двуслойной, так как только два слоя выполняют вычисления. Далее, веса слоя считаются связанными со следующими за ними нейронами. Следовательно, слой состоит из множества весов со следующими за ними нейронами, суммирующими взвешенные сигналы.
Обучение без учителя
Несмотря на многочисленные прикладные достижения, обучение с учителем критиковалось за свою биологическую неправдоподобность. Трудно вообразить обучающий механизм в мозге, который бы сравнивал желаемые и действительные значения выходов, выполняя коррекцию с помощью обратной связи. Обучение без учителя является намного более правдоподобной моделью обучения для биологической системы. Развитая Кохоненом и многими другими, она не нуждается в целевом векторе для выходов и, следовательно, не требует сравнения с предопределенными идеальными ответами. Обучающее множество состоит лишь из входных векторов. Обучающий алгоритм подстраивает веса сети так, чтобы получались согласованные выходные векторы, т. е. чтобы предъявление достаточно близких входных векторов давало одинаковые выходы. Процесс обучения, следовательно, выделяет статистические свойства обучающего множества и группирует сходные векторы в классы. Предъявление на вход вектора из данного класса даст определенный выходной вектор, но до обучения невозможно предсказать, какой выход будет производиться данным классом входных векторов. Следовательно, выходы подобной сети должны трансформироваться в некоторую понятную форму, обусловленную процессом обучения. Это не является серьезной проблемой. Обычно не сложно идентифицировать связь между входом и выходом, установленную сетью.
Обучение искусственных нейронных сетей
Среди всех интересных свойств искусственных нейронных сетей ни одно не захватывает так воображения, как их способность к обучению. Их обучение до такой степени напоминает процесс интеллектуального развития человеческой личности, что может показаться, будто нами достигнуто глубокое понимание этого процесса. Но, проявляя осторожность, следует сдерживать эйфорию. Возможности обучения искусственных нейронных сетей ограниченны, и нужно решить много сложных задач, чтобы определить, находимся ли мы на правильном пути.
Обучение с учителем
Различают алгоритмы обучения с учителем и без учителя. Обучение с учителем предполагает, что для каждого входного вектора существует целевой вектор, представляющий собой требуемый выход. Вместе они называются обучающей парой. Обычно сеть обучается на некотором числе таких обучающих пар. Предъявляется выходной вектор, вычисляется выход сети и сравнивается с соответствующим целевым вектором, разность (ошибка) с помощью обратной связи подается в сеть, и веса изменяются в соответствии с алгоритмом, стремящимся минимизировать ошибку. Векторы обучающего множества предъявляются последовательно, ошибки вычисляются и веса подстраиваются для каждого вектора до тех пор, пока ошибка по всему обучающему массиву не достигнет приемлемо низкого уровня.
Однослойные искусственные нейронные сети
Хотя один нейрон и способен выполнять простейшие процедуры распознавания, но для серьезных нейронных вычислений необходимо соединять нейроны в сети. Простейшая сеть состоит из группы нейронов, образующих слой, как показано в правой части рис. 1.5. Отметим, что вершины-круги слева служат лишь для распределения входных сигналов. Они не выполняют каких-либо вычислений и поэтому не будут считаться слоем. Для большей наглядности обозначим их кругами, чтобы отличать их от вычисляющих нейронов, обозначенных квадратами. Каждый элемент из множества входов
отдельным весом соединен с каждым искусственным нейроном. А каждый нейрон выдает взвешенную сумму входов в сеть. В искусственных и биологических сетях многие соединения могут отсутствовать, но здесь они показаны все для демонстрации общей картины. Могут существовать также соединения между выходами и входами элементов в слое.
Рис. 1.5. Удобно считать веса элементами матрицы
. Матрица имеет
строк и
столбцов, где
— число входов, а
— число нейронов. Например,
— это вес, связывающий третий вход со вторым нейроном. Таким образом, вычисление выходного вектора
, компонентами которого являются выходы OUT нейронов, сводится к матричному умножению
, где
и
— векторы-строки.
Персептроны и зарождение искусственных нейронных сетей
Эффективность запоминания
Серьезные вопросы существуют относительно эффективности запоминания информации в персептроне (или любых других нейронных сетях) по сравнению с обычной компьютерной памятью и методами поиска информации в ней. Например, в компьютерной памяти можно хранить все входные образы вместе с классифицирующими битами. Компьютер должен найти требуемый образ и дать его классификацию. Многочисленные и хорошо известные методы могли бы применяться для ускорения поиска. Если точное соответствие не найдено, то для ответа может быть использовано правило ближайшего соседа.
Число битов, необходимое для хранения этой же информации в весах персептрона, может быть значительно меньшим по сравнению с методом обычной компьютерной памяти, если образы допускают экономичную запись. Однако М.Л.Минский построил патологические примеры, в которых число битов, требуемых для представления весов, растет в зависимости от размерности задачи быстрее, чем экспоненциально. В этих случаях требования к памяти быстро становятся невыполнимыми. Если, как он предположил, эта ситуация не является исключением, то персептроны часто могут быть ограничены только малыми задачами. Насколько общими являются такие неподатливые множества образов? Вопрос остается открытым и относится ко всем нейронным сетям. Поиски ответа чрезвычайно важны для дальнейших исследований в этой области.
Линейная разделимость
Как мы убедились, невозможно нарисовать прямую линию, разделяющую плоскость
так, чтобы реализовывалась функция ИСКЛЮЧАЮЩЕЕ ИЛИ. К сожалению, этот пример не единственный. Имеется обширный класс функций, не реализуемых однослойной сетью. Об этих функциях говорят, что они являются линейно неразделимыми: они-то и накладывают определенные ограничения на возможности однослойных сетей.
Линейная разделимость ограничивает однослойные сети задачами классификации, в которых множества точек (соответствующих входным значениям) могут быть разделены геометрически. Для нашего случая с двумя входами разделитель является прямой линией. В случае трех входов разделение осуществляется плоскостью, рассекающей трехмерное пространство. Для четырех или более входов визуализация невозможна, и необходимо мысленно представить
-мерное пространство, рассекаемое "гиперплоскостью" — геометрическим объектом, который делит пространство четырех или большего числа измерений.
Так как линейная разделимость ограничивает возможности персептронного представления, то важно знать, является ли данная функция разделимой. К сожалению, не существует простого способа определить это, если число переменных велико.
Нейрон с
двоичными входами может иметь
различных входных образов, состоящих из нулей и единиц. Так как каждый входной образ может соответствовать двум различным бинарным выходам (единица и ноль), то всего имеется
функций от
переменных.
Таблица 2.2. | n | | Число линейно разделимых функций |
| 1 | 4 | 4 |
| 2 | 16 | 14 |
| 3 | 256 | 104 |
| 4 | 65536 | 1882 |
| 5 | 4,3x109 | 94572 |
| 6 | 1,8x1019 | 15028134 |
Как следует из табл. 2.2, вероятность того, что случайно выбранная функция окажется линейно разделимой, весьма мала даже для умеренного числа переменных. По этой причине однослойные персептроны на практике ограничены простыми задачами.
Персептронная представляемость
Доказательство теоремы обучения персептрона показало, что персептрон способен научиться всему, что он способен представлять. Важно при этом уметь различать представляемость и обучаемость. Понятие представляемости относится к способности персептрона (или другой сети) моделировать определенную функцию. Обучаемость же требует наличия систематической процедуры настройки весов сети для реализации этой функции.
Для иллюстрации проблемы представляемости допустим, что у нас есть множество карт, помеченных цифрами от 0 до 9. Допустим также, что мы обладаем гипотетической машиной, способной отличать карты с нечетным номером от карт с четным номером и зажигающей индикатор на своей панели при предъявлении карты с нечетным номером. Представима ли такая машина персептроном? То есть возможно ли сконструировать персептрон и настроить его веса (неважно, каким образом) так, чтобы он обладал такой же разделяющей способностью? Если это достижимо, то говорят, что персептрон способен представлять желаемую машину. Мы увидим, что возможности представления однослойными персептронами весьма ограниченны. Имеется много простых машин, которые не могут быть представлены персептроном, независимо от того, как настраиваются его веса.
Персептроны и зарождение искусственных нейронных сетей
В качестве предмета исследования искусственные нейронные сети впервые заявили о себе в 1940-е годы. Стремясь воспроизвести функции человеческого мозга, исследователи создали простые аппаратные (а позже программные) модели биологического нейрона и системы его соединений. Когда нейрофизиологи достигли более глубокого понимания нервной системы человека, эти ранние попытки стали восприниматься как весьма грубые аппроксимации. Тем не менее, на этом пути были достигнуты впечатляющие результаты, стимулировавшие дальнейшие исследования, которые привели к созданию более изощренных сетей.
Рис. 2.1. Первое систематическое изучение искусственных нейронных сетей было предпринято Маккалокком и Питтсом в 1943 г. Позднее они исследовали сетевые парадигмы для распознавания изображений, подвергаемых сдвигам и поворотам. Простая нейронная модель, показанная на рис. 2.1, использовалась в большей части их работ. Элемент
умножает каждый вход
на вес
и суммирует взвешенные входы. Если полученная сумма больше заданного порогового значения, выход равен единице, в противном случае — нулю. Эти системы (и множество им подобных) получили название персептронов. Они состоят из одного слоя искусственных нейронов, соединенных с помощью весовых коэффициентов с множеством входов (см. рис. 2.2), хотя, в принципе, описываются и более сложные системы. В 60-е годы персептроны вызвали большой интерес и оптимизм. Одной из первых искусственных сетей, способных к перцепции (восприятию) и формированию реакции на воспринятый раздражитель, явился PERCEPTRON Розенблатта (F.Rosenblatt, 1957). Персептрон рассматривался его автором не как конкретное техническое (вычислительное) устройство, а как модель работы мозга. Розенблатт называл такую нейронную сеть трехслойной, однако, по современной терминологии, представленная сеть обычно называется
однослойной, так как имеет только один слой нейропроцессорных элементов.
Рис. 2.2. В Корнеллской авиационной лаборатории была разработана электротехническая модель персептрона MARK-1, которая содержала 8 выходных элементов.
На этом персептроне была проведена серия экспериментов по распознаванию букв алфавита и геометрических образов.
Ф. Розенблатт доказал замечательную теорему об обучении персептронов (которую мы рассмотрим на следующей лекции). Д. Уидроу дал ряд убедительных демонстраций систем
персептронного типа, и исследователи во всем мире стремились изучить возможности этих систем. Первоначальная эйфория сменилась разочарованием, когда оказалось, что персептроны не способны обучаться решению ряда простых задач. Минский строго проанализировал эту проблему и показал, что имеются жесткие ограничения того, что могут выполнять однослойные персептроны, и, следовательно, того, чему они могут обучаться. Так как в то время методы обучения многослойных сетей не были известны, исследователи занялись более многообещающими проектами, и исследования в области нейронных сетей пришли в упадок. Недавнее открытие методов обучения многослойных сетей привело к возрождению интереса и возобновлению исследований.
Работа М.Л.Минского, возможно, и охладила пыл энтузиастов персептрона, но обеспечила время для необходимой консолидации и развития лежащей в основе теории. Важно отметить, что анализ Минского не был опровергнут. Он остается актуальным исследованием и должен непременно учитываться как часть базовых знаний, чтобы ошибки 60-х годов не повторились. Несмотря на свои ограничения, персептроны широко изучались. Теория персептронов является основой для многих других типов искусственных нейронных сетей, персептроны иллюстрируют важные принципы. В силу этих причин они являются логической исходной точкой для изучения искусственных нейронных сетей.
Преодоление ограничения линейной разделимости
К концу 1960-х годов проблема линейной разделимости была хорошо понята. К тому же, было известно, что это серьезное ограничение представляемости однослойными сетями можно преодолеть, добавив дополнительные слои. Например, двухслойные сети можно получить каскадным соединением двух однослойных сетей. Они способны выполнять более общие классификации, отделяя те точки, которые содержатся в выпуклых ограниченных или неограниченных областях. Область называется выпуклой, если для любых двух ее точек соединяющий их отрезок целиком лежит в области. Область называется ограниченной, если ее можно заключить в некоторый круг. Неограниченную область невозможно заключить внутрь круга (например, область между двумя параллельными линиями). Примеры выпуклых ограниченных и неограниченных областей представлены на рис. 2.6.
Рис. 2.6. Чтобы уточнить требование выпуклости, рассмотрим простую двуслойную сеть с двумя входами, которые подведены к двум нейронам первого слоя, соединенными с единственным нейроном в слое 2 (см. рис. 2.7а). Пусть порог выходного нейрона равен 0,75, а оба его веса равны 0,5. В этом случае для того, чтобы порог был превышен и на выходе появилась единица, требуется, чтобы оба нейрона первого уровня на выходе имели единицу. Таким образом, выходной нейрон реализует логическую функцию И. На рис. 2.7а каждый нейрон слоя 1 разбивает плоскость
на две полуплоскости, один обеспечивает единичный выход для входов ниже верхней линии, другой — для входов выше нижней линии. На рис. 2.7б показан результат такого двойного разбиения, где выходной сигнал нейрона второго слоя равен единице только внутри
-образной области. Аналогично, во втором слое может быть использовано три нейрона с дальнейшим разбиением плоскости и созданием области треугольной формы. Включением достаточного числа нейронов во входной слой может быть образован выпуклый многоугольник любой желаемой формы. Все такие многогранники выпуклы, так как они образованы с помощью операции И над областями, задаваемыми линиями: следовательно, только выпуклые области и возникают.
Точки, не составляющие выпуклой области, не могут быть отделены от других точек плоскости двухслойной сетью.
Рис. 2.7. Нейрон второго слоя не ограничен функцией И. Он может реализовывать многие другие функции при подходящем выборе весов и порога. Например, можно сделать так, чтобы единичный выход любого из нейронов первого слоя приводил к появлению единицы на выходе нейрона второго слоя, реализовав тем самым логическое ИЛИ. Например, имеется 16 двоичных функций от двух переменных. Если выбирать подходящим образом веса и порог, то можно воспроизвести 14 из них (все, кроме ИСКЛЮЧАЮЩЕЕ ИЛИ и ИСКЛЮЧАЮЩЕЕ НЕТ).
Входы не обязательно должны быть двоичными. Вектор непрерывных входов может представлять собой произвольную точку на плоскости
. В этом случае мы имеем дело со способностью сети разбивать плоскость на непрерывные области, а не с разделением дискретных множеств точек. Для всех этих функций, однако, линейная разделимость показывает, что выход нейрона второго слоя равен единице только в части плоскости
, ограниченной многоугольной областью. Поэтому для разделения плоскостей
и
необходимо, чтобы все
лежали внутри выпуклой многоугольной области, не содержащей точек
(или наоборот).
Трехслойная сеть, впрочем, есть более общий случай. Ее классифицирующие возможности ограничены лишь числом искусственных нейронов и весов. Ограничения на выпуклость отсутствуют. Теперь нейрон третьего слоя принимает в качестве входа набор выпуклых многоугольников, и их логическая комбинация может быть невыпуклой. На рис. 2.8б
иллюстрируется ситуация, когда два треугольника A и B, скомбинированные с помощью функций "A и не B", задают невыпуклую область. При добавлении нейронов и весов число сторон многоугольников может неограниченно возрастать. Это позволяет аппроксимировать область любой формы с любой точностью. Вдобавок, не все выходные области второго слоя должны пересекаться. Возможно, следовательно, объединять различные области, выпуклые и невыпуклые, выдавая на выходе единицу всякий раз, когда входной вектор принадлежит одной из них.
Рис. 2.8. Несмотря на то, что возможности многослойных сетей были известны давно, в течение многих лет не было теоретически обоснованного алгоритма для настройки их весов. В последующих главах мы детально изучим многослойные обучающие алгоритмы, но сейчас достаточно понимать суть проблемы и знать, что исследования привели к определенным результатам.
Проблема функции ИСКЛЮЧАЮЩЕГО ИЛИ
Один из самых пессимистических результатов М.Л. Минского гласит, что однослойный персептрон не может воспроизвести такую простую функцию, как ИСКЛЮЧАЮЩЕЕ ИЛИ. Это функция от двух аргументов, каждый из которых может быть нулем или единицей. Она принимает значение единицы, когда один из аргументов равен единице (но не оба). Проблему можно проиллюстрировать с помощью однослойной однонейронной системы с двумя входами, показанной на рис. 2.3.
Рис. 2.3. Обозначим один вход через
, а другой через
, тогда все их возможные комбинации будут состоять из четырех точек на плоскости
, как показано на рис. 2.4. Например, точка
и
обозначена на рисунке как точка
. Табл. 2.1 показывает требуемую связь между входами и выходом, где входные комбинации, которые должны давать нулевой выход, помечены
и
, единичный выход -
и
.
Таблица 2.1. ТочкиЗначения Значения Требуемый выход
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 1 | 0 |
Рис. 2.4. В сети на рис. 2.3 функция
является обычным порогом, так что OUT принимает значение 0, когда NET меньше 0,5, и 1 в случае, когда NET больше или равно 0,5. Нейрон выполняет следующее вычисление:
Никакая комбинация значений двух весов не может дать соотношения между входом и выходом, задаваемого табл. 2.1. Чтобы понять это ограничение, зафиксируем
на величине порога 0,5. Сеть в этом случае описывается уравнением (2). Это уравнение линейно по
и
, т. е. все значения по
и
, удовлетворяющие этому уравнению, будут лежать на некоторой прямой в плоскости
.
Любые входные значения для
и
на этой линии будут давать пороговое значение 0,5 для
. Входные значения с одной стороны прямой обеспечат значения
больше порога, следовательно,
. Входные значения по другую сторону прямой обеспечат значения NET меньше порога, делая
равным 0. Изменения значений
,
и порога будут менять наклон и положение прямой. Для того чтобы сеть реализовала функцию ИСКЛЮЧАЮЩЕЕ ИЛИ, заданную табл. 2.1, нужно расположить прямую так, чтобы точки
,
были с одной стороны прямой, а точки
,
— с другой. Попытавшись нарисовать такую прямую на рис. 2.4, убеждаемся, что это невозможно.
Это означает, что какие бы значения ни приписывались весам и порогу, сеть неспособна воспроизвести соотношение между входом и выходом, требуемое для представления функции ИСКЛЮЧАЮЩЕЕ ИЛИ. Взглянув на задачу с другой точки зрения, рассмотрим
как поверхность над плоскостью
. Каждая точка этой поверхности находится над соответствующей точкой плоскости
на расстоянии, равном значению
в этой точке. Можно показать, что наклон этой
-поверхности одинаков для всей поверхности
. Все точки, в которых значение
равно величине порога, проектируются на линию уровня плоскости
(см. рис.2.5).
Рис. 2.5. Ясно, что все точки по одну сторону пороговой прямой проецируются в значения
большие порога, а точки по другую сторону дадут меньшие значения
. Таким образом, пороговая прямая разбивает плоскость
на две области. Во всех точках по одну сторону пороговой прямой значение
равно единице, по другую сторону — нулю.
Обучение персептрона
Алгоритм обучения однослойного персептрона
Персептрон должен решать задачу классификации по бинарным входным сигналам. Набор входных сигналов будем обозначать
-мерным вектором
. Все элементы вектора являются булевыми переменными (переменными, принимающими значения "Истина" или "Ложь"). Однако иногда полезно оперировать числовыми значениями. Будем считать, что значению "ложь" соответствует числовое значение 0, а значению "Истина" соответствует 1.
Персептроном будем называть устройство, вычисляющее следующую систему функций:
где
— веса персептрона,
— порог,
— значения входных сигналов, скобки
означают переход от булевых (логических) значений к числовым значениям по правилам, изложенным выше.
Обучение персептрона состоит в подстройке весовых коэффициентов. Пусть имеется набор пар векторов
,
, называемый
обучающей выборкой. Будем называть нейронную сеть обученной на данной обучающей выборке, если при подаче на входы сети каждого вектора
на выходах всякий раз получается соответствующий вектор
.
Предложенный Ф.Розенблаттом метод обучения состоит в итерационной подстройке матрицы весов, последовательно уменьшающей ошибку в выходных векторах. Алгоритм включает несколько шагов:
| Шаг 0 | Начальные значения весов всех нейронов полагаются случайными |
| Шаг 1 | Сети предъявляется входной образ , в результате формируется выходной образ . |
| Шаг 2 | Вычисляется вектор ошибки , делаемой сетью на выходе. Дальнейшая идея состоит в том, что изменение вектора весовых коэффициентов в области малых ошибок должно быть пропорционально ошибке на выходе и равно нулю, если ошибка равна нулю. |
| Шаг 3 | Вектор весов модифицируется по следующей формуле: . Здесь — темп обучения. |
| Шаг 4 | Шаги 1—3 повторяются для всех обучающих векторов. Один цикл последовательного предъявления всей выборки называется эпохой. Обучение завершается по истечении нескольких эпох: а) когда итерации сойдутся, т.е. вектор весов перестает изменяться, или б) когда полная, просуммированная по всем векторам абсолютная ошибка станет меньше некоторого малого значения. |
Объясним данный алгоритм более подробно. Подаем на вход персептрона такой вектор
, для которого уже известен правильный ответ. Если выходной сигнал персептрона совпадает с правильным ответом, то никаких действий предпринимать не надо. В случае ошибки, необходимо обучить персептрон правильно решать данный пример. Ошибки могут быть двух типов. Рассмотрим каждый из них.
Первый тип ошибки: на выходе персептрона — 0, а правильный ответ — 1. Для того чтобы персептрон выдавал правильный ответ, необходимо, чтобы сумма в правой части (1) стала больше. Поскольку переменные принимают значения 0 или 1, увеличение суммы может быть достигнуто за счет увеличения весов
. Однако нет смысла увеличивать веса при переменных
, которые равны нулю. Таким образом, следует увеличить веса
при тех переменных xi, которые равны 1.
Первое правило. Если на выходе персептрона получен 0, а правильный ответ равен 1, то необходимо увеличить веса связей между одновременно активными нейронами. При этом выходной персептрон считается активным. Второй тип ошибки: на выходе персептрона — 1, а правильный ответ равен нулю. Для обучения правильному решению данного примера следует уменьшить сумму в правой части (1). Следовательно, необходимо уменьшить веса связей
при тех переменных, которые равны 1 (поскольку нет смысла уменьшать веса связей при равных нулю переменных
). Необходимо также провести эту процедуру для всех активных нейронов предыдущих слоев. В результате получаем второе правило.
Второе правило. Если на выходе персептрона получена единица, а правильный ответ равен нулю, то необходимо уменьшить веса связей между одновременно активными нейронами.
Таким образом, процедура обучения сводится к последовательному перебору всех примеров обучающего множества с применением правил обучения для ошибочно решенных примеров. Если после очередного цикла предъявления всех примеров окажется, что все они решены правильно, то процедура обучения завершается.
Нерассмотренными остались два вопроса. Первый — о сходимости процедуры обучения.
Целочисленность весов персептронов
Для ответа на вопрос о количественных характеристиках вектора w рассмотрим следующую теорему.
Теорема. Любой персептрон можно заменить другим персептроном того же вида с целыми весами связей.
Доказательство.Обозначим множество примеров одного класса (правильный ответ равен 0) через
, а другого (правильный ответ равен 1) — через
. Вычислим максимальное и минимальное значения суммы в правой части (1):
Определим допуск
как минимум из
и
. Положим
, где
— число слагаемых в (1). Поскольку персептрон(1) решает поставленную задачу классификации и множество примеров в обучающей выборке конечно, то
. Из теории чисел известна теорема о том, что любое действительное число можно сколь угодно точно приблизить рациональными числами. Заменим веса
на рациональные числа так, чтобы выполнялись следующие неравенства:
.
Из этих неравенств следует, что при использовании весов
персептрон будет работать с теми же результатами, что и первоначальный персептрон. Действительно, если правильным ответом примера является 0, имеем
.
Подставив новые веса, получим:
Откуда следует необходимое неравенство
Аналогично, в случае правильного ответа равного 1, имеем
, откуда, подставив новые веса и порог, получим:
Отсюда следует выполнение неравенства
Неравенства (2) и (3) доказывают возможность замены всех весов и порога любого персептрона рациональными числами. Очевидно также, что при умножении всех весов и порога на одно и то же ненулевое число персептрон не изменится. Поскольку любое рациональное число можно представить в виде отношения целого числа к натуральному числу, получим
где
— целые числа. Обозначим через
произведение всех знаменателей:
. Умножим все веса и порог на
. Получим веса целочисленные
. Из (2), (3) и (4) получаем
что и завершает доказательство теоремы.
Поскольку из доказанной теоремы следует, что веса персептрона являются целыми числами, то вопрос о выборе шага при применении правил обучения решается просто: веса и порог следует увеличивать (уменьшать) на единицу.
Двуслойность персептрона
Как уже упоминалось в начале лекции, алгоритм обучения персептрона возможно использовать и для многослойных персептронов. Однако теоремы о сходимости и зацикливании персептрона, приведенные выше, верны только при обучении однослойного персептрона — или многослойного персептрона при условии, что обучаются только веса персептрона, стоящего в последнем слое сети. В случае произвольного многослойного персептрона они не работают. Следующий пример демонстрирует основную проблему, возникающую при обучении многослойных персептронов.
Пусть веса всех слоев персептрона в ходе обучения сформировались так, что все примеры обучающего множества, кроме первого, решаются правильно. При этом правильным ответом первого примера является 1. Все входные сигналы персептрона последнего слоя равны нулю. В этом случае первое правило не дает результата, поскольку все нейроны предпоследнего слоя не активны. Существует множество способов решать эту проблему. Однако все эти методы не являются регулярными и не гарантируют сходимость многослойного персептрона к решению, даже при условии, что такое решение существует.
В действительности, проблема настройки (обучения) многослойного персептрона решается следующей теоремой.
Теорема о двуслойности персептрона. Любой многослойный персептрон может быть представлен в виде двуслойного персептрона с необучаемыми весами первого слоя.
Для доказательства этой теоремы потребуется одна теорема из математической логики.
Теорема о дизъюнктивной нормальной форме. Любая булева функция булевых аргументов может быть представлена в виде дизъюнкции конъюнкций элементарных высказываний и отрицаний элементарных высказываний:
Напомним некоторые свойства дизъюнктивной нормальной формы.
Свойство 1. В каждый конъюнктивный член (слагаемое) входят все элементарные высказывания либо в виде самого высказывания, либо в виде его отрицания.
Свойство 2. При любых значениях элементарных высказываний в дизъюнктивной нормальной форме может быть истинным не более одного конъюнктивного члена (слагаемого).
Доказательство теоремы о двуслойности персептрона. Из теоремы о дизъюнктивной нормальной форме следует, что любой многослойный персептрон может быть представлен в следующем виде:
В силу второго свойства дизъюнктивной нормальной формы, равенство (5) можно переписать в виде
Переведем в арифметическую форму все слагаемые в выражении (6). Конъюнкцию заменяем на умножение, а отрицание на разность:
. Произведя эту замену и приведя подобные члены, получим:
где
— множество индексов сомножителей в
-м слагаемом,
— число, указывающее, сколько раз такое слагаемое встретилось в выражении (6) после замены и раскрытия скобок (число подобных слагаемых).
Заменим
-е слагаемое в формуле (7) персептроном следующего вида:
Подставив выражение (8) в формулу (7), получим равенство (1), то есть произвольный многослойный персептрон представлен в виде (1) с целочисленными коэффициентами. В качестве персептронов первого слоя используются персептроны вида (8) с необучаемыми весами. Теорема доказана.
Подводя итоги данной лекции, следует отметить следующие основные свойства персептронов:
- Любой персептрон может содержать один или два слоя. В случае двухслойного персептрона веса первого слоя не обучаются.
- Веса любого персептрона можно заменить на целочисленные.
- При обучении после конечного числа итераций возможны два исхода: персептрон обучится или вектор весов персептрона будет повторяться (персептрон зациклится).
Знание этих свойств позволяет избежать "усовершенствований" типа модификации скорости обучения и других, столь же "эффективных" модернизаций.
Обучение персептрона
Способность искусственных нейронных сетей к обучению является их наиболее интригующим свойством. Подобно биологическим системам, которые они моделируют, эти нейронные сети сами совершенствуют себя в результате попыток создать лучшую модель поведения.
Используя критерий линейной разделимости, можно решить, способна ли однослойная нейронная сеть реализовывать требуемую функцию. Даже в том случае, когда ответ положительный, это принесет мало пользы, если у нас нет способа найти нужные значения для весов и порогов. Чтобы сеть представляла практическую ценность, нужен систематический метод (алгоритм) для вычисления этих значений. Ф.Розенблатт создал такой метод в своем алгоритме обучения персептрона и доказал: персептрон может быть обучен всему, что он может реализовывать.
Обучение может быть с учителем или без него. Для обучения с учителем нужен "внешний" учитель, который оценивал бы поведение системы и управлял ее последующими модификациями. При обучении без учителя, которое будет рассмотрено на последующих лекциях, сеть путем самоорганизации делает требуемые изменения. Обучение персептрона является обучением с учителем.
Алгоритм обучения персептрона может быть реализован на цифровом компьютере или другом электронном устройстве, и сеть становится в определенном смысле самоподстраивающейся. По этой причине процедуру подстройки весов обычно называют "обучением" и говорят, что сеть "обучается". Доказательство Розенблатта стало основной вехой и дало мощный импульс исследованиям в этой области. Сегодня в той или иной форме элементы алгоритма обучения персептрона встречаются во многих сетевых парадигмах.
Трудности с алгоритмом обучения персептрона
Иногда бывает сложно определить, выполнено ли условие разделимости для конкретного обучающего множества. Кроме того, во многих встречающихся на практике ситуациях входы часто меняются во времени и могут быть разделимы в один момент времени и неразделимы - в другой. В доказательстве алгоритма обучения персептрона ничего не говорится также о том, сколько шагов требуется для обучения сети. Мало утешительного знать, что обучение закончится за конечное число шагов, если необходимое для этого время сравнимо с геологической эпохой. Кроме того, не доказано, что персептронный алгоритм обучения более быстр по сравнению с простым перебором всех возможных значений весов, и в некоторых случаях этот примитивный подход может оказаться лучше.
На эти вопросы никогда не находилось удовлетворительного ответа, они относятся к природе обучающего материала. В различной форме они возникнут на последующих лекциях, где рассматриваются другие сетевые парадигмы. Ответы для современных сетей, как правило, не более удовлетворительны, чем для персептрона. Эти проблемы являются важной областью современных исследований.
Введение в процедуру обратного распространения
Дальнейшие алгоритмические разработки
Многими исследователями были предложены методы улучшения и обобщения описанного выше основного алгоритма обратного распространения. Литература в этой области слишком обширна, чтобы ее можно было здесь охватить. Кроме того, сейчас еще слишком рано давать окончательные оценки. Некоторые из этих подходов могут оказаться действительно фундаментальными, другие же со временем исчезнут. Перечислим некоторые из наиболее многообещающих разработок.
Метод ускорения сходимости алгоритма обратного распространения. Названный обратным распространением второго порядка, он использует вторые производные для более точной оценки требуемой коррекции весов. Показано, что этот алгоритм оптимален в том смысле, что невозможно улучшить оценку, даже используя производные более высокого порядка. Метод требует дополнительных вычислений по сравнению с обратным распространением первого порядка, и необходимы дальнейшие эксперименты для доказательства оправданности этих затрат.
Метод улучшения характеристик обучения сетей обратного распространения. Указывается, что общепринятый от 0 до 1 динамический диапазон входов и выходов скрытых нейронов неоптимален. Так как величина коррекции веса
пропорциональна выходному уровню нейрона, порождающего
, то нулевой уровень ведет к тому, что вес не меняется. При двоичных входных векторах половина входов в среднем будет равна нулю, и веса, с которыми они связаны, не будут обучаться! Решение состоит в приведении входов к значениям
и добавлении смещения к сжимающей функции, чтобы она также принимала значения
. Новая сжимающая функция выглядит следующим образом:
С помощью таких простых средств время сходимости сокращается в среднем от 30 до 50%. Это один из примеров практической модификации, существенно улучшающей характеристику алгоритма.
Методика обратного распространения применима и к сетям с обратными связями, т. е. к таким сетям, у которых выходы подаются через обратную связь на входы. Как показано, обучение в подобных системах может быть очень быстрым и критерии устойчивости легко удовлетворяются.
Обучающий алгоритм обратного распространения
Сетевые конфигурации:
Нейрон. На рис. 4.1 показан нейрон, используемый в качестве основного строительного блока в сетях обратного распространения. Подается множество входов, идущих либо извне, либо от предшествующего слоя. Каждый из них умножается на вес, и произведения суммируются:
Рис. 4.1. Эта сумма, обозначаемая
, должна быть вычислена для каждого нейрона сети. После того, как величина
вычислена, она модифицируется с помощью активационной функции, и получается сигнал OUT. Для алгоритмов обратного распространения обычно используется функция
Как показывает уравнение (1), эта функция, называемая
сигмоидом, весьма удобна, так как имеет простую производную, что используется при реализации алгоритма обратного распространения:
Сигмоид, который иногда называется также
логистической или
сжимающей функцией, сужает диапазон изменения
так, что значение
лежит между нулем и единицей. Как указывалось выше, многослойные нейронные сети обладают большей представляющей мощностью, чем однослойные, лишь в случае присутствия нелинейности. Сжимающая функция обеспечивает требуемую нелинейность.
Сетевые конфигурации:
Нейрон. На рис. 4.1 показан нейрон, используемый в качестве основного строительного блока в сетях обратного распространения. Подается множество входов, идущих либо извне, либо от предшествующего слоя. Каждый из них умножается на вес, и произведения суммируются:
Рис. 4.1. Эта сумма, обозначаемая
, должна быть вычислена для каждого нейрона сети. После того, как величина
вычислена, она модифицируется с помощью активационной функции, и получается сигнал OUT. Для алгоритмов обратного распространения обычно используется функция
Как показывает уравнение (1), эта функция, называемая
сигмоидом, весьма удобна, так как имеет простую производную, что используется при реализации алгоритма обратного распространения:
Сигмоид, который иногда называется также
логистической или
сжимающей функцией, сужает диапазон изменения
так, что значение
лежит между нулем и единицей. Как указывалось выше, многослойные нейронные сети обладают большей представляющей мощностью, чем однослойные, лишь в случае присутствия нелинейности. Сжимающая функция обеспечивает требуемую нелинейность.
В действительности имеется множество функций, которые могли бы быть использованы. Для алгоритма обратного распространения требуется только, чтобы функция была всюду дифференцируема. Сигмоид удовлетворяет этому требованию. Его дополнительное преимущество состоит в автоматическом контроле усиления. Для слабых сигналов (величина NET близка к нулю) кривая вход-выход имеет сильный наклон, дающий большое усиление. Когда величина сигнала становится больше, усиление падает. Таким образом, большие сигналы воспринимаются сетью без насыщения, а слабые сигналы проходят по сети без чрезмерного ослабления. Многослойная сеть. Рассмотрим иерархическую сетевую структуру, в которой связанные между собой нейроны объединены в несколько слоев (см. рис. 4.2). На возможность построения таких архитектур указал еще Ф.Розенблатт, однако им не была решена проблема обучения. Межнейронные синаптические связи сети устроены таким образом, что каждый нейрон на данном уровне иерархии принимает и обрабатывает сигналы от каждого нейрона более низкого уровня.
Таким образом, в данной сети имеется выделенное направление распространения нейроимпульсов — от входного слоя через один (или несколько) скрытых слоев к выходному слою нейронов. Нейросеть такой топологии мы будем называть
обобщенным многослойным персептроном или, если это не будет вызывать недоразумений, просто персептроном.
Рис. 4.2. Персептрон представляет собой сеть, состоящую из нескольких последовательно соединенных слоев нейронов. На низшем уровне иерархии находится
входной слой сенсорных элементов, задачей которого является только прием и распространение по сети входной информации. Далее имеются один или, реже, несколько
скрытых слоев. Каждый нейрон на скрытом слое имеет несколько входов, соединенных с выходами нейронов предыдущего слоя или непосредственно со входными сенсорами
, и один выход. Выходы нейронов последнего,
выходного, слоя описывают результат классификации
. Особенности работы персептрона состоят в следующем. Каждый нейрон суммирует поступающие к нему сигналы от нейронов предыдущего уровня иерархии с весами, определяемыми состояниями синапсов, и формирует ответный сигнал (переходит в возбужденное состояние), если полученная сумма выше порогового значения. Персептрон переводит входной образ, определяющий степени возбуждения нейронов самого нижнего уровня иерархии, в выходной образ, определяемый нейронами самого верхнего уровня. Число последних обычно сравнительно невелико. Состояние возбуждения нейрона на верхнем уровне говорит о принадлежности входного образа к той или иной категории.
Традиционно рассматривается аналоговая логика, при которой допустимые состояния синаптических связей определяются произвольными действительными числами, а степени активности нейронов - действительными числами между 0 и 1. Иногда исследуются также модели с дискретной арифметикой, в которой синапс характеризуется двумя булевыми переменными: активностью (0 или 1) и полярностью (
или
). Состояния нейронов могут при этом описываться одной булевой переменной. Данный дискретный подход делает конфигурационное пространство состояний нейронной сети конечным (не говоря уже о преимуществах при аппаратной реализации).
Мы рассмотрим классический вариант многослойной сети с аналоговыми синапсами и сигмоидальной передаточной функцией нейронов, определяемой формулой (1).
В литературе нет единого мнения относительно того, что именно считать числом слоев в таких сетях. Одни авторы используют число слоев нейронов (включая несуммирующий входной слой), другие — число слоев весов. Так как последнее определение - функционально описательное, то оно будет использовано и нами. Согласно этому определению, сеть на рис. 4.2
рассматривается как двухслойная. Нейрон объединен с множеством весов, присоединенных к его входу. Таким образом, веса первого слоя оканчиваются на нейронах первого слоя. Вход распределительного слоя считается нулевым слоем.
Процедура обратного распространения применима к сетям с любым числом слоев. Однако для того, чтобы продемонстрировать алгоритм, достаточно двух слоев. Сейчас будут рассматриваться лишь сети прямого действия, хотя обратное распространение применимо и к сетям с обратными связями. Эти случаи будут рассмотрены в данной главе позднее.
Обзор обучения. Целью обучения сети является такая подстройка ее весов, чтобы приложение некоторого множества входов приводило к требуемому множеству выходов. Для краткости эти множества входов и выходов будут называться
векторами. При обучении предполагается, что для каждого входного вектора существует парный ему целевой вектор, задающий требуемый выход. Вместе они называются
обучающей парой. Как правило, сеть обучается на многих парах. Например, входная часть обучающей пары может состоять из набора нулей и единиц, представляющего двоичный образ некоторой буквы алфавита. На рис. 4.3 показано множество входов для буквы "А", нанесенной на сетке. Если через квадрат проходит линия, то соответствующий нейронный вход равен единице, в противном случае он равен нулю. Выход может быть числом, представляющим букву "А", или другим набором из нулей и единиц, который может быть использован для получения выходного образа.
При необходимости распознавать с помощью сети все буквы латинского алфавита, потребовалось бы 26 обучающих пар. Такая группа обучающих пар называется
обучающим множеством.
Рис. 4.3. Перед началом обучения всем весам должны быть присвоены небольшие начальные значения, выбранные случайным образом. Это гарантирует, что в сети не произойдет насыщения большими значениями весов, и предотвращает ряд других некорректных случаев. Например, если всем весам придать одинаковые начальные значения, а для требуемого функционирования нужны неравные значения, то сеть не сможет обучиться.
Обучение сети обратного распространения требует выполнения следующих операций:
- Выбрать очередную обучающую пару из обучающего множества; подать входной вектор на вход сети.
- Вычислить выход сети.
- Вычислить разность между выходом сети и требуемым выходом (целевым вектором обучающей пары).
- Подкорректировать веса сети так, чтобы минимизировать ошибку.
- Повторять шаги с 1 по 4 для каждого вектора обучающего множества до тех пор, пока ошибка на всем множестве не достигнет приемлемого уровня.
Операции, выполняемые шагами 1 и 2, сходны с теми, которые выполняются при функционировании уже обученной сети, — подается входной вектор и вычисляется получающийся выход. Вычисления выполняются послойно. На рис. 4.2 сначала вычисляются выходы нейронов слоя
, затем они используются в качестве входов слоя
, после чего вычисляются выходы нейронов слоя
, которые и образуют выходной вектор сети.
На шаге 3 каждый из выходов сети, которые на рис. 4.2 обозначены
, вычитается из соответствующей компоненты целевого вектора, чтобы получить значение ошибки. Эта ошибка используется на шаге 4 для коррекции весов сети, причем знак и величина изменений весов определяются алгоритмом обучения (см. ниже).
После достаточного числа повторений этих четырех шагов разность между действительными и целевыми выходами должна уменьшиться до приемлемой величины: при этом говорят, что сеть обучилась. Теперь сеть используется для распознавания, и веса не изменяются.
На шаги 1 и 2 можно смотреть как на "проход вперед", так как сигнал распространяется по сети от входа к выходу. Шаги 3, 4 составляют "обратный проход", здесь вычисляемый сигнал ошибки распространяется обратно по сети и используется для подстройки весов. Эти два прохода теперь будут детализированы и записаны как математические выражения.
Проход вперед. Шаги 1 и 2 могут быть выражены в векторной форме следующим образом: подается входной вектор
и на выходе получается вектор
. Векторная пара вход — цель
и
берется из обучающего множества. Вычисления проводятся над вектором
, чтобы получить выходной вектор
.
Как мы видели, вычисления в многослойных сетях выполняются слой за слоем, начиная с ближайшего к входу. Величина
каждого нейрона первого слоя вычисляется как взвешенная сумма входов нейрона. Затем активационная функция
"сжимает"
и дает величину
для каждого нейрона в этом слое. Когда множество выходов слоя получено, оно является входным множеством для следующего слоя. Процесс повторяется слой за слоем, пока не будет получено заключительное множество выходов сети.
Этот процесс может быть выражен в сжатой форме с помощью векторной нотации. Веса между нейронами будем рассматривать как матрицу
. Например, вес от нейрона 8 в слое 2 к нейрону 5 слоя 3 обозначается
. Тогда
-вектор слоя
может быть выражен не как сумма произведений, а как произведение
и
. В векторном обозначении
. Покомпонентным применением функции
к
-вектору
получаем выходной вектор
. Таким образом, для данного слоя вычислительный процесс описывается следующим выражением:
Выходной вектор одного слоя является входным вектором для следующего, поэтому вычисление выходов последнего слоя требует применения уравнения (3) к каждому слою от входа сети к ее выходу.
Обратный проход.
Подстройка весов выходного слоя. Так как для каждого нейрона выходного слоя задано целевое значение, то подстройка весов легко осуществляется с использованием дельта-правила. Внутренние слои называют "скрытыми слоями", для их выходов не имеется целевых значений для сравнения, поэтому обучение усложняется.
Рассмотрим процесс обучения для одного веса от нейрона
в скрытом слое
к нейрону
в выходном слое
. Выход нейрона слоя
, вычитаемый из целевого значения (Target), дает сигнал ошибки. Он умножается на производную сжимающей функции
, вычисленную для этого нейрона слоя
, давая, таким образом, величину
.
Затем
умножается на величину
нейрона
, из которого выходит рассматриваемый вес. Это произведение, в свою очередь, умножается на коэффициент скорости обучения
(обычно от 0,01 до 1,0), и результат прибавляется к весу. Такая же процедура выполняется для каждого веса от нейрона скрытого слоя к нейрону в выходном слое.
Следующие уравнения иллюстрируют это вычисление:
где
— величина веса от нейрона
в скрытом слое
к нейрону
в выходном слое на шаге
(до коррекции); отметим, что индекс
относится к слою, в котором заканчивается данный вес (т. е. к слою, с которым он объединен);
— величина веса на шаге
(после коррекции);
— величина
для нейрона
, в выходном слое
;
— величина
для нейрона
в скрытом слое
.
Подстройка весов скрытого слоя. Рассмотрим один нейрон в скрытом слое, предшествующем выходному слою. При проходе вперед этот нейрон передает свой выходной сигнал нейронам в выходном слое через соединяющие их веса. Во время обучения эти веса функционируют в обратном порядке, пропуская величину
от выходного слоя назад к скрытому слою. Каждый из этих весов умножается на величину
нейрона, к которому он присоединен в выходном слое. Величина
, необходимая для нейрона скрытого слоя, получается суммированием всех таких произведений и умножением на производную сжимающей функции (см. рис. 4.4):
Когда значение
получено, веса, питающие первый скрытый уровень, могут быть подкорректированы с помощью уравнений (5) и (6), где индексы модифицируются в соответствии со слоем.
Рис. 4.4. Для каждого нейрона в данном скрытом слое должно быть вычислено
и подстроены все веса, ассоциированные с этим слоем. Этот процесс повторяется слой за слоем по направлению к входу, пока все веса не будут подкорректированы.
С помощью векторных обозначений операция обратного распространения ошибки может быть записана значительно компактнее. Обозначим множество величин
выходного слоя через
и множество весов выходного слоя как массив
. Чтобы получить
,
-вектор выходного слоя, достаточно следующих двух операций:
- Умножить о-вектор выходного слоя на транспонированную матрицу весов , соединяющую скрытый уровень с выходным уровнем.
- Умножить каждую компоненту полученного произведения на производную сжимающей функции соответствующего нейрона в скрытом слое.
Добавление нейронного смещения. Во многих случаях желательно наделять каждый нейрон обучаемым смещением. Это позволяет сдвигать начало отсчета логистической функции, давая эффект, аналогичный подстройке порога персептронного нейрона, и приводит к ускорению процесса обучения. Такая возможность может быть легко введена в обучающий алгоритм с помощью добавляемого к каждому нейрону веса, который присоединен к
. Этот вес обучается так же, как и все остальные веса, за исключением того, что подаваемый на него сигнал всегда равен
, а не выходу нейрона предыдущего слоя.
Импульс. Существует метод ускорения обучения для алгоритма обратного распространения, увеличивающий также устойчивость процесса. Этот метод, названный импульсом, заключается в добавлении к коррекции веса члена, пропорционального величине предыдущего изменения веса. Как только происходит коррекция, она "запоминается" и служит для модификации всех последующих коррекций. Уравнения коррекции модифицируются следующим образом:
где
— коэффициент импульса, который обычно устанавливается около 0,9.
Используя метод импульса, сеть стремится идти по дну "узких оврагов" поверхности ошибки (если таковые имеются), а не двигаться "от склона к склону". Этот метод, по-видимому, хорошо работает на некоторых задачах, но дает слабый или даже отрицательный эффект на других.
Существует сходный метод, основанный на экспоненциальном сглаживании, который может иметь преимущество в ряде приложений.
Затем вычисляется изменение веса
где
— коэффициент сглаживания, варьируемый в диапазоне от 0,0 до 1,0. Если
равен 1,0, то новая коррекция игнорируется и повторяется предыдущая. В области между 0 и 1 коррекция веса сглаживается величиной, пропорциональной
. По-прежнему,
является коэффициентом скорости обучения, служащим для управления средней величиной изменения веса.
Применение
Обратное распространение было применено в широкой сфере прикладных исследований. Некоторые из них описываются здесь, чтобы продемонстрировать богатые возможности этого метода.
Фирма NEC в Японии объявила недавно, что обратное распространение было ею использовано для визуального распознавания букв, причем точность превысила 99%. Это улучшение было достигнуто с помощью комбинации обычных алгоритмов с сетью обратного распространения, обеспечивающей дополнительную проверку.
Достигнут впечатляющий успех с Net-Talk системой, которая превращает печатный английский текст в высококачественную речь. Магнитофонная запись процесса обучения сильно напоминает звуки голоса ребенка на разных этапах обучения речи.
Обратное распространение также использовалось в машинном распознавании рукописных английских слов. Буквы, нормализованные по размеру, наносились на сетку, и брались проекции линий, пересекающих квадраты сетки. Эти проекции служили затем входами для сети обратного распространения. Сообщалось о точности 99,7% при использовании словарного фильтра.
Обратное распространение успешно применяется при сжатии изображений, когда образы представляются одним битом на пиксель, что явилось восьмикратным улучшением по сравнению с входными данными.
Обратное распространение было применено в широкой сфере прикладных исследований. Некоторые из них описываются здесь, чтобы продемонстрировать богатые возможности этого метода.
Фирма NEC в Японии объявила недавно, что обратное распространение было ею использовано для визуального распознавания букв, причем точность превысила 99%. Это улучшение было достигнуто с помощью комбинации обычных алгоритмов с сетью обратного распространения, обеспечивающей дополнительную проверку.
Достигнут впечатляющий успех с Net-Talk системой, которая превращает печатный английский текст в высококачественную речь. Магнитофонная запись процесса обучения сильно напоминает звуки голоса ребенка на разных этапах обучения речи.
Обратное распространение также использовалось в машинном распознавании рукописных английских слов. Буквы, нормализованные по размеру, наносились на сетку, и брались проекции линий, пересекающих квадраты сетки. Эти проекции служили затем входами для сети обратного распространения. Сообщалось о точности 99,7% при использовании словарного фильтра.
Обратное распространение успешно применяется при сжатии изображений, когда образы представляются одним битом на пиксель, что явилось восьмикратным улучшением по сравнению с входными данными.
|
<
Введение в процедуру обратного распространения
Среди различных структур нейронных сетей (НС) одной из наиболее известных является многослойная структура, в которой каждый нейрон произвольного слоя связан со всеми аксонами нейронов предыдущего слоя или, в случае первого слоя, со всеми входами НС. Такие НС называются полносвязными. Когда в сети только один слой, алгоритм ее обучения с учителем довольно очевиден, так как правильные выходные состояния нейронов единственного слоя заведомо известны и подстройка синаптических связей идет в направлении, минимизирующем ошибку на выходе сети. По этому принципу строится, например, алгоритм обучения однослойного персептрона. В многослойных же сетях оптимальные выходные значения нейронов всех слоев, кроме последнего, как правило, не известны, и двух- или более слойный персептрон уже невозможно обучить, руководствуясь только величинами ошибок на выходах НС.
Один из вариантов решения этой проблемы — разработка наборов выходных сигналов, соответствующих входным, для каждого слоя НС, что, конечно, является очень трудоемкой операцией и не всегда осуществимо. Второй вариант — динамическая подстройка весовых коэффициентов синапсов, в ходе которой выбираются, как правило, наиболее слабые связи и изменяются на малую величину в ту или иную сторону, а сохраняются только те изменения, которые повлекли уменьшение ошибки на выходе всей сети. Очевидно, что данный "метод тыка", несмотря на свою кажущуюся простоту, требует громоздких рутинных вычислений. И, наконец, третий, более приемлемый вариант — распространение сигналов ошибки от выходов НС к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы. Этот алгоритм обучения НС получил название процедуры обратного распространения. Разработка алгоритма обратного распространения сыграла важную роль в возрождении интереса к искусственным нейронным сетям. Обратное распространение — это систематический метод для обучения многослойных искусственных нейронных сетей. Он имеет солидное математическое обоснование. Несмотря на некоторые ограничения, процедура обратного распространения сильно расширила область проблем, в которых могут быть использованы искусственные нейронные сети, и убедительно продемонстрировала богатые возможности этой методики.
Среди различных структур нейронных сетей (НС) одной из наиболее известных является многослойная структура, в которой каждый нейрон произвольного слоя связан со всеми аксонами нейронов предыдущего слоя или, в случае первого слоя, со всеми входами НС. Такие НС называются полносвязными. Когда в сети только один слой, алгоритм ее обучения с учителем довольно очевиден, так как правильные выходные состояния нейронов единственного слоя заведомо известны и подстройка синаптических связей идет в направлении, минимизирующем ошибку на выходе сети. По этому принципу строится, например, алгоритм обучения однослойного персептрона. В многослойных же сетях оптимальные выходные значения нейронов всех слоев, кроме последнего, как правило, не известны, и двух- или более слойный персептрон уже невозможно обучить, руководствуясь только величинами ошибок на выходах НС.
Один из вариантов решения этой проблемы — разработка наборов выходных сигналов, соответствующих входным, для каждого слоя НС, что, конечно, является очень трудоемкой операцией и не всегда осуществимо. Второй вариант — динамическая подстройка весовых коэффициентов синапсов, в ходе которой выбираются, как правило, наиболее слабые связи и изменяются на малую величину в ту или иную сторону, а сохраняются только те изменения, которые повлекли уменьшение ошибки на выходе всей сети. Очевидно, что данный "метод тыка", несмотря на свою кажущуюся простоту, требует громоздких рутинных вычислений. И, наконец, третий, более приемлемый вариант — распространение сигналов ошибки от выходов НС к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы. Этот алгоритм обучения НС получил название процедуры обратного распространения. Разработка алгоритма обратного распространения сыграла важную роль в возрождении интереса к искусственным нейронным сетям. Обратное распространение — это систематический метод для обучения многослойных искусственных нейронных сетей. Он имеет солидное математическое обоснование. Несмотря на некоторые ограничения, процедура обратного распространения сильно расширила область проблем, в которых могут быть использованы искусственные нейронные сети, и убедительно продемонстрировала богатые возможности этой методики.
Переобучение и обобщение
Как обучается многослойный персептрон
Мы сможем лучше понять, как устроен и как обучается многослойный персептрон, если выясним, какие функции он способен моделировать. Вспомним, что уровнем активации элемента называется взвешенная сумма его входов с добавленным к ней пороговым значением. Таким образом, уровень активации представляет собой простую линейную функцию входов. Эта активация затем преобразуется с помощью сигмоидной (имеющей S- образную форму) кривой.
Комбинация линейной функции нескольких переменных и скалярной сигмовидной функции приводит к характерному профилю "сигмовидного склона", который выдает элемент первого промежуточного слоя. На рис. 5.1 соответствующая поверхность изображена в виде функции двух входных переменных. Элемент с большим числом входов выдает многомерный аналог такой поверхности. При изменении весов и порогов меняется и поверхность отклика; может меняться как ориентация всей поверхности, так и крутизна склона — большим значениям весов соответствует более крутой склон. Так, например, если увеличить все веса в два раза, то ориентация не изменится, а наклон будет более крутым. В многослойной сети подобные функции отклика комбинируются друг с другом с помощью последовательного взятия их линейных комбинаций и применения нелинейных функций активации. На рис. 5.2 изображена типичная поверхность отклика для сети с одним промежуточным слоем, состоящим из двух элементов, и одним выходным элементом, для классической задачи "исключающего или". Две разных сигмоидных поверхности объединены в одну поверхность, имеющую форму буквы "U".

Рис. 5.1. Рис. 5.2. Перед началом обучения сети весам и порогам случайным образом присваиваются небольшие по величине начальные значения. Тем самым, отклики отдельных элементов сети имеют малый наклон и ориентированы хаотично — фактически они не связаны друг с другом. По мере того, как происходит обучение, поверхности отклика элементов сети вращаются и сдвигаются в нужное положение, а значения весов увеличиваются, поскольку они должны моделировать отдельные участки целевой поверхности отклика.
В задачах классификации выходной элемент должен выдавать сильный сигнал в случае, если данное наблюдение принадлежит к интересующему нас классу, и слабый — в противоположном случае. Иначе говоря, этот элемент должен стремиться смоделировать функцию, равную единице в области пространства объектов, где располагаются объекты из нужного класса, и равную нулю вне этой области. Такая конструкция известна как
дискриминантная функция в задачах распознавания. "Идеальная" дискриминантная функция должна иметь плоскую структуру: точки соответствующей поверхности будут располагаться либо на нулевом уровне, либо на высоте "единица".
Если сеть не содержит скрытых элементов, то на выходе она может моделировать только одинарный "сигмовидный склон": точки, находящиеся по одну его сторону, располагаются низко, по другую — высоко. При этом всегда будет существовать область между ними (на склоне), где высота принимает промежуточные значения, но по мере увеличения весов эта область будет сужаться.
Такой сигмовидный склон фактически работает как линейная дискриминантная функция. Точки, лежащие по одну сторону склона, классифицируются как принадлежащие нужному классу, а лежащие по другую сторону — как не принадлежащие. Следовательно, сеть без скрытых слоев может служить классификатором только в линейно-отделимых задачах: когда можно провести линию (или, в случае более высоких размерностей, гиперплоскость), разделяющую точки в пространстве признаков.
Сеть, содержащая один промежуточный слой, строит несколько сигмоидных склонов, — по одному для каждого скрытого элемента, — и затем выходной элемент комбинирует из них "возвышенность". Эта возвышенность получается выпуклой, т.е. не содержащей впадин. При этом в некоторых направлениях она может уходить на бесконечность (как длинный полуостров). Подобная сеть может моделировать большинство реальных задач классификации.
Сеть с двумя промежуточными слоями строит комбинацию из нескольких таких возвышенностей.
Их будет столько, сколько элементов во втором слое, и у каждой из них будет столько сторон, сколько элементов было в первом скрытом слое. После несложного размышления делаем вывод, что, используя достаточное число таких возвышенностей, можно воспроизвести поверхность любой формы — в том числе с впадинами и вогнутостями.
Как следствие наших рассмотрений мы получаем, что, теоретически, для моделирования любой задачи достаточно многослойного персептрона с двумя промежуточными слоями (в точной формулировке этот результат известен как теорема Колмогорова). При этом может оказаться, что для решения некоторой конкретной задачи будет более простой и удобной сеть с еще большим числом слоев. Однако для решения большинства практических задач достаточно всего одного промежуточного слоя, два слоя применяются как резерв в особых случаях, а сети с тремя слоями практически не применяются.
В задачах классификации очень важно понять, как следует интерпретировать те точки, которые попали на склон или лежат близко от него. Стандартный подход заключается в том, чтобы для пороговых значений установить некоторые доверительные пределы (принятия или отвержения), которые должны быть достигнуты, чтобы данный элемент считался "принявшим решение". Например, если установлены пороги принятия/отвержения 0,95/0.05, то при уровне выходного сигнала выше 0,95 элемент считается активным, при уровне ниже 0,05 — неактивным, а в промежутке — "неопределенным". Имеется и более тонкий (и, вероятно, более полезный) способ интерпретировать уровни выходного сигнала: считать их вероятностями. В этом случае сеть выдает несколько большую информацию, чем просто "да/нет": она сообщает нам, насколько (в некотором формальном смысле) мы можем доверять ее решению. При этом, однако, вероятностная интерпретация обоснована только в том случае, если выполняются определенные предположения о распределении исходных данных (конкретно, что данные являются выборкой из некоторого распределения, принадлежащего к семейству экспоненциальных распределений).Здесь, как и ранее, может быть принято решение по классификации, но, кроме того, вероятностная интерпретация позволяет ввести концепцию "решения с минимальными затратами".
Локальные минимумы
В прошлой лекции было описано, как с помощью алгоритма обратного распространения осуществляется градиентный спуск по поверхности ошибок. Короче говоря, происходит следующее: в данной точке поверхности находится направление скорейшего спуска, затем делается прыжок вниз на расстояние, пропорциональное коэффициенту скорости обучения и крутизне склона, при этом учитывается инерция, то есть стремление сохранить прежнее направление движения. Можно сказать, что метод ведет себя как слепой кенгуру — каждый раз прыгает в направлении, которое кажется ему наилучшим. На самом деле, шаг спуска вычисляется отдельно для всех обучающих наблюдений, взятых в случайном порядке, но в результате получается достаточно хорошая аппроксимация спуска по совокупной поверхности ошибок. Существуют и другие алгоритмы обучения, однако все они используют ту или иную стратегию скорейшего продвижения к точке минимума.
Обратное распространение использует разновидность градиентного спуска, т. е. осуществляет спуск вниз по поверхности ошибки, непрерывно подстраивая веса в направлении к минимуму. Поверхность ошибки сложной сети сильно изрезана и состоит из холмов, долин, складок и оврагов в пространстве высокой размерности. Сеть может попасть в локальный минимум (неглубокую долину), когда рядом имеется гораздо более глубокий минимум. В точке локального минимума все направления ведут вверх и сеть неспособна из него выбраться. Статистические методы обучения могут помочь избежать этой ловушки, но они медленны. П.Д.Вассерман предложил метод, объединяющий статистические методы машины Коши с градиентным спуском обратного распространения и приводящий к системе, которая находит глобальный минимум, сохраняя высокую скорость обратного распространения. Это будет обсуждаться в следующих лекциях.
Отбор данных
На всех предыдущих этапах мы постоянно опирались на одно предположение, а именно: обучающее, контрольное и тестовое множества должны быть репрезентативными (представительными) с точки зрения существа задачи (более того, эти множества должны быть репрезентативны каждое в отдельности). Известное изречение программистов "garbage in, garbage out" ("мусор на входе — мусор на выходе") нигде не справедливо в такой степени, как при нейросетевом моделировании. Если обучающие данные не репрезентативны, то модель, как минимум, будет не очень хорошей, а в худшем случае — бесполезной. Имеет смысл перечислить ряд причин, которые ухудшают качество обучающего множества.
Будущее непохоже на прошлое. Обычно в качестве обучающих берутся исторические данные. Если обстоятельства изменились, то закономерности, имевшие место в прошлом, могут больше не действовать.
Следует учесть все возможности. Нейронная сеть может обучаться только на тех данных, которыми она располагает. Предположим, что лица с годовым доходом более $100000 имеют высокий кредитный риск, а обучающее множество не содержало лиц с доходом более $40000 в год. Тогда едва ли можно ожидать от сети правильного решения в совершенно новой для нее ситуации.
Сеть обучается тому, чему проще всего обучиться.
Классическим (возможно, вымышленным) примером является система машинного зрения, предназначенная для автоматического распознавания танков. Сеть обучалась на ста картинках, содержащих изображения танков, и на ста других картинках, где танков не было. Был достигнут стопроцентно "правильный" результат. Но когда на вход сети были поданы новые данные, она безнадежно провалилась. В чем же была причина? Выяснилось, что фотографии с танками были сделаны в пасмурную, дождливую погоду, а фотографии без танков — в солнечный день. Сеть научилась улавливать (очевидную) разницу в общей освещенности. Чтобы сеть могла результативно работать, ее следовало обучать на данных, где присутствовали бы все погодные условия и типы освещения, при которых сеть будут реально использовать, — и это не говоря еще о рельефе местности, угле и дистанции съемки и т.д.
Несбалансированный набор данных. Коль скоро сеть минимизирует общую погрешность, важное значение приобретают пропорции, в которых представлены данные различных типов. Сеть, обученная на 900 хороших и 100 плохих примерах, будет искажать результат в пользу хороших наблюдений, поскольку это позволит алгоритму уменьшить общую погрешность (которая определяется в основном хорошими случаями). Если в реальной популяции хорошие и плохие объекты представлены в другой пропорции, то результаты, выдаваемые сетью, могут оказаться неверными. Хорошим примером служит задача выявления заболеваний. Пусть, например, при обычных обследованиях в среднем 90% человек оказываются здоровыми. Сеть обучается на имеющихся данных, в которых пропорция здоровые/больные равна 90/10. Затем она применяется для диагностики пациентов с определенным жалобами, среди которых это соотношение уже 50/50. В этом случае сеть будет ставить диагноз чересчур осторожно и не распознает заболевание у некоторых больных. Если же, наоборот, сеть обучить на данных "с жалобами", а затем протестировать на "обычных" данных, то она будет выдавать повышенное число неправильных диагнозов о наличии заболевания. В таких ситуациях обучающие данные нужно скорректировать так, чтобы были учтены различия в распределении (например, можно повторять редкие наблюдения или удалить часто встречающиеся), или же видоизменить решения, выдаваемые сетью, посредством
матрицы потерь. Как правило, лучше всего постараться равномерно представить наблюдения различных типов и соответственно этому интерпретировать результаты, которые выдает сеть.
Паралич сети
В процессе обучения сети значения весов могут в результате коррекции стать очень большими величинами. Это может привести к тому, что все или большинство нейронов будут функционировать при очень больших значениях OUT, в области, где производная сжимающей функции очень мала. Так как посылаемая обратно в процессе обучения ошибка пропорциональна этой производной, то процесс обучения может практически замереть. Теоретически эта проблема изучена плохо. Обычно пытаются уменьшать размера шага
, но это увеличивает время обучения. Различные эвристики использовались для предохранения от паралича или для восстановления после него, но пока что они могут рассматриваться лишь как экспериментальные.
Переобучение и обобщение
Одна из наиболее серьезных трудностей алгоритма обратного распространения заключается в том, что таким образом мы минимизируем не ту ошибку, которую на самом деле нужно минимизировать, — ошибку, которую можно ожидать от сети, когда ей будут подаваться совершенно новые наблюдения. Иначе говоря, мы хотели бы, чтобы нейронная сеть обладала способностью
обобщать
результат на новые наблюдения. В действительности, сеть обучается минимизировать ошибку на обучающем множестве, и в отсутствие идеального и бесконечно большого обучающего множества это совсем не то же самое, что минимизировать "настоящую" ошибку на поверхности ошибок в заранее неизвестной модели явления.
Сильнее всего это различие проявляется в проблеме переобучения, или
слишком близкой подгонки. Это явление проще будет продемонстрировать не для нейронной сети, а на примере аппроксимации посредством полиномов, — при этом суть явления абсолютно та же.
Полином (или многочлен) — это выражение, содержащее только константы и целые степени независимой переменной. Графики полиномов могут иметь различную форму, причем чем выше степень многочлена (и, тем самым, чем больше членов в него входит), тем более сложной может быть эта форма. Если у нас есть некоторые данные, мы можем попробовать подогнать к ним полиномиальную кривую (модель) и получить, таким образом, объяснение для имеющейся зависимости. Наши данные могут быть зашумлены, поэтому нельзя считать, что самая лучшая модель задается кривой, которая в точности проходит через все имеющиеся точки. Полином низкого порядка может быть недостаточно гибким средством для аппроксимации данных, в то время как полином высокого порядка может оказаться чересчур гибким и будет точно следовать данным, принимая при этом форму замысловатую и не имеющую никакого отношения к реальной зависимости.
У нейронной сети проблема точно такая же. Сети с большим числом весов моделируют более сложные функции и, следовательно, склонны к переобучению. Сеть же с небольшим числом весов может оказаться недостаточно гибкой для того, чтобы смоделировать имеющуюся зависимость.
Например, сеть без промежуточных слоев моделирует обычную линейную функцию.
Как же выбрать "правильную" степень сложности для сети? Почти всегда более сложная сеть дает меньшую ошибку, но это может свидетельствовать не о хорошем качестве модели, а о переобучении. Выход состоит в том, чтобы использовать механизм контрольной
кросс-проверки. Мы резервируем часть обучающих наблюдений и не используем их в обучении по алгоритму обратного распространения. Вместо этого, по мере работы алгоритма, они используются для независимого контроля результата. В самом начале работы ошибка сети на обучающем и контрольном множестве будет одинаковой (если они существенно отличаются, то, вероятно, разбиение всех наблюдений на два множества было неоднородно). По мере того как сеть обучается, ошибка обучения, естественно, убывает, и, пока обучение уменьшает действительную функцию ошибок, ошибка на контрольном множестве также будет убывать. Если же контрольная ошибка перестала убывать или даже стала расти, значит, сеть начала слишком близко аппроксимировать данные и обучение следует остановить. Это явление чересчур точной аппроксимации в процессе обучения и называется переобучением. Если такое случилось, то обычно советуют уменьшить число скрытых элементов и/или слоев, ибо сеть является слишком мощной для данной задачи. Если же сеть, наоборот, была взята недостаточно богатой для того, чтобы моделировать имеющуюся зависимость, то переобучения, скорее всего, не произойдет и обе ошибки — обучения и проверки — не достигнут достаточного уровня малости.
Описанные проблемы с локальными минимумами и выбором размера сети приводят к тому, что при практической работе с нейронными сетями, как правило, приходится экспериментировать с большим числом различных сетей, порой обучая каждую из них несколько раз (чтобы не быть введенным в заблуждение локальными минимумами) и сравнивая полученные результаты. Главным показателем качества результата является здесь контрольная ошибка. В соответствии с общенаучным принципом, согласно которому при прочих равных следует предпочесть более простую модель, имеет смысл из двух сетей с приблизительно равными ошибками контроля выбрать ту, которая меньше.
Необходимость многократных экспериментов ведет к тому, что контрольное множество начинает играть ключевую роль в выборе модели, то есть становится частью процесса обучения. Тем самым ослабляется его роль как независимого критерия качества модели — при большом числе экспериментов есть риск выбрать "удачную" сеть, дающую хороший результат на контрольном множестве. Для того чтобы придать окончательной модели должную надежность, часто (по крайней мере, когда объем обучающих данных это позволяет) поступают так: резервируют еще одно, тестовое множество наблюдений. Итоговая модель тестируется на данных из этого множества, чтобы убедиться, что результаты, достигнутые на обучающем и контрольном множествах, реальны, а не являются артефактами процесса обучения. Разумеется, для того чтобы соответствовать своей роли, тестовое множество должно быть использовано только один раз: если его использовать повторно для корректировки процесса обучения, то оно фактически превратится в контрольное множество.
Предостережения
Несмотря на многочисленные успешные применения обратного распространения, оно не является панацеей. Больше всего неприятностей доставляет неопределенно долгий процесс обучения. В сложных задачах для обучения сети могут потребоваться дни или даже недели, она может и вообще не обучиться. Длительное время обучения может быть результатом неоптимального выбора длины шага. Неудачи в обучении обычно возникают по двум причинам: паралича сети и попадания в локальный минимум.
Размер шага
Внимательный разбор доказательства сходимости показывает, что коррекции весов предполагаются бесконечно малыми. Ясно, что это неосуществимо на практике, так как ведет к бесконечному времени обучения. Размер шага должен браться конечным, и при определении его приходится полагаться только на опыт. Если размер шага очень мал, то сходимость слишком медленная, если же очень велик, то может возникнуть паралич или постоянная неустойчивость. П.Д.Вассерман описал адаптивный алгоритм выбора шага, автоматически корректирующий размер шага в процессе обучения.
Временная неустойчивость
Если сеть учится распознавать буквы, то нет смысла учить "Б", если при этом забывается "А". Процесс обучения должен быть таким, чтобы сеть обучалась на всем обучающем множестве без пропусков того, что уже выучено. В доказательстве сходимости это условие выполнено, но требуется также, чтобы сети предъявлялись все векторы обучающего множества, прежде чем выполняется коррекция весов. Необходимые изменения весов должны вычисляться на всем множестве, что требует дополнительной памяти; после ряда таких обучающих циклов веса сойдутся к минимальной ошибке. Этот метод может оказаться бесполезным, если сеть находится в постоянно меняющейся внешней среде, так что второй раз один и тот же вектор может уже не повториться. В этом случае процесс обучения может никогда не сойтись, бесцельно блуждая или сильно осциллируя. В этом смысле обратное распространение не похоже на биологические системы. Как будет указано на следующих лекциях, это несоответствие (среди прочих) привело к системе ART, принадлежащей Гроссбергу.
Введение в сети встречного распространения
Модификации алгоритма обучения
Чувство справедливости: чтобы не допустить отсутствие обучения по любому из нейронов, вводится "чувство справедливости". Если нейрон чаще других выигрывает "состязание", т.е. получает максимальный выход чаще, чем в 1 из
случаев, то его значение выхода искусственно уменьшается, чтобы дать возможность выиграть другим нейронам. Это включает все нейроны сети в процесс обучения.
Коррекция весов пропорционально выходу: в этой модификации корректируются веса не только выигравшего нейрона, но и всех остальных, пропорционально их нормированному выходу. Нормировка выполняется по максимальному значению выхода слоя или по его среднему значению. Этот метод также исключает "мертвые" нейроны и улучшает распределение плотности весов.
Обучение слоя Гроссберга
Слой Гроссберга обучается относительно просто. Входной вектор, являющийся выходом слоя Кохонена, подается на слой нейронов Гроссберга, и выходы слоя Гроссберга вычисляются как при нормальном функционировании. Далее, каждый вес корректируется только в том случае, если он соединен с нейроном Кохонена, имеющим ненулевой выход. Величина коррекции веса пропорциональна разности между весом и требуемым выходом нейрона Гроссберга, с которым этот вес соединен. В символьной записи
где
— выход
-го нейрона Кохонена (только для одного нейрона Кохонена он отличен от нуля);
—
-я компонента вектора желаемых выходов.
Первоначально
берется равным приблизительно 0,1 и затем постепенно уменьшается в процессе обучения.
Отсюда видно, что веса слоя Гроссберга будут сходиться к средним величинам от желаемых выходов, тогда как веса слоя Кохонена обучаются на средних значениях входов. Обучение слоя Гроссберга — это обучение с учителем, алгоритм располагает желаемым выходом, по которому он обучается. Обучающийся без учителя, самоорганизующийся слой Кохонена дает выходы в недетерминированных позициях. Они отображаются в желаемые выходы слоем Гроссберга.
Обучение слоя Кохонена
Слой Кохонена классифицирует входные векторы в группы схожих. Это достигается с помощью такой подстройки весов слоя Кохонена, что близкие входные векторы активируют один и тот же нейрон данного слоя. Затем задачей слоя Гроссберга является получение требуемых выходов.
Обучение Кохонена является самообучением, протекающим без учителя. Поэтому трудно (и не нужно) предсказывать, какой именно нейрон Кохонена будет активироваться для заданного входного вектора. Необходимо лишь гарантированно добиться, чтобы в результате обучения разделялись несхожие входные векторы.
Предварительная обработка входных векторов
Весьма желательно (хотя и не обязательно) нормализовать входные векторы перед тем, как предъявлять их сети. Операция выполняется с помощью деления каждой компоненты входного вектора на длину вектора. Эта длина находится извлечением квадратного корня из суммы квадратов компонент вектора. В алгебраической записи
Таким образом, входной вектор превращается в единичный вектор с тем же самым направлением, т.е. в вектор единичной длины в
-мерном пространстве.
Уравнение (1) обобщает хорошо известный случай двух измерений, когда длина вектора равна гипотенузе прямоугольного треугольника, образованного его
и
компонентами, как это следует из известной теоремы Пифагора. На рис. 6.2 такой двумерный вектор
представлен в координатах
, причем координата
равна четырем, а координата
— трем. Квадратный корень из суммы квадратов этих компонент равен пяти. Деление каждой компоненты
на пять дает вектор
с компонентами 4/5 и 3/5, где
указывает в том же направлении, что и
, но имеет единичную длину.
Рис. 6.2. На рис. 6.3 показано несколько единичных векторов. Они оканчиваются в точках единичной окружности (окружности единичного радиуса), а это происходит, когда у сети лишь два входа. В случае трех входов векторы представлялись бы стрелками, оканчивающимися на поверхности единичной сферы. Такие представления могут быть перенесены на сети, имеющие произвольное число входов, где каждый входной вектор является стрелкой, оканчивающейся на поверхности единичной гиперсферы (полезной абстракцией, хотя и не допускающей непосредственной визуализации).
Рис. 6.3. При обучении слоя Кохонена на вход подается входной вектор и вычисляются его скалярные произведения с векторами весов, связанными со всеми нейронами Кохонена. Нейрон с максимальным значением скалярного произведения объявляется "победителем", и его веса подстраиваются. Так как скалярное произведение, используемое для вычисления величин
, является мерой сходства между входным вектором и вектором весов, то процесс обучения состоит в выборе нейрона Кохонена с весовым вектором, наиболее близким к входному вектору, и дальнейшем приближении весового вектора к входному.
Снова отметим, что процесс является самообучением, выполняемым без учителя. Сеть самоорганизуется таким образом, что данный нейрон Кохонена имеет максимальный выход для данного входного вектора. Уравнение, описывающее процесс обучения, имеет следующий вид:
где
— новое значение веса, соединяющего входную компоненту
с выигравшим нейроном;
— предыдущее значение этого веса;
— коэффициент скорости обучения, который может варьироваться в процессе обучения.
Каждый вес, связанный с выигравшим нейроном Кохонена, изменяется пропорционально разности между его величиной и величиной входа, к которому он присоединен. Направление изменения минимизирует разность между весом и его входом.
На рис. 6.4 этот процесс показан геометрически в двумерном виде. Сначала ищем вектор
, для этого проводится отрезок из конца
в конец
. Затем этот вектор укорачиваем умножением его на скалярную величину
, меньшую единицы, в результате чего получаем вектор изменения
. Окончательно новый весовой вектор
является отрезком, направленным из начала координат в конец вектора
. Отсюда можно видеть, что эффект обучения состоит во вращении весового вектора в направлении входного вектора без существенного изменения его длины.
Рис. 6.4. Переменная
является коэффициентом скорости обучения, который вначале обычно равен
и может постепенно уменьшаться в процессе обучения. Это позволяет делать большие начальные шаги для быстрого грубого обучения и меньшие шаги при подходе к окончательной величине.
Если бы с каждым нейроном Кохонена ассоциировался один входной вектор, то слой Кохонена мог бы быть обучен с помощью одного вычисления на вес. Веса нейрона-победителя приравнивались бы к компонентам обучающего вектора (
). Как правило, обучающее множество включает много сходных между собой входных векторов, и сеть должна быть обучена активировать один и тот же нейрон Кохонена для каждого из них. В этом случае веса этого нейрона должны вычисляться усреднением входных векторов, которые его активируют. Постепенное уменьшение величины
уменьшает воздействие каждого обучающего шага, и окончательное значение будет средней величиной от входных векторов, на которых происходит обучение.Таким образом, веса, ассоциированные с нейроном, примут значение вблизи "центра" входных векторов, для которых данный нейрон является "победителем".
сжатие данных
В дополнение к обычным функциям отображения векторов,
встречное распространение оказывается полезным и в некоторых менее очевидных прикладных областях. Одним из наиболее интересных примеров является сжатие данных.
Рис. 6.8. Сеть встречного распространения может быть использована для сжатия данных перед их передачей, уменьшая тем самым число битов, которые должны быть переданы. Допустим, что требуется передать некоторое изображение. Оно может быть разбито на подизображения
, как показано на рис. 6.8. Каждое подизображение разбито на пиксели (мельчайшие элементы изображения). Тогда каждое подизображение является вектором, элементами которого являются пиксели, из которых состоит подизображение. Допустим для простоты, что каждый пиксель - это единица (свет) или нуль (чернота). Если в подизображении имеется
пикселей, то для его передачи потребуется n бит. Если допустимы некоторые искажения, то для передачи типичного изображения требуется существенно меньшее число битов, что позволяет передавать изображение быстрее. Это возможно из-за статистического распределения векторов подизображений. Некоторые из них встречаются часто, тогда как другие встречаются так редко, что могут быть грубо аппроксимированы. Метод, называемый
векторным квантованием, находит более короткие последовательности битов, наилучшим образом представляющие эти подизображения.
Сеть встречного распространения может быть использована для выполнения векторного квантования. Множество векторов подизображений используется в качестве входа для обучения слоя Кохонена по методу аккредитации, когда выход единственного нейрона равен 1. Веса слоя Гроссберга обучаются выдавать бинарный код номера того нейрона Кохонена, выход которого равен 1. Например, если выходной сигнал нейрона 7 равен 1 (а все остальные равны 0), то слой Гроссберга будет обучаться выдавать 00...000111 (двоичный код числа 7). Это и будет являться более короткой битовой последовательностью передаваемых символов.
На приемном конце идентичным образом обученная сеть встречного распространения принимает двоичный код и реализует обратную функцию, аппроксимирующую первоначальное подизображение.
Этот метод применялся на практике как к речи, так и к изображениям, с коэффициентом сжатия данных от 10:1 до 100:1. Качество было приемлемым, хотя некоторые искажения данных на приемном конце признаются неизбежными.
Примеры обучения
Рассмотрим примеры обучения сети Кохонена обычным методом и методом выпуклой комбинации. В первом методе будем выбирать равномерно распределенные случайные векторы весов (ядер классов). На рисунке 6.5 представлен пример обучения. Точками обозначены векторы
обучающего множества, кружками — векторы весовых коэффициентов.
Рис. 6.5. Вектор весов нейрона
не обучается, т.к. ни для одного из векторов обучающего множества этот нейрон не получает максимального выхода. Кроме того, в области из шести обучающих векторов (справа внизу) оказывается всего один вектор весов нейрона
, что не соответствует высокой плотности обучающих векторов в этой области. Эти недостатки присущи обычному методу обучения сети Кохонена.
Разберем работу метода выпуклой комбинации. Последовательное изменение картины векторов и весов показано на рис. 6.6.
Рис. 6.6. На первой схеме все векторы весов и обучающего множества имеют одно и то же значение. По мере обучения обучающие векторы расходятся к своим истинным значениям, а векторы весов следуют за ними. В итоге в сети не остается необученных нейронов и плотность векторов весов соответствует плотности векторов обучающего множества. Однако метод выпуклой комбинации хорошо работает, но замедляет процесс обучения, так как весовые векторы подстраиваются к изменяющейся цели. Другой подход состоит в добавлении шума к входным векторам. Тем самым они подвергаются случайным изменениям, схватывая в конце концов весовой вектор. Этот метод также работоспособен, но еще более медленнен, чем метод выпуклой комбинации.
Третий метод начинает работу со случайных весов, но на начальной стадии обучающего процесса подстраивает все веса, а не только связанные с выигравшим нейроном Кохонена. Тем самым весовые векторы перемещаются ближе к области входных векторов. В процессе обучения коррекция весов начинает производиться лишь для ближайших к победителю нейронов Кохонена. Этот радиус коррекции постепенно уменьшается, так что в конце корректируются только веса, связанные с выигравшим нейроном Кохонена.
Еще один метод наделяет каждый нейрон Кохонена "чувством справедливости". Если он становится победителем чаще своей "законной доли" (примерно
, где
— число нейронов Кохонена), он временно увеличивает свой порог, что уменьшает его шансы на выигрыш, давая тем самым возможность обучаться и другим нейронам.
Во многих приложениях точность результата существенно зависит от распределения весов. К сожалению, эффективность различных решений исчерпывающим образом не оценена и остается проблемой, ожидающей своего решения.
Режим интерполяции
До сих пор мы обсуждали алгоритм обучения, в котором для каждого входного вектора активировался только один нейрон Кохонена. Это называется
методом аккредитации. Его точность ограничена, так как выход полностью является функцией лишь одного нейрона Кохонена.
В
методе интерполяции целая группа нейронов Кохонена, имеющих максимальные выходы, может передавать свои выходные сигналы в слой Гроссберга. Число нейронов в такой группе должно выбираться в зависимости от задачи, и убедительных данных относительно оптимального размера группы не имеется. Как только группа определена, ее множество выходов
рассматривается как вектор, длина которого нормализуется на единицу делением каждого значения
на корень квадратный из суммы квадратов значений
в группе. Все нейроны вне группы имеют нулевые выходы.
Метод интерполяции способен устанавливать более сложные соответствия и может давать более точные результаты. По-прежнему, однако, нет убедительных данных, позволяющих сравнить достоинства и недостатки режимов интерполяции и аккредитации.
Сеть встречного распространения полностью
На рис. 6.7 показана сеть встречного распространения целиком. В режиме нормального функционирования предъявляются входные векторы
и
, и обученная сеть дает на выходе векторы
и
, являющиеся аппроксимациями соответственно для
и
. Векторы
и
предполагаются здесь нормализованными единичными векторами, следовательно, порождаемые на выходе векторы также будут иметь тенденцию быть нормализованными.
Рис. 6.7. В процессе обучения векторы
и
подаются одновременно и как входные векторы сети, и как желаемые выходные сигналы. Вектор
используется для обучения выходов
, а вектор
— для обучения выходов
слоя Гроссберга. Сеть встречного распространения целиком обучается с использованием того же самого метода, который описывался для сети прямого действия. Нейроны Кохонена принимают входные сигналы как от векторов
, так и от векторов
. Но эта ситуация неотличима от той, когда имеется один большой вектор, составленный из векторов
и
, и тем самым не влияет на алгоритм обучения.
В качестве результирующего получается единичное отображение, при котором предъявление пары входных векторов порождает их копии на выходе. Этот вывод не представляется особенно интересным, если не заметить, что предъявление только вектора
(с вектором
, равным нулю) порождает как выходы
, так и выходы
. Если
— функция, отображающая
в
, то сеть аппроксимирует ее. Также, если
обратима, то предъявление только вектора
(приравнивая
нулю) порождает
. Уникальная способность сети встречного распространения — порождать функцию и обратную к ней — делает эту сеть полезной в ряде приложений.
Рис. 6.7, в отличие от первоначальной конфигурации, не демонстрирует противоток в сети, по которому она получила свое название. Такая форма выбрана потому, что она также иллюстрирует сеть без обратных связей и позволяет обобщить понятия, развитые в предыдущих лекциях.
Слои Кохонена
В своей простейшей форме слой Кохонена функционирует в духе "победитель забирает все", т.е. для данного входного вектора один и только один нейрон Кохонена выдает на выходе логическую единицу, а все остальные выдают ноль. Нейроны Кохонена можно воспринимать как набор электрических лампочек, и для любого входного вектора "загорается" одна из них.
Ассоциированное с нейронами Кохонена множество весов связывает каждый нейрон с каждым входом. Например, на рис. 6.1 нейрон Кохонена
имеет веса
, составляющие весовой вектор
. Они соединяются через входной слой с входными сигналами
, составляющими входной вектор
. Подобно нейронам большинства сетей, выход
каждого нейрона Кохонена является просто суммой взвешенных входов. Это может быть выражено следующим образом:
где
— это выход
нейрона Кохонена
, или, в векторной записи,
где
— вектор выходов
слоя Кохонена.
Нейрон Кохонена с максимальным значением
является "победителем". Его выход равен единице, у остальных он равен нулю.
Слой Гроссберга
Слой Гроссберга функционирует в сходной манере. Его выход
является взвешенной суммой выходов
,
,
,
слоя Кохонена, образующих вектор
. Вектор соединяющих весов, обозначенный через
, состоит из весов
. Тогда выход NET каждого нейрона Гроссберга есть
где
— выход
-го нейрона Гроссберга, или, в векторной форме,
где
— выходной вектор слоя Гроссберга,
— выходной вектор слоя Кохонена,
— матрица весов слоя Гроссберга.
Если слой Кохонена функционирует таким образом, что лишь у одного нейрона величина
равна единице, а у остальных равна нулю, то всего один элемент вектора
отличен от нуля и вычисления очень просты. Фактически каждый нейрон слоя Гроссберга лишь выдает величину веса, который связывает этот нейрон с единственным ненулевым нейроном Кохонена.
Статистические свойства обученной сети
Метод обучения Кохонена обладает полезной и интересной способностью извлекать статистические свойства из множества входных данных. Как показано Кохоненом, для полностью обученной сети вероятность того, что случайно выбранный входной вектор (в соответствии с функцией плотности вероятности входного множества) будет ближайшим к любому заданному весовому вектору, равна
, где
— число нейронов Кохонена. Это является оптимальным распределением весов на гиперсфере. (Предполагается, что используются все весовые векторы, а это возможно лишь в том случае, если используется один из вышеупомянутых методов распределения весов.)
Структура сети
На рис. 6.1 показана упрощенная версия прямого действия сети встречного распространения. Здесь иллюстрируются функциональные свойства этой парадигмы. Полная двунаправленная сеть основана на тех же принципах, она обсуждается в этой лекции позднее.
Рис. 6.1. Нейроны слоя 0 (показанные кружками) служат лишь точками разветвления и не выполняют вычислений. Каждый нейрон слоя 0 соединен с каждым нейроном слоя 1 (называемого слоем Кохонена) отдельным весом
. Эти веса в целом рассматриваются как матрица весов
. Аналогично, каждый нейрон в слое Кохонена (слое 1) соединен с каждым нейроном в слое Гроссберга (слое 2) весом
. Эти веса образуют матрицу весов
. Все это весьма напоминает другие сети, встречавшиеся в предыдущих лекциях; различие, однако, в операциях, выполняемых нейронами Кохонена и Гроссберга.
Как и многие другие сети, встречное распространение функционирует в двух режимах: в нормальном режиме, при котором принимается входной вектор
и выдается выходной вектор
, и в режиме обучения, при котором подается входной вектор и веса корректируются, чтобы дать требуемый выходной вектор.
Введение в сети встречного распространения
По своим возможностям сети встречного распространения превосходят возможности однослойных сетей. Время же их обучения, по сравнению с обратным распространением, может уменьшаться в сто раз.
Встречное распространение не настолько общее, как обратное распространение, но оно может давать решение в тех приложениях, где долгая обучающая процедура невозможна. Будет показано, что, помимо преодоления ограничений других сетей,
встречное распространение
обладает собственными интересными и полезными свойствами.
Во
встречном распространении объединены два хорошо известных алгоритма: самоорганизующаяся карта Кохонена и звезда Гроссберга. При этом появляются свойства, которых нет ни у одного из них в отдельности.
Методы, которые, подобно
встречному распространению, объединяют различные сетевые парадигмы как строительные блоки, могут привести к сетям, более близким по архитектуре к мозгу, чем любые другие однородные структуры. Похоже, что в естественном мозге именно каскадные соединения модулей различной специализации позволяют выполнять требуемые вычисления.
Сеть встречного распространения функционирует подобно столу справок, способному к обобщению. В процессе обучения входные векторы ассоциируются с соответствующими выходными векторами; они могут быть двоичными, состоящими из нулей и единиц, или непрерывными. Когда сеть обучена, приложение входного вектора приводит к требуемому выходному вектору. Обобщающая способность сети позволяет получать правильный выход даже при приложении входного вектора, который является неполным или слегка неверным. Таким образом, возможно использовать данную сеть для распознавания образов, восстановления образов и усиления сигналов.
Выбор начальных значений весовых векторов
Всем весам сети перед началом обучения следует придать начальные значения. Общепринятой практикой при работе с нейронными сетями является присваивание весам небольших случайных значений. При обучении слоя Кохонена случайно выбранные весовые векторы следует нормализовать. Окончательные значения весовых векторов после обучения совпадают с нормализованными входными векторами. Поэтому нормализация перед началом обучения приближает весовые векторы к их окончательным значениям, сокращая, таким образом, продолжительность обучающего процесса.
Рандомизация весов слоя Кохонена может породить серьезные проблемы при обучении, так как в результате весовые векторы распределяются равномерно по поверхности гиперсферы. Из-за того, что входные векторы, как правило, распределены неравномерно и имеют тенденцию группироваться на относительно малой части поверхности гиперсферы, большинство весовых векторов будут так удалены от любого входного вектора, что они никогда не смогут дать наилучшее соответствие. Эти нейроны Кохонена будут всегда иметь нулевой выход и окажутся бесполезными. Более того, оставшихся весов, дающих наилучшие соответствия, может оказаться слишком мало, чтобы разделить входные векторы на классы, которые расположены близко друг к другу на поверхности гиперсферы.
Допустим, что имеется несколько множеств входных векторов, все эти множества сходные, но необходимо разделить их на различные классы. Сеть должна быть обучена активировать отдельный нейрон Кохонена для каждого класса. Если начальная плотность весовых векторов в окрестности обучающих векторов слишком мала, то, возможно, не удастся разделить сходные классы из-за того, что весовых векторов в интересующей нас окрестности не хватит, чтобы приписать по одному из них каждому классу входных векторов.
Наоборот, если несколько входных векторов получены незначительными изменениями из одного и того же образца и должны быть объединены в один класс, то они должны включать один и тот же нейрон Кохонена. Если же плотность весовых векторов очень высока вблизи группы слегка различных входных векторов, то каждый входной вектор может активировать отдельный нейрон Кохонена.
Это не является катастрофой, так как слой Гроссберга может отобразить различные нейроны Кохонена в один и тот же выход, но это расточительная трата нейронов Кохонена.
Наиболее желательное решение будет таким: распределить весовые векторы в соответствии с плотностью входных векторов, подлежащих разделению, и для этого поместить больше весовых векторов в окрестности большого числа входных векторов. Конечно, на практике это невыполнимо, но существует несколько методов приближенного достижения тех же целей.
Одно из решений, известное под названием
метода выпуклой комбинации (convex combination method), состоит в том, что все веса приравниваются к одной и той же величине
где
— число входов и, следовательно, число компонент каждого весового вектора. Благодаря этому все весовые векторы совпадают и имеют единичную длину. Каждой же компоненте входа
придается значение
где
— число входов. В начале
очень мало, вследствие чего все входные векторы имеют длину, близкую к
, и почти совпадают с векторами весов. В процессе обучения сети
постепенно возрастает, приближаясь к единице. Это позволяет разделять входные векторы и окончательно приписывать им их истинные значения. Весовые векторы отслеживают один или небольшую группу входных векторов и в конце обучения дают требуемую картину выходов.
Использование обучения
Больцмановское обучение
Этот стохастический метод непосредственно применим к обучению искусственных нейронных сетей:
- Определить переменную , представляющую искусственную температуру. Придать большое начальное значение.
- Предъявить сети множество входов и вычислить выходы и целевую функцию.
- Дать случайное изменение весу и пересчитать выход сети и изменение целевой функции в соответствии со сделанным изменением веса.
- Если целевая функция уменьшилась (улучшилась), то сохранить изменение веса.
Если изменение веса приводит к увеличению целевой функции, то вероятность сохранения этого изменения вычисляется с помощью распределения Больцмана:
где
— вероятность изменения
в целевой функции;
— константа, аналогичная константе Больцмана, выбираемая в зависимости от задачи;
— искусственная температура.
Выбирается случайное число
из равномерного распределения от нуля до единицы. Если
больше, чем
, то изменение сохраняется, в противном случае величина веса возвращается к предыдущему значению. Это позволяет системе делать случайный шаг в направлении, портящем целевую функцию, и дает ей тем самым возможность вырываться из локальных минимумов, где любой малый шаг увеличивает целевую функцию.
Для завершения больцмановского обучения повторяют шаги 3 и 4 для
каждого из весов сети, постепенно уменьшая температуру
, пока не будет достигнуто допустимо низкое значение целевой функции. В этот момент предъявляется другой входной вектор, и процесс обучения повторяется. Сеть обучается на всех векторах обучающего множества, с возможным повторением, пока целевая функция не станет допустимой для всех них.
Величина случайного изменения веса на шаге 3 может определяться различными способами. Например, подобно тепловой системе, весовое изменение
может выбираться в соответствии с гауссовским распределением:
где
— вероятность изменения веса на величину
,
— искусственная температура.
Так как требуется величина изменения веса
, а не вероятность изменения веса, имеющего величину
, то метод Монте-Карло может быть использован следующим образом:
- Найти кумулятивную вероятность, соответствующую . Это есть интеграл от в пределах от 0 до . Поскольку в данном случае не может быть проинтегрирована аналитически, она должна интегрироваться численно, а результат необходимо затабулировать.
- Выбрать случайное число из равномерного распределения на интервале (0,1). Используя эту величину в качестве значения , найти в таблице соответствующее значение для величины изменения веса.
Свойства машины Больцмана широко изучены. Скорость уменьшения температуры должна быть обратно пропорциональна логарифму времени, чтобы была достигнута сходимость к глобальному минимуму. Скорость охлаждения в такой системе выражается следующим образом:
где
— искусственная температура как функция времени;
— начальная искусственная температура;
— искусственное время.
Этот разочаровывающий результат предсказывает очень медленную скорость охлаждения (и вычислений). Вывод подтвержден и экспериментально. Машины Больцмана часто требуют для обучения очень большого ресурса времени.
Использование обучения
Искусственная нейронная сеть обучается с помощью некоторого процесса, модифицирующего ее веса. Если обучение успешно, то предъявление сети множества входных сигналов приводит к появлению желаемого множества выходных сигналов. Имеется два класса обучающих методов: детерминистский и стохастический.
Детерминистский метод обучения шаг за шагом осуществляет процедуру коррекции весов сети, основанную на использовании их текущих значений, а также величин входов, фактических выходов и желаемых выходов. Обучение персептрона является примером подобного детерминистского метода.
Стохастические методы обучения выполняют псевдослучайные изменения величин весов, сохраняя те изменения, которые ведут к улучшениям. Чтобы показать это наглядно, рассмотрим рис. 7.1, на котором изображена типичная сеть, где нейроны соединены с помощью весов. Выход нейрона является здесь взвешенной суммой его входов, которая преобразована с помощью нелинейной функции. Для обучения сети могут быть использованы следующие процедуры:
- Выбрать вес случайным образом и подкорректировать его на небольшое случайное число. Предъявить множество входов и вычислить получающиеся выходы.
- Сравнить эти выходы с желаемыми выходами и вычислить величину разности между ними. Общепринятый метод состоит в нахождении разности между фактическим и желаемым выходами для каждого элемента обучаемой пары, возведение разностей в квадрат и нахождение суммы этих квадратов. Целью обучения является минимизация этой разности, часто называемой целевой функцией.
- Выбрать вес случайным образом и подкорректировать его на небольшое случайное значение. Если коррекция помогает (уменьшает целевую функцию), то сохранить ее, в противном случае вернуться к первоначальному значению веса.
- Повторять шаги с 1 по 3 до тех пор, пока сеть не будет обучена в достаточной степени.
Рис. 7.1. Этот процесс стремится минимизировать целевую функцию, но может попасть, как в ловушку, в неудачное решение. На рис. 7.2 показано, как это может происходить в системе с единственным весом.
Допустим, что первоначально вес взят равным значению в точке
. Если случайные шаги по весу малы, то любые отклонения от точки
увеличивают целевую функцию и будут отвергнуты. Лучшее значение веса, принимаемое в точке
, никогда не будет найдено, и система будет поймана в ловушку локальным минимумом вместо глобального минимума в точке
. Если же случайные коррекции веса очень велики, то как точка
, так и точка
будут часто посещаться, но то же самое будет верно и для каждой другой точки. Вес будет меняться так резко, что он никогда не установится в желаемом минимуме.
Рис. 7.2.
Таким образом, окончательно шарик остановится в точке глобального минимума, когда амплитуда встряхивания уменьшится до нуля.
Искусственные нейронные сети могут обучаться, по существу, тем же способом при помощи случайной коррекции весов. Вначале делаются большие случайные коррекции с сохранением только тех изменений весов, которые уменьшают целевую функцию. Затем средний размер шага постепенно уменьшается, и глобальный минимум в конце концов достигается.
Эта процедура весьма напоминает отжиг металла, поэтому для ее описания часто используют термин "имитация отжига". В металле, который нагрет до температуры, превышающей его точку плавления, атомы находятся в сильном беспорядочном движении. Как и во всех физических системах, атомы стремятся к состоянию минимума энергии (единому кристаллу, в данном случае), но при высоких температурах энергия атомных движений препятствует этому. В процессе постепенного охлаждения металла возникают все более низкоэнергетические состояния, пока, в конце концов, не будет достигнуто самое малое из возможных состояний, глобальный минимум. В процессе
отжига распределение энергетических уровней описывается следующим соотношением:
где
— вероятность того, что система находится в состоянии с энергией
;
— постоянная Больцмана;
— температура по шкале Кельвина.
При высоких температурах
приближается к единице для всех энергетических состояний. Таким образом, высокоэнергетическое состояние почти столь же вероятно, как и низкоэнергетическое. По мере уменьшения температуры вероятность высокоэнергетических состояний уменьшается по отношению к низкоэнергетическим. При приближении температуры к нулю становится весьма маловероятным, чтобы система находилась в высокоэнергетическом состоянии.
Экспериментальные результаты
Комбинированный алгоритм, использующий обратное распространение и обучение Коши, применялся для обучения нескольких больших сетей. Например, этим методом была успешно обучена система, распознающая рукописные китайские иероглифы. Все же время обучения оказалось отнюдь не маленьким (было потрачено приблизительно 36 часов машинного времени).
В другом эксперименте эта сеть обучалась на задаче ИСКЛЮЧАЮЩЕЕ ИЛИ, которая была использована в качестве теста для сравнения с другими алгоритмами. Для сходимости сети в среднем требовалось около 76 предъявлений обучающего множества. В качестве сравнения можно указать, что при использовании обратного распространения в среднем требовалось около 245 предъявлений для решения этой же задачи и 4986 итераций при использовании обратного распространения второго порядка.
Ни одно из обучений не привело к локальному минимуму. Более того, ни одно из 160 обучений не обнаружило неожиданных патологий, сеть всегда правильно обучалась.
Эксперименты же с чистой машиной Коши потребовали значительно большх времен обучения. Например, при
для обучения сети в среднем требовалось около 2284 предъявлений обучающего множества.
Несмотря на такие обнадеживающие результаты, метод еще не исследован до конца, особенно на больших задачах. Значительно большая работа потребуется для определения его достоинств и недостатков.
Метод искусственной теплоемкости
Несмотря на улучшение, достигаемое с помощью метода Коши, время обучения может оказаться все еще слишком большим. Для дальнейшего ускорения этого процесса может быть использован способ, уходящий своими корнями в термодинамику. В этом методе скорость уменьшения температуры изменяется в соответствии с искусственной "теплоемкостью", вычисляемой в процессе обучения.
Во время отжига металла происходят фазовые переходы, связанные с дискретными изменениями уровней энергии. При каждом фазовом переходе может происходить резкое изменение величины, называемой
теплоемкостью.
Теплоемкость определяется как скорость изменения температуры в зависимости от изменения энергии. Изменения теплоемкости происходят из-за попадания системы в локальные энергетические минимумы.Искусственные нейронные сети проходят аналогичные фазы в процессе обучения. На границе фазового перехода искусственная теплоемкость может скачкообразно измениться. Эта псевдотеплоемкость определяется как средняя скорость изменения температуры с целевой функцией. В примере шарика в коробке, приведенном выше, сильная начальная встряска делает среднюю величину целевой функции фактически не зависящей от малых изменений температуры, т. е.
теплоемкость близка к константе. Аналогично, при очень низких температурах система замерзает в точке минимума, так что
теплоемкость снова близка к константе. Ясно, что в каждой из этих областей допустимы сильные изменения температуры, так как не происходит улучшения целевой функции.
При критической температуре небольшое уменьшение ее значения приводит к большому изменению средней величины целевой функции. Возвращаясь к аналогии с шариком, при "температуре", когда шарик обладает достаточной средней энергией, чтобы перейти из
в
, но не достаточной для перехода из
в
, средняя величина целевой функции испытывает скачкообразное изменение. В этих критических точках алгоритм должен изменять температуру очень медленно, чтобы гарантировать, что система не "замерзнет" случайно в точке
, оказавшись пойманной в локальный минимум. Критическая температура может быть обнаружена по резкому уменьшению искусственной теплоемкости, т.е. средней скорости изменения температуры с целевой функцией. При достижении критической температуры скорость изменения температуры должна замедляться, чтобы гарантировать сходимость к глобальному минимуму. При всех остальных температурах может без риска использоваться более высокая скорость снижения температуры, что приводит к значительному снижению времени обучения.
Обратное распространение и обучение Коши
Обратное распространение обладает преимуществом прямого поиска, т.е. веса всегда корректируются в направлении, минимизирующем функцию ошибки. Хотя время обучения и велико, оно существенно меньше, чем при случайном поиске, выполняемом машиной Коши, когда отыскивается глобальный минимум, но многие шаги выполняются в неверном направлении и "съедают" много времени.
Соединение этих двух методов дало хорошие результаты. Коррекция весов, равная сумме, вычисленной алгоритмом обратного распространения, и случайный шаг, задаваемый алгоритмом Коши, приводят к системе, которая сходится и находит глобальный минимум быстрее, чем система, обучаемая каждым из методов в отдельности. Простая эвристика используется для избежания паралича сети, который может возникнуть как при обратном распространении, так и при обучении по методу Коши.
Обучение Коши
Рис. 7.3. В этом методе при вычислении величины шага распределение Больцмана заменяется на распределение Коши. Распределение Коши имеет, как показано на рис. 7.3, более длинные "хвосты", увеличивая тем самым вероятность больших шагов. В действительности, распределение Коши имеет бесконечную (неопределенную) дисперсию. С помощью такого простого изменения максимальная скорость уменьшения температуры становится обратно пропорциональной линейной величине, а не логарифму, как для алгоритма обучения Больцмана. Это резко уменьшает время обучения. Зависимость может быть выражена следующим образом:
Распределение Коши имеет вид
где
есть вероятность шага величины
.
В данном уравнении
может быть проинтегрирована стандартными методами. Решая относительно
, получаем
где
— коэффициент скорости обучения;
— изменение веса.
Теперь применение метода Монте-Карло становится очень простым. Для нахождения x в этом случае выбирается случайное число из равномерного распределения на открытом интервале
(необходимо ограничить функцию тангенса). Оно подставляется в формулу (5.7) в качестве
, и с помощью текущей температуры вычисляется величина шага.
Трудности с алгоритмом обучения Коши
Несмотря на улучшение скорости обучения, даваемое машиной Коши по сравнению с машиной Больцмана, время сходимости все еще может в 100 раз превышать время для алгоритма обратного распространения. Отметим, что сетевой паралич особенно опасен для
алгоритма обучения Коши, в особенности для сети с нелинейностью типа логистической функции. Бесконечная дисперсия распределения Коши приводит к изменениям весов до неограниченных величин. Далее, большие изменения весов будут иногда приниматься даже в тех случаях, когда они неблагоприятны, часто приводя к сильному насыщению сетевых нейронов с вытекающим отсюда риском паралича.
Комбинирование обратного распространения с shape обучением Коши. Коррекция весов в комбинированном алгоритме, использующем обратное распространение и обучение Коши, состоит из двух компонент: (1) направленной компоненты, вычисляемой с использованием алгоритма обратного распространения, и (2) случайной компоненты, определяемой распределением Коши. Эти компоненты вычисляются для каждого веса, и их сумма является величиной, на которую изменяется вес. Как и в
алгоритме Коши, после вычисления изменения веса вычисляется целевая функция. Если происходит улучшение, изменение сохраняется безусловно. В противном случае, оно сохраняется с вероятностью, определяемой распределением Больцмана. Коррекция веса вычисляется с использованием представленных ранее уравнений для каждого из алгоритмов:
где
— коэффициент, управляющий относительными величинами Коши и обратного распространения в компонентах весового шага. Если
приравнивается нулю, система становится полностью машиной Коши. Если
приравнивается единице, система становится машиной обратного распространения. Изменение лишь одного весового коэффициента между вычислениями весовой функции неэффективно. Оказалось, что лучше сразу изменять все веса целого слоя, хотя для некоторых задач может стать выгоднее иная стратегия.
Преодоление сетевого паралича комбинированным методом обучения. Как и в машине Коши, если изменение веса ухудшает целевую функцию, — с помощью распределения Больцмана решается, сохранить ли новое значение веса или восстановить предыдущее значение.
Таким образом, имеется конечная вероятность того, что ухудшающее множество приращений весов будет сохранено. Так как распределение Коши имеет бесконечную дисперсию (диапазон изменения тангенса простирается от
до
на области определения), то весьма вероятно возникновение больших приращений весов, часто приводящих к сетевому параличу.
Очевидное решение, состоящее в ограничении диапазона изменения весовых шагов, ставит вопрос о математической корректности полученного таким образом алгоритма. На сегодняшний день доказана сходимость системы к глобальному минимуму лишь для исходного алгоритма. Подобного доказательства при искусственном ограничении размера шага не существует. В действительности экспериментально выявлены случаи, когда для реализации некоторой функции требуются большие веса и два больших веса, вычитаясь, дают малую разность.
Другое решение состоит в рандомизации весов тех нейронов, которые оказались в состоянии насыщения. Его недостаток в том, что оно может серьезно нарушить обучающий процесс, иногда затягивая его до бесконечности.
Для решения проблемы паралича был найден метод, не нарушающий достигнутого обучения. Насыщенные нейроны выявляются с помощью измерения их сигналов OUT. Когда величина OUT приближается к своему предельному значению, положительному или отрицательному, на веса, питающие этот нейрон, действует сжимающая функция. Она подобна используемой для получения нейронного сигнала OUT, за исключением того, что диапазоном ее изменения является интервал
или другое подходящее множество. Тогда модифицированные весовые значения равны
Эта функция заметно уменьшает величину очень больших весов, воздействие на малые веса значительно более слабое. Далее, она поддерживает симметрию, сохраняя небольшие различия между большими весами. Экспериментально было показано, что эта функция выводит нейроны из состояния насыщения без нарушения достигнутого в сети обучения. Не было затрачено серьезных усилий для оптимизации используемой функции, и другие значения констант могут оказаться лучшими.
Трудности, связанные с обратным распространением
Несмотря на богатые возможности, продемонстрированные методом обратного распространения, при его применении возникает ряд трудностей, часть из которых, однако, облегчается благодаря использованию нового алгоритма.
Сходимость. Д.Е.Румелхарт доказал сходимость на языке дифференциальных уравнений в частных производных. Таким образом, доказательство справедливо лишь в том случае, когда коррекция весов выполняется с помощью бесконечно малых шагов. Это условие ведет к бесконечному времени сходимости, и тем самым метод теряет силу в практических применениях. В действительности нет доказательства, что обратное распространение будет сходиться при конечном размере шага. Эксперименты показывают, что сети обычно обучаются, но время обучения велико и непредсказуемо.
Локальные минимумы. В обратном распространении для коррекции весов сети используется градиентный спуск, продвигающийся к минимуму в соответствии с локальным наклоном поверхности ошибки. Он хорошо работает в случае сильно изрезанных невыпуклых поверхностей, которые встречаются в практических задачах. В одних случаях локальный минимум является приемлемым решением, в других случаях он неприемлем.
Даже после того как сеть обучена, невозможно сказать, найден ли с помощью обратного распространения глобальный минимум. Если решение неудовлетворительно, приходится давать весам новые начальные случайные значения и повторно обучать сеть без гарантии, что обучение закончится на этой попытке или что глобальный минимум вообще будет когда-либо найден.
Паралич. При некоторых условиях сеть может при обучении попасть в такое состояние, когда модификация весов не ведет к действительным изменениям сети. Такой "паралич сети" является серьезной проблемой: один раз возникнув, он может увеличить время обучения на несколько порядков.
Паралич возникает, когда значительная часть нейронов получает веса достаточно большие, чтобы дать большие значения NET. В результате величина OUT приближается к своему предельному значению, а производная от сжимающей функции приближается к нулю. Как мы видели, алгоритм обратного распространения при вычислении величины изменения веса использует эту производную в формуле в качестве коэффициента. Для пораженных параличом нейронов близость производной к нулю приводит к тому, что изменение веса становится близким к нулю.
Если подобные условия возникают во многих нейронах сети, то обучение может замедлиться до почти полной остановки.
Нет теории, способной предсказывать, будет ли сеть парализована во время обучения или нет. Экспериментально установлено, что малые размеры шага реже приводят к параличу, но шаг, малый для одной задачи, может оказаться большим для другой. Цена же паралича может быть высокой. При моделировании многие часы машинного времени могут уйти на то, чтобы выйти из паралича.
Конфигурации сетей с обратными связями
Ассоциативность памяти и задача распознавания образов
Динамический процесс последовательной смены состояний нейронной сети Хопфилда завершается в некотором стационарном состоянии, являющимся локальным минимумом энергетической функции
. Невозрастание энергии в процессе динамики приводит к выбору такого локального минимума
, в бассейн притяжения которого попадает начальное состояние (исходный, предъявляемый сети образ)
. В этом случае также говорят, что состояние
находится в чаше минимума
.
При последовательной динамике в качестве стационарного состояния будет выбран такой образ
, который потребует минимального числа изменений состояний отдельных нейронов. Поскольку для двух двоичных векторов минимальное число изменений компонент, переводящее один вектор в другой, является расстоянием Хемминга
, то можно заключить, что динамика сети заканчивается в ближайшем по Хеммингу локальном минимуме энергии.
Пусть состояние
соответствует некоторому идеальному образу памяти. Тогда эволюцию от состояния
к состоянию
можно сравнить с процедурой постепенного восстановления идеального образа
по его искаженной (зашумленной или неполной) копии
. Память с такими свойствами процесса считывания информации является
ассоциативной. При поиске искаженные части целого восстанавливаются по имеющимся неискаженным частям на основе ассоциативных связей между ними.
Ассоциативный характер памяти сети Хопфилда качественно отличает ее от обычной, адресной, компьютерной памяти. В последней извлечение необходимой информации происходит по
адресу ее начальной точки (ячейки памяти). Потеря адреса (или даже одного бита адреса) приводит к потере доступа ко всему информационному фрагменту. При использовании же ассоциативной памяти доступ к информации производится непосредственно по ее
содержанию, т.е. по частично известным искаженным фрагментам. Потеря части информации или ее зашумление не приводит к катастрофическому ограничению доступа, если оставшейся информации достаточно для извлечения идеального образа.
Поиск идеального образа по имеющейся неполной или зашумленной его версии называется задачей
распознавания образов.
В нашей лекции особенности решения этой задачи нейронной сетью Хопфилда будут продемонстрированы на примерах, которые получены с использованием модели сети на персональной ЭВМ.
В рассматриваемой модели сеть содержала 100 нейронов, упорядоченных в матрицу
. Сеть обучалась по правилу Хебба на трех идеальных образах — шрифтовых начертаниях латинских букв M, A и G (см. рис. 8.3). После обучения нейросети в качестве начальных состояний нейронов предъявлялись различные искаженные версии образов, которые в дальнейшем эволюционировали с последовательной динамикой к стационарным состояниям.
Рис. 8.3. Для каждой пары изображений на рисунке 8.4, левый образ является начальным состоянием, а правый — результатом работы сети, достигнутым стационарным состоянием.
Образ на рис. 8.4(А) был выбран для тестирования адекватности поведения на идеальной задаче, когда предъявленное изображение точно соответствует информации в памяти. В этом случае за один шаг было достигнуто стационарное состояние. Образ на рис. 8.4(Б) характерен для задач распознавания текста независимо от типа шрифта. Начальное и конечное изображения безусловно похожи, но попробуйте это объяснить машине!
Рис. 8.4. Задания на рис. 8.4(В, Г) характерны для практических приложений. Нейросетевая система способна распознавать практически полностью зашумленные образы. Задачи, соответствующие рисункам 8.4(Д, Е), демонстрируют замечательное свойство сети Хопфилда: она способна ассоциативно узнавать образ по его небольшому фрагменту. Важнейшей особенностью работы сети является генерация ложных образов. Пример ассоциации к ложному образу показан на рис. 8.4(Ж). Ложный образ является устойчивым локальным экстремумом энергии, но не соответствует никакому идеальному образу. Он является в некотором смысле собирательным образом, наследующим черты идеальных собратьев. Ситуация с ложным образом эквивалентна нашему "Где-то я уже это видел".
В данной простейшей задаче ложный образ является "неверным" решением и поэтому вреден.Однако можно надеяться, что такая склонность сети к обобщениям может быть как-то использована. Характерно, что при увеличении объема полезной информации (сравните рис. 8.4 (Е) и (Ж))
исходное состояние попадает в область притяжения требуемого стационарного состояния, и образ распознается.
Бинарные системы
В первой работе Д.Хопфилда функция
была просто пороговой функцией. Выход такого нейрона равен единице, если взвешенная сумма выходов с других нейронов больше порога
, в противном случае она равна нулю. Порог вычисляется следующим образом:
Состояние сети — это просто множество текущих значений сигналов OUT от всех нейронов. В первоначальной сети Хопфилда состояние каждого нейрона менялось в дискретные случайные моменты времени, в последующей состояния нейронов могли меняться одновременно. Так как выходом бинарного нейрона может быть только ноль или единица (промежуточных уровней нет), то текущее состояние сети является двоичным числом, каждый бит которого является сигналом OUT некоторого нейрона.
Задачи, решаемые данной сетью, как правило, формулируются следующим образом. Известен некоторый набор двоичных сигналов (изображений, оцифровок звука, прочих данных, описывающих некие объекты или характеристики процессов), которые считаются образцовыми. Сеть должна уметь из произвольного неидеального сигнала, поданного на ее вход, выделить ("вспомнить" по частичной информации) соответствующий образец (если такой есть) или "дать заключение" о том, что входные данные не соответствуют ни одному из образцов. В общем случае, любой сигнал может быть описан вектором
,
— число нейронов в сети и размерность входных и выходных векторов. Каждый элемент
равен либо 1, либо 0. Обозначим вектор, описывающий k-й образец, через
, а его компоненты, соответственно, —
,
,
— число образцов. Когда сеть распознaет (или "вспомнит") какой-либо образец на основе предъявленных ей данных, ее выходы будут содержать именно его, то есть
, где
--вектор выходных значений сети:
. В противном случае, выходной вектор не совпадет ни с одним образцовым.
Если, например, сигналы представляют собой некие изображения, то, отобразив в графическом виде данные с выхода сети, можно будет увидеть картинку, полностью совпадающую с одной из образцовых (в случае успеха) или же "вольную импровизацию" сети (в случае неудачи).
На стадии инициализации сети весовые коэффициенты синапсов устанавливаются следующим образом:
Здесь
и
— индексы, соответственно, предсинаптического и постсинаптического нейронов;
,
—
-й и
-й элементы вектора
-го образца.
Алгоритм функционирования сети следующий (
— номер итерации):
На входы сети подается неизвестный сигнал. Фактически его ввод осуществляется непосредственной установкой значений аксонов:
поэтому обозначение на схеме сети входных синапсов в явном виде носит чисто условный характер. Ноль в скобке справа от означает нулевую итерацию в цикле работы сети.
Рассчитывается новое состояние нейронов:
и новые значения аксонов
где — активационная функция в виде скачка.
- Проверка, изменились ли выходные значения аксонов за последнюю итерацию. Если да — переход к пункту 2, иначе (если выходы стабилизировались) — конец процедуры. При этом выходной вектор представляет собой образец, наилучшим образом сочетающийся с входными данными.
Нейроны второго слоя связаны между собой ингибиторными (отрицательными обратными) синаптическими связями. Единственный синапс с положительной обратной связью для каждого нейрона соединен с его же аксоном.
Идея работы сети состоит в нахождении расстояния Хэмминга от тестируемого образа до всех образцов. Расстоянием Хэмминга называется число отличающихся битов в двух бинарных векторах. Сеть должна выбрать образец с минимальным расстоянием Хэмминга до неизвестного входного сигнала, в результате чего будет активизирован только один выход сети, соответствующий именно этому образцу.
На стадии инициализации весовым коэффициентам первого слоя и порогу активационной функции присваиваются следующие значения:
Здесь
-
-й элемент
-го образца.
Весовые коэффициенты тормозящих синапсов во втором слое берут равными некоторой величине
. Синапс нейрона, связанный с его же аксоном, имеет вес +1.
Алгоритм функционирования сети Хэмминга следующий:
На входы сети подается неизвестный вектор
,
исходя из которого рассчитываются состояния нейронов первого слоя (верхний индекс в скобках указывает номер слоя):
После этого полученными значениями инициализируются значения аксонов второго слоя:
Вычисляются новые состояния нейронов второго слоя:
и значения их аксонов:
Активационная функция имеет вид порога, причем величина
должна быть достаточно большой, чтобы любые возможные значения аргумента не приводили к насыщению.
- Проверить, изменились ли выходы нейронов второго слоя за последнюю итерацию. Если да — перейти к шагу 2. Иначе — конец процедуры.
Из оценки алгоритма видно, что роль первого слоя весьма условна: воспользовавшись один раз на шаге 1 значениями его весовых коэффициентов, сеть больше не обращается к нему, поэтому первый слой может быть вообще исключен из сети.
Конфигурации сетей с обратными связями
Рассмотренный нами ранее персептрон относится к классу сетей с направленным потоком распространения информации и не содержит обратных связей. На этапе функционирования каждый нейрон выполняет свою функцию — передачу возбуждения другим нейронам — ровно один раз. Динамика состояний нейронов является неитерационной.
Несколько более сложной является динамика в сети Кохонена. Конкурентное соревнование нейронов достигается путем итераций, в процессе которых информация многократно передается между нейронами.
В общем случае может быть рассмотрена нейронная сеть, содержащая произвольные обратные связи, по которым переданное возбуждение возвращается к данному нейрону, и он повторно выполняет свою функцию. Наблюдения за биологическими локальными нейросетями указывают на наличие множественных обратных связей. Нейродинамика в таких системах становится итерационной. Это свойство существенно расширяет множество типов нейросетевых архитектур, но одновременно приводит к появлению новых проблем.
Неитерационная динамика состояний нейронов является, очевидно, всегда устойчивой. Обратные связи могут приводить к возникновению
неустойчивостей, подобных тем, которые возникают в усилительных радиотехнических системах при положительной обратной связи. В нейронных сетях неустойчивость проявляется в блуждающей смене состояний нейронов, не приводящей к возникновению стационарных состояний. В общем случае, ответ на вопрос об устойчивости динамики произвольной системы с обратными связями крайне сложен и до настоящего времени является открытым.
Остановимся на важном частном случае нейросетевой архитектуры, для которой свойства устойчивости подробно исследованы. На рис. 8.1
показана сеть с обратными связями, состоящая из двух слоев. Способ представления несколько отличается от использованного в работе Хопфилда и других сходных, но эквивалентен им с функциональной точки зрения, а также хорошо связан с сетями, рассмотренными на предыдущих лекциях. Нулевой слой, как и на предыдущих рисунках, не выполняет вычислительной функции, а лишь распределяет выходы сети обратно на входы. Каждый нейрон первого слоя вычисляет взвешенную сумму своих входов, давая сигнал NET, который затем с помощью нелинейной функции F преобразуется в сигнал OUT. Эти операции сходны с нейронами других сетей.
Рис. 8.1.
Устойчивость
Как и в других сетях, веса между слоями в этой сети могут рассматриваться в виде матрицы
. Сеть с обратными связями является устойчивой, если ее матрица симметрична и имеет нули на главной диагонали, т. е. если
и
для всех
.
Устойчивость такой сети может быть доказана с помощью элегантного математического метода. Допустим, что найдена функция, которая всегда убывает при изменении состояния сети. В конце концов, эта функция должна достичь минимума и прекратить изменение, гарантируя тем самым устойчивость сети. Такая функция, называемая функцией Ляпунова, для рассматриваемых сетей с обратными связями может быть введена следующим образом:
где
— искусственная энергия сети;
— вес от выхода нейрона
к входу нейрона
;
— выход нейрона
;
— внешний вход нейрона
;
— порог нейрона
.
Изменение энергии
, вызванное изменением состояния
-нейрона, есть
где
— изменение выхода
-го нейрона.
Допустим, что величина NET нейрона
больше порога. Тогда выражение в скобках будет положительным, а из данных уравнений следует, что выход нейрона
должен измениться в положительную сторону (или остаться без изменения). Это значит, что
может быть только положительным или нулем и
должно быть отрицательным. Следовательно, энергия сети должна либо уменьшиться, либо остаться без изменения.
Далее, допустим, что величина
меньше порога. Тогда величина
может быть только отрицательной или нулем. Следовательно, опять энергия должна уменьшиться или остаться без изменения.
И окончательно, если величина
равна порогу,
равна нулю и энергия остается без изменения.
Мы показали, что любое изменение состояния нейрона либо уменьшит энергию, либо оставит ее без изменения. Благодаря такому непрерывному стремлению к уменьшению энергия, в конце концов, должна достигнуть минимума и прекратить изменение. По определению такая сеть является устойчивой.
Симметрия сети является достаточным, но не необходимым условием для устойчивости системы. Имеется много устойчивых систем (например, все сети прямого действия), которые ему не удовлетворяют. Можно продемонстрировать примеры, в которых незначительное отклонение от симметрии будет приводить к непрерывным осцилляциям. Однако приближенной симметрии обычно достаточно для устойчивости систем.
Модификации правила Хэбба
Алгоритмы разобучения (забывания)
Возможность забывания ненужной, лишней информации является одним из замечательных свойств биологической памяти. Идея приложения этого свойства к искусственной
нейросети Хопфилда
"удивительно" проста: при запоминании образов обучающей выборки вместе с ними запоминаются и ложные образы. Их-то и следует "забыть".
Соответствующие алгоритмы получили название алгоритмов разобучения. Суть их сводится к следующему.
На первой фазе происходит обучение сети по стандартному правилу Хебба. Память наполняется истинными образами и множеством ложной информации. На следующей фазе (фазе разобучения) сети предъявляется некоторый (случайный) образ
. Сеть эволюционирует от состояния
к некоторому состоянию
, которое при большом объеме обучающей выборки чаще всего оказывается ложным. Теперь матрица связей может быть поправлена, с целью уменьшить глубину минимума энергии, отвечающего этому ложному состоянию:
В качестве степени забывания
выбирается некоторое малое число, что гарантирует незначительное ухудшение полезной памяти, если состояние
не окажется ложным. После нескольких "сеансов забывания" свойства сети улучшаются.
Данная процедура пока не имеет формального теоретического обоснования, однако на практике приводит к более регулярной энергетической поверхности нейронной сети и к увеличению объема бассейнов притяжения полезных образов.
Аналого-цифровой преобразователь
Рассмотрим электрическую схему, которая основана на сети с обратной связью и реализует четырехбитовый аналого-цифровой преобразователь. На рис. 9.2 показана блок-схема этого устройства с усилителями, выполняющими роль искусственных нейронов. Сопротивления, выполняющие роль весов, соединяют выход каждого нейрона с входами всех остальных. Чтобы удовлетворить условию устойчивости, выход нейрона не соединялся сопротивлением с его собственным входом, а веса брались симметричными, т. е. сопротивление от выхода нейрона
к входу нейрона
имело ту же величину, что и сопротивление от выхода нейрона
к входу нейрона
.
Заметим, что усилители имеют прямой и инвертированный выходы. Это позволяет с помощью обычных положительных сопротивлений реализовывать и те случаи, когда веса должны быть отрицательными. На рис. 9.2 показаны все возможные сопротивления, при этом никогда не возникает необходимости присоединять как прямой, так и инвертированный выходы нейрона к входу другого нейрона.
Рис. 9.2. В реальной системе каждый усилитель обладает конечным входным сопротивлением и входной емкостью, что должно учитываться при расчете динамических характеристик. Для устойчивости сети не требуется равенства этих параметров для всех усилителей и их симметричности. Так как эти параметры влияют лишь на затраченное для получения решения время, а не на само решение, для упрощения анализа они исключены.
Предполагается, что используется пороговая функция (предел сигмоидальной функции при
, стремящемся к бесконечности). Далее, все выходы изменяются в начале дискретных интервалов времени, называемых эпохами. В начале каждой эпохи исследуется сумма входов каждого нейрона. Если она больше порога, выход принимает единичное значение, если меньше — нулевое. На протяжении эпохи выходы нейронов не изменяются.
Целью является такой выбор сопротивлений (весов), чтобы непрерывно растущее напряжение
, приложенное к одновходовому терминалу, порождало множество из четырех выходов, представляющих двоичную запись числа, величина которого приближенно равна входному напряжению (см.
рис. 9.3). Определим сначала функцию энергии следующим образом:
где
— входное напряжение.
Когда
минимизировано, то получаются нужные выходы. Первое выражение в скобках минимизируется, когда двоичное число, образованное выходами, наиболее близко (в среднеквадратичном смысле) к аналоговой величине входа
. Второе выражение в скобках обращается в нуль, когда все выходы равны 1 или 0, тем самым накладывая ограничение, что выходы принимают только двоичные значения.
Если данное уравнение перегруппировать, то получим следующее выражение для весов:
где
— проводимость (величина, обратная сопротивлению) от выхода нейрона
к входу нейрона
(равная также проводимости от выхода нейрона
к входу нейрона
);
— проводимость от входа
к входу нейрона
. Чтобы получить схему с приемлемыми значениями сопротивлений и потребляемой мощности, все веса должны быть промасштабированы.
Рис. 9.3. Идеальная выходная характеристика, изображенная на рис. 9.3, будет реализована лишь в том случае, если входы устанавливаются в нуль перед выполнением преобразования. Если этого не делать, сеть может попасть в локальный минимум энергии и дать неверный выход.
Емкость сети
Актуальным предметом изучения остается максимальное количество запоминаемой информации, которое может храниться в сети Хопфилда. Так как сеть из
двоичных нейронов может иметь
состояний, то исследователи были удивлены, обнаружив, что максимальная емкость памяти оказалась значительно меньшей.
Если бы удалось закрепить в памяти большое количество информационных единиц, то сеть не стабилизировалась бы на некоторых из них. Более того, она могла бы помнить то, чему ее не учили, т. е. могла стабилизироваться на решении, не являющемся требуемым вектором. Эти свойства ставили в тупик первых исследователей, которые не имели математических методов для предварительной оценки емкости памяти сети.
Последние результаты пролили свет на эту проблему. Например, предполагалось, что максимальное количество запоминаемой информации, которое может храниться в сети из
нейронов и безошибочно извлекаться, меньше чем
, где
— положительная константа, большая единицы. Хотя этот предел и достигается в некоторых случаях, в общем случае он оказался слишком оптимистическим. Было экспериментально показано, что предельное значение емкости обычно ближе к
. Также, по новейшим данным, число таких состояний не может превышать
, что согласуется с наблюдениями над реальными системами и является наилучшей на сегодняшний день оценкой.
Функция энергии
Определение функции энергии сети в зависимости от задачи не является тривиальным. Существующие решения были получены с помощью изобретательности, математического опыта и таланта, которые не родятся в изобилии.
Локальные минимумы
Сеть, выполняющая аналого-цифровое преобразование, всегда находит единственное оптимальное решение. Это обусловлено простой природой поверхности энергии в такой задаче. В задаче коммивояжера поверхность энергии сильно изрезана, изобилует склонами, долинами и локальными минимумами и нет гарантии, что будет найдено глобальное оптимальное решение и что полученное решение будет допустимым. При этом возникают серьезные сомнения относительно надежности сети и доверия к ее решениям. Эти недостатки сети смягчаются тем обстоятельством, что нахождение глобальных минимумов для NP-полных задач является очень трудной задачей, которая не может быть решена в приемлемое время никаким иным методом. Другие методы значительно более медленны и дают не лучшие результаты.
Матрица Хебба с ортогонализацией образов
На предыдущей лекции было установлено, что ортогональность образов обучающей выборки является весьма благоприятным обстоятельством, так как в этом случае можно показать их устойчивое сохранение в памяти. При точной ортогональности достигается максимальная емкость памяти, равная
— максимально возможному числу ортогональных образов из
компонент.
На этом свойстве ортогональных образов и основан один из наиболее часто используемых способов улучшения правила Хебба: перед запоминанием в нейронной сети исходные образы следует ортогонализовать. Процедура ортогонализации приводит к новому виду матрицы памяти:
где
— матрица, обратная к матрице
:
Такая форма матрицы памяти обеспечивает воспроизведение любого набора из
образов. Однако существенным недостатком этого метода является его
нелокальность: обучение связи между двумя нейронами требует знания состояний всех других нейронов. Кроме того, прежде чем начать обучение, необходимо заранее знать
все обучающие образы. Добавление нового образа требует полного переобучения сети. Поэтому данный подход весьма далек от исходных биологических оснований сети Хопфилда—Хебба, хотя на практике приводит к заметным улучшениям ее функционирования.
Модификации правила Хэбба
Ограничения емкости синаптической памяти, а также проблема ложной памяти классической нейронной сети в
модели Хопфилда, обученной по правилу Хебба, привели к появлению целого ряда исследований, целью которых было снятие этих ограничений. При этом главный упор делался на модификацию правил обучения.
Непрерывные системы
На предыдущей лекции была рассмотрена классическая
модель Хопфилда с двоичными нейронами. Изменение состояний нейронов во времени описывалось детерминированными правилами, которые в заданный момент времени однозначно определяли степень возбуждения всех нейронов сети.
Хопфилд рассматривал модели с непрерывной активационной функцией
, точнее моделирующей биологический нейрон. В общем случае это
-образная или логистическая функция
где
— коэффициент, определяющий крутизну сигмоидальной функции. Если
велико,
приближается к описанной ранее пороговой функции. Небольшие значения
дают более пологий наклон.
Как и для бинарных систем, устойчивость гарантируется, если веса симметричны, т.е.
и
при всех
. Функция энергии, доказывающая устойчивость подобных систем, сконструирована, но она не рассматривается здесь из-за своего концептуального сходства с дискретным случаем.
Если
велико, непрерывные системы функционируют подобно дискретным бинарным системам, окончательно стабилизируясь со всеми выходами, близкими нулю или единице, т. е. в вершине единичного гиперкуба. С уменьшением
устойчивые точки удаляются от вершин, последовательно исчезая по мере приближения
к нулю. На рис. 9.1 показаны линии энергетических уровней непрерывной системы с двумя нейронами.
Рис. 9.1.
Обобщенные сети
Принцип машины Больцмана может быть перенесен на сети практически любой конфигурации, но без гарантированной устойчивости. Достаточно выбрать одно множество нейронов в качестве входов и другое множество в качестве выходов, затем придать входному множеству значения входного вектора и предоставить сети возможность релаксировать в соответствии с описанными выше правилами 1 и 2.
Процедура обучения для такой сети состоит из следующих шагов:
Вычислить закрепленные вероятности:
а) придать входным и выходным нейронам значения обучающего вектора;
б) предоставить сети возможность искать равновесие;
в) записать выходные значения для всех нейронов;
г) повторить шаги от а до в для всех обучающих векторов;
д) вычислить вероятность , т. е. по всему множеству обучающих векторов вычислить вероятность того, что значения обоих нейронов равны единице.
Вычислить незакрепленные вероятности:
а) предоставить сети возможность "свободного движения" без закрепления входов или выходов, начав со случайного состояния;
б) повторить шаг 2а много раз, регистрируя значения всех нейронов;
в) вычислить вероятность , т. е. вероятность того, что значения обоих нейронов равны единице.
Скорректировать веса сети следующим образом:
где — изменение веса , — коэффициент скорости обучения.
Отказ от симметрии синапсов
Другим подходом для улучшения правила Хебба является отказ от симметрии синаптических соединений. Матрица памяти может выбираться в следующей форме:
Элементы матрицы
из множества
управляют наличием или отсутствием связи от нейрона
к нейрону
.
Увеличение емкости памяти в этой модели в принципе может быть достигнуто за счет появления новых степеней свободы, связанных с матрицей
. В общем случае, однако, трудно предложить алгоритм выбора этой матрицы. Следует также отметить, что динамическая система с несимметричной матрицей не обязана быть устойчивой.
Сети Хопфилда и машина Больцмана
Недостатком сетей Хопфилда является их тенденция стабилизироваться в локальном, а не в глобальном минимуме функции энергии. Эта трудность преодолевается в основном с помощью класса сетей, известных под названием машин Больцмана, в которых изменения состояний нейронов обусловлены статистическими, а не детерминированными закономерностями. Существует тесная аналогия между этими методами и отжигом металла, поэтому и сами методы часто называют имитацией отжига.
Скорость
Главное достоинство сети — ее способность быстро производить вычисления. Причина этого — высокая степень распараллеливания вычислительного процесса. Если сеть реализована на аналоговой электронике, то решение редко занимает промежуток времени, больший нескольких постоянных времени сети. Более того, время сходимости слабо зависит от размерности задачи. Для сравнения: при использовании обычных подходов время, необходимое для решения, возрастает более чем экспоненциально.
Статистические сети Хопфилда
Если правила изменения состояний для бинарной сети Хопфилда заданы статистически, а не детерминированно, то возникает система, имитирующая отжиг. Для ее реализации вводится вероятность изменения веса как функция от величины, на которую выход нейрона OUT превышает его порог. Пусть
где
— выход NET нейрона
;
— порог нейрона
, и
(отметим вероятностную функцию Больцмана в знаменателе), где
— искусственная температура.
В стадии функционирования искусственной температуре
приписывается большое значение, нейроны устанавливаются в начальном состоянии, определяемом входным вектором, и сеть имеет возможность искать минимум энергии в соответствии с нижеследующей процедурой:
- Приписать состоянию каждого нейрона с вероятностью
значение единица, а с вероятностью — нуль. - Постепенно уменьшать искусственную температуру и повторять шаг 1, пока не будет достигнуто равновесие.
Термодинамические системы
Металл отжигают, нагревая его до температуры, превышающей точку его плавления, а затем давая ему медленно остыть. При высоких температурах атомы, обладая высокими энергиями и свободой перемещения, случайным образом принимают все возможные конфигурации. При постепенном снижении температуры энергии атомов уменьшаются, и система в целом стремится принять конфигурацию с минимальной энергией. Когда охлаждение завершено, достигается состояние глобального минимума энергии.
При фиксированной температуре распределение энергий системы определяется вероятностным фактором Больцмана
где
— энергия системы;
— постоянная Больцмана;
— температура.
Отсюда очевидно: имеется конечная вероятность того, что система обладает высокой энергией даже при низких температурах. Сходным образом имеется небольшая, но вычисляемая вероятность, что чайник с водой на огне замерзнет, прежде чем закипит.
Статистическое распределение энергий позволяет системе выходить из локальных минимумов энергии. В то же время, вероятность высокоэнергетических состояний быстро уменьшается со снижением температуры. Следовательно, при низких температурах имеется сильная тенденция занять низкоэнергетическое состояние.
Задача коммивояжера
Задача коммивояжера является оптимизационной задачей, часто возникающей на практике. Она может быть сформулирована следующим образом: для некоторой группы городов с заданными расстояниями между ними требуется найти кратчайший маршрут с посещением каждого города один раз и с возвращением в исходную точку. Было доказано, что эта задача принадлежит большому множеству задач, называемых "NP-полными" (недетерминистски полиномиальными). Для NP-полных задач не известно лучшего метода решения, чем полный перебор всех возможных вариантов, и, по мнению большинства математиков, маловероятно, чтобы лучший метод был когда-либо найден. Так как такой полный поиск практически неосуществим для большого числа городов, то эвристические методы используются для нахождения приемлемых, хотя и неоптимальных решений.
Существует решение этой задачи, основанное на сетях с обратными связями. Допустим, что города, которые необходимо посетить, помечены буквами
,
,
и
, а расстояния между парами городов есть
,
и т.д.
Решением является упорядоченное множество из
городов. Задача состоит в отображении его в вычислительную сеть с использованием нейронов в режиме с большой крутизной характеристики (
приближается к бесконечности). Каждый город представлен строкой из
нейронов. Выход одного и только одного нейрона из них равен единице (все остальные равны нулю). Этот равный единице выход нейрона показывает порядковый номер, в котором данный город посещается при обходе. В табл. 23.1 приведен случай, когда город
посещается первым, город
— вторым, город
— третьим и город
— четвертым. Для такого представления требуется
нейронов — число, которое быстро растет с увеличением числа городов. Длина полученного маршрута была бы равна
. Так как каждый город посещается только один раз, и в каждый момент посещается лишь один город, то в каждой строке и в каждом столбце имеется по одной единице. Для задачи с
городами всего имеется
различных маршрутов обхода. Если
, то имеется
возможных маршрутов. Если принять во внимание, что в нашей галактике (Млечном Пути) имеется лишь
звезд, то станет ясным, что полный перебор всех возможных маршрутов для 1000 городов даже на самом быстром в мире компьютере займет время, сравнимое с геологической эпохой.
| город | Порядок следования |
| 1 | 2 | 3 | 4 |
| A | 0 | 1 | 0 | 0 |
| B | 0 | 0 | 0 | 1 |
| C | 1 | 0 | 0 | 0 |
| D | 0 | 0 | 1 | 0 |
Продемонстрируем теперь, как сконструировать сеть для решения этой NP-полной проблемы. Каждый нейрон снабжен двумя индексами, которые соответствуют городу и порядковому номеру его посещения в маршруте. Например,
показывает, что город
был
-м по порядку городом маршрута.
Функция энергии должна удовлетворять двум требованиям: во-первых, должна быть малой только для тех решений, которые имеют по одной единице в каждой строке и в каждом столбце; во-вторых, должна оказывать предпочтение решениям с короткой длиной маршрута.
Первое требование удовлетворяется введением следующей, состоящей из трех сумм, функции энергии:
где
,
и
— некоторые константы. Этим достигается выполнение следующих условий:
- Первая тройная сумма равна нулю в том и только в том случае, если каждая строка (город) содержит не более одной единицы.
- Вторая тройная сумма равна нулю в том и только в том случае, если каждый столбец (порядковый номер посещения) содержит не более одной единицы.
Третья сумма равна нулю в том и только в том случае, если матрица содержит ровно единиц. Второе требование — предпочтение коротких маршрутов — удовлетворяется с помощью добавления следующего члена к функции энергии:
Заметим, что этот член представляет собой длину любого допустимого маршрута. Для удобства индексы определяются по модулю
, т. е.
, a
— некоторая константа.
При достаточно больших значениях
,
и
низкоэнергетические состояния будут представлять допустимые маршруты, а большие значения
гарантируют, что будет найден короткий маршрут.
Теперь зададим значения весов, т. е. установим соответствие между членами в функции энергии и членами общей формы (см. уравнение 6.2).
Получаем
(не допускает более одной единицы в строке)
(не допускает более одной единицы в столбце)
(глобальное ограничение)
(член, отвечающий за длину цикла),
где
, если
, в противном случае
. Кроме того, каждый нейрон имеет смещающий вес
, соединенный с
и равный
.
Был проведен эксперимент, в котором задача коммивояжера была решена для 10 городов. В этом случае возбуждающая функция была равна
Как показали результаты, 16 из 20 прогонов сошлись к допустимому маршруту и около 50% решений оказались кратчайшими маршрутами, что было установлено с помощью полного перебора. Наш результат станет более впечатляющим, если осознать, что имеется 181440 допустимых маршрутов.
Структура ДАП
Адаптивная ДАП
В версиях ДАП, рассматриваемых до сих пор, весовая матрица вычисляется в виде суммы произведений пар векторов. Такие вычисления полезны, поскольку они демонстрируют функции, которые может выполнять ДАП. Однако это определенно не тот способ, посредством которого производится определение весов нейронов мозга.
Адаптивная ДАП изменяет свои веса в процессе функционирования. Это означает, что подача на вход сети обучающего набора входных векторов заставляет ее изменять энергетическое состояние до получения резонанса. Постепенно кратковременная память превращается в долговременную память, настраивая сеть в ходе ее функционирования. В процессе обучения векторы подаются на слой
, а ассоциированные векторы — на слой
. Один из них или оба вектора могут быть зашумленными версиями эталона; сеть обучается исходным векторам, свободным от шума. В этом случае она извлекает сущность ассоциаций, обучаясь эталонам, хотя "видела" только зашумленные аппроксимации.
Так как доказано, что непрерывная ДАП является стабильной независимо от значения весов, ожидается, что медленное изменение ее весов не должно нарушить этой стабильности.
Простейший обучающий алгоритм использует правило Хэбба, в котором изменение веса пропорционально уровню активации его нейрона- источника и уровню активации нейрона-приемника. В символьной записи это выглядит следующим образом:
где
— изменение веса связи нейрона
с нейроном
в матрицах
или
,
— выход нейрона
слоя 1 или 2,
— положительный нормирующий коэффициент обучения, меньший 1.
Емкость памяти
Как и сети Хопфилда, ДАП имеет ограничения на максимальное количество ассоциаций, которые она может точно воспроизвести. Если этот лимит превышен, сеть может выработать неверный выходной сигнал, воспроизводя ассоциации, которым не обучена.
Б. Коско получил оценки, в соответствии с которыми количество запомненных ассоциаций не может превышать количества нейронов в меньшем слое. Для этого емкость памяти должна быть максимизирована посредством специального кодирования, при котором количество компонент со значениями
равно количеству компонент со значениями
в каждом биполярном векторе. Эта оценка оказалась слишком оптимистичной. Е.Г. Рознер показал, что оценка емкости сетей Хопфилда может быть легко обобщена для ДАП. Можно показать, что если
векторов выбраны случайно и представлены в указанной выше форме, и если
меньше чем
), где
— количество нейронов в наименьшем слое, тогда все запомненные образы, за исключением "малой части", могут быть восстановлены. Например, если
, тогда
должно быть меньше 51. Если должны восстанавливаться все образы, то
должно быть меньше
, то есть меньше 25. Эти несколько озадачивающие результаты показывают, что большие системы могут запоминать только умеренное количество ассоциаций.
Известно, что ДАП может иметь до
стабильных состояний, если пороговое значение
выбирается для каждого нейрона. Такая конфигурация, которую авторы назвали негомогенной ДАП, является расширением исходной гомогенной ДАП, где все пороги были нулевыми. Модифицированная передаточная функция нейрона принимает в этом случае следующий вид:
где
— выход нейрона i в момент времени
.
С помощью выбора соответствующего порога для каждого нейрона, количество стабильных состояний может быть сделано любым в диапазоне от 1 до
, где
— количество нейронов в меньшем слое. К сожалению, эти состояния не могут быть выбраны случайно; они определяются жесткой геометрической процедурой. Если пользователь выбирает
состояний случайным образом, причем
меньше
, и если каждый вектор имеет
компонент, равных +1, и остальные, равные
, то можно сконструировать негомогенную ДАП, имеющую 98% этих векторов в качестве стабильных состояний.
Например, если
, то
должно быть меньше 3637, а это является существенным улучшением по сравнению с гомогенными ДАП, но намного меньше, чем
возможных состояний.
Ограничение количества единиц во входных векторах представляет серьезную проблему, тем более, что теория, которая позволяет перекодировать произвольный набор векторов в такой "разреженный" набор, отсутствует. Возможно, однако, что еще более серьезной является проблема некорректной сходимости. Суть этой проблемы заключается в том, что сеть может не производить точных ассоциаций вследствие природы поля притяжения; об ее форме известно очень немногое. Это означает, что ДАП не является ассоциатором по отношению к ближайшему соседнему образу. В действительности она может производить ассоциации, имеющие слабое отношение ко входному вектору. Как и в случае гомогенных ДАП, могут встречаться ложные стабильные состояния, а об их количестве и природе известно крайне мало.
Несмотря на эти проблемы, ДАП остается объектом интенсивных исследований. Основная привлекательность ДАП заключается в ее простоте. Кроме того, она может быть реализована в виде СБИС (либо аналоговых, либо цифровых), что делает ее потенциально недорогой. Так как наши знания постоянно растут, ограничения ДАП могут быть сняты. В этом случае как в экспериментальных, так и в практических приложениях ДАП будет являться весьма перспективным и полезным классом искусственных нейронных сетей.
Кодировка ассоциаций
Обычно сеть обучается распознаванию множества образов. Обучение производится с использованием обучающего набора, состоящего из пар векторов
и
. Процесс обучения реализуется в форме вычислений; это означает, что весовая матрица вычисляется как сумма произведений всех векторных пар обучающего набора. B символьной форме запишем
Предположим, что все запомненные образы представляют собой двоичные векторы. Это ограничение будет выглядеть менее строгим, если вспомнить, что все содержимое Библиотеки Университета может быть закодировано в один очень длинный двоичный вектор. Показано, что более высокая производительность достигается при использовании биполярных векторов. При этом векторная компонента, большая чем 0, становится
, а компонента, меньшая или равная 0, становится
.
Предположим, что требуется обучить сеть с целью запоминания трех пар двоичных векторов, причем векторы
имеют размерность такую же, как и векторы
. Надо отметить, что это не является необходимым условием для работы алгоритма; ассоциации могут быть сформированы и между векторами различной размерности.
| Исходный вектор | Ассоциированный вектор | Бинарная версия |
| | | |
| | | |
| | | |
Вычисляем весовую матрицу:
Далее, прикладывая входной вектор
, вычисляем выходной вектор
:
Используя пороговое правило,
, если
,
, если
,
, не изменяется, если
,
вычисляем
что является требуемой ассоциацией. Затем, подавая вектор
через обратную связь на вход первого слоя к
, получаем
что дает значение
после применения пороговой функции и образует величину вектора
.
Этот пример показывает, как входной вектор
с использованием матрицы
производит выходной вектор
. В свою очередь, вектор
с использованием матрицы
производит вектор
, и таким образом в системе формируется устойчивое состояние и резонанс.
ДАП обладает способностью к обобщению. Например, если незавершенный или частично искаженный вектор подается в качестве
, сеть имеет тенденцию к выработке запомненного вектора
, который, в свою очередь, стремится исправить ошибки в
. Возможно, для этого потребуется несколько проходов, но сеть сходится к воспроизведению ближайшего запомненного образа.
Системы с обратной связью могут иметь тенденцию к колебаниям; это означает, что они могут переходить от состояния к состоянию, никогда не достигая стабильности. Доказано, что все ДАП безусловно стабильны при любых значениях весов сети. Это важное свойство возникает из отношения транспонирования между двумя весовыми матрицами и означает, что любой набор ассоциаций может быть использован без риска возникновения нестабильности.
Существует взаимосвязь между ДАП и рассмотренными на предыдущих лекциях сетями Хопфилда. Если весовая матрица
является квадратной и симметричной, то
. В этом случае, если слои 1 и 2 являются одним и тем же набором нейронов, ДАП превращается в автоассоциативную сеть Хопфилда.
Конкурирующая ДАП
Во многих конкурирующих нейронных системах наблюдаются некоторые виды конкуренции между нейронами. В нейронах, обрабатывающих сигналы от сетчатки, латеральное торможение приводит к увеличению выхода наиболее высокоактивных нейронов за счет соседних. Такие системы увеличивают контрастность, поднимая уровень активности нейронов, подсоединенных к яркой области сетчатки, и в то же время еще более ослабляя выходы нейронов, подсоединенных к темным областям. В ДАП конкуренция реализуется с помощью взаимного соединения нейронов внутри каждого слоя посредством дополнительных связей. Веса этих связей формируют другую весовую матрицу с положительными значениями элементов главной диагонали и отрицательными значениями остальных элементов. Теорема Кохонена-Гроссберга показывает, что такая сеть является безусловно стабильной, если весовые матрицы симметричны. На практике сети обычно стабильны даже в случае отсутствия симметрии весовых матриц. Однако неизвестно, какие особенности весовых матриц могут привести к неустойчивости функционирования сети.
Непрерывная ДАП
В предшествующем обсуждении нейроны в слоях 1 и 2 рассматривались как синхронные; каждый нейрон обладает памятью, причем все нейроны изменяют состояния одновременно под воздействием импульса от центральных часов. В асинхронной системе любой нейрон свободен изменять состояние в любое время, когда его вход предписывает это сделать.
Кроме того, при определении функции активации нейрона использовался простой порог, образуя разрывность передаточной функции нейронов. Как синхронность функционирования, так и разрывность функций являются биологически неправдоподобными и совсем необязательными; непрерывные асинхронные ДАП отвергают синхронность и разрывность, но функционируют в основном аналогично дискретным версиям. Может показаться, что такие системы должны быть нестабильными. Показано, что непрерывные ДАП являются стабильными (однако для них справедливы ограничения емкости, указанные ранее). С. Гроссберг показал, что сигмоида является оптимальной функцией активации благодаря ее способности усиливать низкоуровневые сигналы и в то же время сжимать динамический диапазон нейронов. Непрерывная ДАП может иметь сигмоидальную функцию с величиной
, близкой к единице, и создавать тем самым нейроны с плавной и непрерывной реакцией, во многом аналогичной реакции их биологических прототипов.
Структура ДАП
На рис. 10.1 приведена базовая конфигурация ДАП. Она выбрана таким образом, чтобы подчеркнуть сходство с сетями Хопфилда и предусмотреть увеличения количества слоев. На рис. 10.1 входной вектор
обрабатывается матрицей весов
сети, в результате чего вырабатывается вектор выходных сигналов нейронов
. Вектор
затем обрабатывается транспонированной матрицей
весов сети, которая вырабатывает новые выходные сигналы, представляющие собой новый входной вектор
. Процесс повторяется до тех пор, пока сеть не достигнет стабильного состояния, в котором ни вектор
, ни вектор
не изменяются. Заметим, что нейроны в слоях 1 и 2 функционируют, как и в других парадигмах, вычисляя сумму взвешенных входов и вычисляя по ней значение функции активации
. Этот процесс может быть выражен следующим образом:
или в векторной форме:
где
— вектор выходных сигналов нейронов слоя 2,
— вектор выходных сигналов нейронов слоя 1,
— матрица весов связей между слоями 1 и 2,
— функция активации.
Рис. 10.1. Аналогично,
где
является транспозицией матрицы
.
Как отмечено нами ранее, Гроссберг показал преимущества использования сигмоидальной (логистической) функции активации
где
— выход нейрона
,
— взвешенная сумма входных сигналов нейрона
,
— константа, определяющая степень кривизны.
В простейших версиях ДАП значение константы
выбирается большим, в результате чего функция активации приближается к простой пороговой функции. В дальнейшем будем предполагать, что используется пороговая функция активации.
Примем также, что существует память внутри каждого нейрона в слоях 1 и 2 и что выходные сигналы нейронов изменяются одновременно с каждым тактом синхронизации, оставаясь постоянными в паузах между этими тактами. Таким образом, поведение нейронов может быть описано следующими правилами:
где
представляет собой величину выходного сигнала нейрона
в момент времени
.
Заметим, что, как и в описанных ранее сетях, слой 0 не производит вычислений и не имеет памяти; он является только средством распределения выходных сигналов слоя 2 к элементам матрицы
.
Восстановление запомненных ассоциаций
Долговременная память (или ассоциации) реализуется в весовых массивах
и
. Каждый образ состоит из двух векторов: вектора
, являющегося выходом слоя 1, и вектора
, ассоциированного образа, являющегося выходом слоя 2. Для восстановления ассоциированного образа вектор
или его часть кратковременно устанавливаются на выходах слоя 1. Затем вектор
удаляется, и сеть приводится в стабильное состояние, вырабатывая ассоциированный вектор
на выходе слоя 2. Далее вектор
воздействует через транспонированную матрицу
, воспроизводя воздействие исходного входного вектора
на выходе слоя 1. Каждый такой цикл вызывает уточнение выходных векторов слоя 1 и 2 до тех пор, пока не будет достигнута точка стабильности в сети. Эта точка может быть определена как резонансная, поскольку вектор передается обратно и вперед между слоями сети, всегда обрабатывая текущие выходные сигналы, но больше не изменяя их. Состояние нейронов представляет собой кратковременную память (КП), так как оно может быстро изменяться при появлении другого входного вектора. Значения коэффициентов весовой матрицы образуют долговременную память и могут изменяться только на более длительном отрезке времени с помощью методов, представленных ниже в данной лекции.
Сеть функционирует в направлении минимизации функции энергии Ляпунова в основном таким же образом, как и сети Хопфилда в процессе сходимости. Следовательно, каждый цикл модифицирует систему в направлении энергетического минимума, расположение которого определяется значениями весов.
Этот процесс может быть визуально представлен в форме направленного движения мяча по резиновой ленте, вытянутой над столом, причем каждому запомненному образу соответствует точка, "вдавленная" в направлении поверхности стола. Рис. 10.2 иллюстрирует данную аналогию, на нем отмечен один запомненный образ. Данный процесс формирует минимум гравитационной энергии в каждой точке, соответствующей запомненному образу, с соответствующим искривлением поля притяжения в направлении к данной точке. Свободно движущийся мяч попадает в поле притяжения и в результате будет двигаться в направлении энергетического минимума, где и остановится.
Рис. 10.2.
Принцип адаптивного резонанса
Архитектура АРТ
Адаптивная резонансная теория включает две парадигмы, каждая из которых определяется формой входных данных и способом их обработки. АРТ-1 создана для обработки двоичных входных векторов, в то время как АРТ-2, более позднее обобщение АРТ-1, может классифицировать как двоичные, так и непрерывные векторы. В данном курсе рассматривается только АРТ-1. Для краткости АРТ-1 в дальнейшем будем обозначать как APT.
Функционирование сети APT в процессе классификации
Процесс классификации в APT состоит из трех основных фаз: распознавание, сравнение и поиск.
Фаза распознавания. В начальный момент времени входной вектор отсутствует на входе сети; следовательно, все компоненты входного вектора
можно рассматривать как нулевые. Тем самым сигнал
устанавливается в
и, следовательно, в нуль устанавливаются выходы всех нейронов слоя распознавания. Поскольку все нейроны слоя распознавания начинают работу в одинаковом состоянии, они имеют равные шансы выиграть в последующей конкуренции. Затем на вход сети подается входной вектор
, который должен быть классифицирован. Этот вектор должен иметь одну или более компонент, отличных от нуля, в результате чего и
, и
становятся равными единице. Это "подкачивает" нейроны слоя сравнения, обеспечивая один из двух единичных входов, необходимых для возбуждения нейронов в соответствии с правилом двух третей, и тем самым позволяя нейрону возбуждаться, если соответствующая компонента входного вектора
равна единице. Таким образом, в течение данной фазы вектор
в точности дублирует вектор
.
Далее, для каждого нейрона в слое распознавания вычисляется свертка вектора его весов
и вектора
(см. рис. 11.5). Нейрон с максимальным значением свертки имеет веса, наилучшим образом соответствующие входному вектору. Он выигрывает конкуренцию и возбуждается, одновременно затормаживая все остальные нейроны этого слоя. Таким образом, единственная компонента
вектора
(см. рис. 11.3) становится равной единице, а все остальные компоненты становятся равными нулю.
Рис. 11.5. В результате сеть APT запоминает образы в весах нейронов слоя распознавания — один нейрон для каждой категории классификации. Нейрон слоя распознавания, веса которого наилучшим образом соответствуют входному вектору, возбуждается, его выход устанавливается в единичное значение, а выходы остальных нейронов этого слоя устанавливаются в нуль.
Фаза сравнения. Единственный возбужденный нейрон в слое распознавания возвращает единицу обратно в слой сравнения в виде своего выходного сигнала
.
Процесс классификации в APT состоит из трех основных фаз: распознавание, сравнение и поиск.
Фаза распознавания. В начальный момент времени входной вектор отсутствует на входе сети; следовательно, все компоненты входного вектора
можно рассматривать как нулевые. Тем самым сигнал
устанавливается в
и, следовательно, в нуль устанавливаются выходы всех нейронов слоя распознавания. Поскольку все нейроны слоя распознавания начинают работу в одинаковом состоянии, они имеют равные шансы выиграть в последующей конкуренции. Затем на вход сети подается входной вектор
, который должен быть классифицирован. Этот вектор должен иметь одну или более компонент, отличных от нуля, в результате чего и
, и
становятся равными единице. Это "подкачивает" нейроны слоя сравнения, обеспечивая один из двух единичных входов, необходимых для возбуждения нейронов в соответствии с правилом двух третей, и тем самым позволяя нейрону возбуждаться, если соответствующая компонента входного вектора
равна единице. Таким образом, в течение данной фазы вектор
в точности дублирует вектор
.
Далее, для каждого нейрона в слое распознавания вычисляется свертка вектора его весов
и вектора
(см. рис. 11.5). Нейрон с максимальным значением свертки имеет веса, наилучшим образом соответствующие входному вектору. Он выигрывает конкуренцию и возбуждается, одновременно затормаживая все остальные нейроны этого слоя. Таким образом, единственная компонента
вектора
(см. рис. 11.3) становится равной единице, а все остальные компоненты становятся равными нулю.
Рис. 11.5. В результате сеть APT запоминает образы в весах нейронов слоя распознавания — один нейрон для каждой категории классификации. Нейрон слоя распознавания, веса которого наилучшим образом соответствуют входному вектору, возбуждается, его выход устанавливается в единичное значение, а выходы остальных нейронов этого слоя устанавливаются в нуль.
Фаза сравнения. Единственный возбужденный нейрон в слое распознавания возвращает единицу обратно в слой сравнения в виде своего выходного сигнала
. Эта единственная единица может быть визуально представлена в виде "веерного" выхода, подающегося через отдельную связь с весом
на каждый нейрон в слое сравнения, обеспечивая каждый нейрон сигналом
, равным величине
(нулю или единице) (см. рис. 11.6).
Рис. 11.6. Алгоритмы инициализации и обучения построены таким образом, что каждый весовой вектор
имеет двоичные значения весов; кроме того, каждый весовой вектор
представляет собой масштабированную версию соответствующего вектора
. Это означает, что все компоненты
(вектора возбуждения слоя сравнения) также являются двоичными величинами.
Так как вектор
не является больше нулевым, сигнал
устанавливается в нуль. Таким образом, в соответствии с правилом двух третей, возбудиться могут только нейроны, получающие на входе одновременно единицы от входного вектора
и вектора
.
Другими словами, обратная связь от распознающего слоя действует так, чтобы установить компоненты
в нуль в случае, если входной вектор не соответствует входному образу (т. е. если
и
не имеют совпадающих компонент).
Если имеются существенные различия между
и
(малое количество совпадающих компонент векторов), несколько нейронов на фазе сравнения будут возбуждаться и
будет содержать много нулей, в то время как
содержит единицы. Это означает, что возвращенный вектор
не является искомым и возбужденные нейроны в слое распознавания должны быть заторможены. Такое торможение производится блоком сброса (см. рис. 11.2), который сравнивает входной вектор
и вектор
и вырабатывает сигнал сброса, если степень сходства этих векторов меньше некоторого уровня. Влияние сигнала сброса заключается в установке выхода возбужденного нейрона в нуль, отключая его на время текущей классификации.
Фаза поиска. Если не выработан сигнал сброса, сходство является адекватным и процесс классификации завершается. В противном случае, другие запомненные образы должны быть исследованы с целью поиска лучшего соответствия. При этом торможение возбужденного нейрона в распознающем слое приводит к установке всех компонент вектора
в 0,
устанавливается в 1 и входной вектор
опять прикладывается в качестве
. В результате другой нейрон выигрывает соревнование в слое распознавания и другой запомненный образ
возвращается в слой сравнения. Если
не соответствует
, возбужденный нейрон в слое распознавания снова тормозится. Этот процесс повторяется до тех пор, пока не встретится одно из двух событий:
- Найден запомненный образ, сходство которого с вектором
выше уровня параметра сходства, т. е. . Если это происходит, проводится обучающий цикл, в процессе которого модифицируются веса векторов и , связанных с возбужденным нейроном в слое распознавания. - Все запомненные образы проверены, определено, что они не соответствуют входному вектору, и все нейроны слоя распознавания заторможены. В этом случае предварительно не распределенный нейрон в распознающем слое выделяется этому образу и его весовые векторы
и устанавливаются соответствующими новому входному образу.
Проблема производительности. Описанная сеть должна производить последовательный поиск среди всех запомненных образов. В аналоговых реализациях это будет происходить очень быстро; однако, при моделировании на обычных цифровых компьютерах процесс может оказаться очень длительным. Если же сеть APT реализуется на параллельных процессорах, все свертки на распознающем уровне могут вычисляться одновременно. В этом случае поиск может стать очень быстрым.
Время, необходимое для стабилизации сети с латеральным торможением, может быть длительным при моделировании на последовательных цифровых компьютерах. Чтобы выбрать победителя в процессе латерального торможения, все нейроны в слое должны быть вовлечены в одновременные вычисления и передачу. Этот процесс может потребовать проведения большого объема вычислений перед достижением сходимости.
|
<
Эта единственная единица может быть визуально представлена в виде "веерного" выхода, подающегося через отдельную связь с весом
на каждый нейрон в слое сравнения, обеспечивая каждый нейрон сигналом
, равным величине
(нулю или единице) (см. рис. 11.6).
Рис. 11.6. Алгоритмы инициализации и обучения построены таким образом, что каждый весовой вектор
имеет двоичные значения весов; кроме того, каждый весовой вектор
представляет собой масштабированную версию соответствующего вектора
. Это означает, что все компоненты
(вектора возбуждения слоя сравнения) также являются двоичными величинами.
Так как вектор
не является больше нулевым, сигнал
устанавливается в нуль. Таким образом, в соответствии с правилом двух третей, возбудиться могут только нейроны, получающие на входе одновременно единицы от входного вектора
и вектора
.
Другими словами, обратная связь от распознающего слоя действует так, чтобы установить компоненты
в нуль в случае, если входной вектор не соответствует входному образу (т. е. если
и
не имеют совпадающих компонент).
Если имеются существенные различия между
и
(малое количество совпадающих компонент векторов), несколько нейронов на фазе сравнения будут возбуждаться и
будет содержать много нулей, в то время как
содержит единицы. Это означает, что возвращенный вектор
не является искомым и возбужденные нейроны в слое распознавания должны быть заторможены. Такое торможение производится блоком сброса (см. рис. 11.2), который сравнивает входной вектор
и вектор
и вырабатывает сигнал сброса, если степень сходства этих векторов меньше некоторого уровня. Влияние сигнала сброса заключается в установке выхода возбужденного нейрона в нуль, отключая его на время текущей классификации.
Фаза поиска. Если не выработан сигнал сброса, сходство является адекватным и процесс классификации завершается. В противном случае, другие запомненные образы должны быть исследованы с целью поиска лучшего соответствия. При этом торможение возбужденного нейрона в распознающем слое приводит к установке всех компонент вектора
в 0,
устанавливается в 1 и входной вектор
опять прикладывается в качестве
.
В результате другой нейрон выигрывает соревнование в слое распознавания и другой запомненный образ
возвращается в слой сравнения. Если
не соответствует
, возбужденный нейрон в слое распознавания снова тормозится. Этот процесс повторяется до тех пор, пока не встретится одно из двух событий:
- Найден запомненный образ, сходство которого с вектором
выше уровня параметра сходства, т. е. . Если это происходит, проводится обучающий цикл, в процессе которого модифицируются веса векторов и , связанных с возбужденным нейроном в слое распознавания. - Все запомненные образы проверены, определено, что они не соответствуют входному вектору, и все нейроны слоя распознавания заторможены. В этом случае предварительно не распределенный нейрон в распознающем слое выделяется этому образу и его весовые векторы
и устанавливаются соответствующими новому входному образу.
Проблема производительности. Описанная сеть должна производить последовательный поиск среди всех запомненных образов. В аналоговых реализациях это будет происходить очень быстро; однако, при моделировании на обычных цифровых компьютерах процесс может оказаться очень длительным. Если же сеть APT реализуется на параллельных процессорах, все свертки на распознающем уровне могут вычисляться одновременно. В этом случае поиск может стать очень быстрым.
Время, необходимое для стабилизации сети с латеральным торможением, может быть длительным при моделировании на последовательных цифровых компьютерах. Чтобы выбрать победителя в процессе латерального торможения, все нейроны в слое должны быть вовлечены в одновременные вычисления и передачу. Этот процесс может потребовать проведения большого объема вычислений перед достижением сходимости.
Описание APT
Сеть APT представляет собой векторный классификатор. Входной вектор классифицируется в зависимости от того, на какой из множества ранее запомненных образов он похож. Свое классификационное решение сеть APT выражает в форме возбуждения одного из нейронов распознающего слоя. Если входной вектор не соответствует ни одному из запомненных образов, создается новая категория путем запоминания образа, идентичного новому входному вектору. Если определено, что входной вектор похож на один из ранее запомненных с точки зрения определенного критерия сходства, запомненный вектор будет изменяться (обучаться) под воздействием нового входного вектора таким образом, чтобы стать более похожим на этот входной вектор.
Запомненный образ не будет изменяться, если текущий входной вектор не окажется достаточно похожим на него. Таким образом, решается дилемма стабильности-пластичности. Новый образ может создавать дополнительные классификационные категории, однако он не может заставить измениться существующую память.
Принцип адаптивного резонанса
Привлекательной особенностью нейронных сетей с адаптивным резонансом является то, что они сохраняют пластичность при запоминании новых образов, и, в то же время, предотвращают модификацию старой памяти. Нейросеть имеет внутренний детектор новизны - тест на сравнение предъявленного образа с содержимым памяти. При удачном поиске в памяти предъявленный образ классифицируется с одновременной уточняющей модификацией синаптических весов нейрона, выполнившего классификацию. Такую ситуацию называют возникновением адаптивного резонанса в сети в ответ на предъявление образа. Если резонанс не возникает в пределах некоторого заданного порогового уровня, то тест новизны считается успешным и образ воспринимается сетью как новый. Модификация весов нейронов, не испытавших резонанса, при этом не производится.
Важным понятием в теории адаптивного резонанса является так называемый
шаблон критических черт (critical feature pattern) информации. Этот термин показывает, что не все черты (детали), представленные в некотором образе, являются существенными для системы восприятия. Результат распознавания определяется присутствием специфичных критических особенностей в образе. Рассмотрим это на примере.
Рис. 11.1. Обе пары картинок на рис. 11.1 имеют общее свойство: в каждой из пар черная точка в правом нижнем углу заменена на белую, а белая точка в левом нижнем углу — на черную. Такое изменение для правой пары картинок (на рисунке — пара (b)), очевидно, является не более чем шумом, и оба образа (b) есть искаженные версии одного и того же изображения. Тем самым, измененные точки не являются для этого образа критическими.
Совершенно иная ситуация изображена на левой паре картинок (a). Здесь такое же изменение точек оказывается слишком существенным для образа, так что правая и левая картинки являются различными образами. Следовательно, одна и та же черта образа может быть не существенной в одном случае и критической — в другом. Задачей нейронной сети будет формирование правильной реакции в обоих случаях: "пластичное" решение о появлении нового образа для пары (a) и "стабильное" решение о совпадении картинок (b).
При этом выделение критической части информации должно получаться автоматически в процессе работы и обучения сети, на основе ее индивидуального опыта.
Отметим, что, в общем случае, одного лишь перечисления черт (даже если его предварительно выполнит человек, предполагая определенные условия дальнейшей работы сети) может оказаться недостаточно для успешного функционирования искусственной нейронной системы: критическими могут оказаться специфические связи между несколькими отдельными чертами.
Второй значительный вывод теории — необходимость самоадаптации алгоритма поиска образов в памяти. Нейронная сеть работает в постоянно изменяющихся условиях, так что предопределенная схема поиска, отвечающая некоторой структуре информации, может в дальнейшем оказаться неэффективной при изменении этой структуры. В теории адаптивного резонанса адекватность достигается введением специализированной ориентирующей системы, которая самосогласованно прекращает дальнейший поиск резонанса в памяти и принимает решение о новизне информации. Ориентирующая система также обучается в процессе работы.
При наличии резонанса теория АРТ предполагает возможность прямого доступа к образу памяти, откликнувшемуся на резонанс. В этом случает шаблон критических черт выступает ключем-прототипом для прямого доступа.
Эти и другие особенности теории адаптивного резонанса нашли свое отражение в нейросетевых архитектурах, которые получили такое же название — АРТ.
Упрощенная архитектура APT
На рис. 11.2 показана упрощенная конфигурация сети APT, представленная в виде пяти функциональных модулей. Она включает два слоя нейронов — так называемые "слой сравнения" и "слой распознавания". Приемник 1, Приемник 2 и Сброс обеспечивают управляющие функции, необходимые для обучения и классификации. Перед рассмотрением вопросов функционирования сети в целом необходимо рассмотреть отдельно назначения модулей; далее обсуждаются функции каждого из них.
Рис. 11.2. Слой сравнения. Слой сравнения получает двоичный входной вектор
и первоначально пропускает его неизмененным для формирования выходного вектора
. На более поздней фазе в распознающем слое вырабатывается двоичный вектор
, модифицирующий вектор
, как описано ниже.
Каждый нейрон в слое сравнения (см. рис. 11.3) получает три двоичных входа (0 или 1): (1) компонента
входного вектора
; (2) сигнал обратной связи
— взвешенная сумма выходов распознающего слоя; (3) вход от Приемника 1 (один и тот же сигнал подается на все нейроны этого слоя).
Рис. 11.3. Чтобы получить на выходе нейрона единичное значение, как минимум два из трех его входов должны равняться единице; в противном случае его выход будет нулевым. Таким образом, реализуется правило двух третей. Первоначально выходной сигнал
Приемника 1 установлен в единицу, обеспечивая один из входов, необходимых для возбуждения нейронов, а все компоненты вектора
установлены в 0; следовательно, в этот момент вектор
идентичен двоичному входному вектору
.
Слой распознавания.
Слой распознавания осуществляет классификацию входных векторов. Каждый нейрон в слое распознавания имеет соответствующий вектор весов
. Только один нейрон с весовым вектором, наиболее соответствующим входному вектору, возбуждается; все остальные заторможены.
Как показано на рис. 11.4, нейрон в распознающем слое имеет максимальную реакцию, если вектор
, являющийся выходом слоя сравнения, соответствует набору его весов; следовательно, веса представляют запомненный образ или экземпляр для категории входных векторов.
Такие веса являются действительными числами, а не двоичными величинами. Двоичная версия этого образа также запоминается в соответствующем наборе весов слоя сравнения (рис. 11.3); этот набор состоит из весов связей, соединяющих определенные нейроны слоя распознавания, по одному весу на каждый нейрон слоя сравнения.
Рис. 11.4. В процессе функционирования каждый нейрон слоя распознавания вычисляет свертку вектора собственных весов и входного вектора
. Нейрон, веса которого наиболее близки вектору
, будет иметь самый большой выход, тем самым выигрывая соревнование и одновременно затормаживая все остальные нейроны в слое. Как показано на рис. 11.5, нейроны внутри слоя распознавания взаимно соединены в латерально-тормозящую сеть. В простейшем случае (единственном, рассмотренном в данной работе) предусматривается, что только один нейрон в слое возбуждается в каждый момент времени (т. е. только нейрон с наивысшим уровнем активации будет иметь единичный выход; все остальные нейроны будут иметь нулевой выход). Эта конкуренция реализуется введением связей с отрицательными весами
с выхода каждого нейрона
на входы остальных нейронов. Таким образом, если нейрон имеет большой выход, он тормозит все остальные нейроны в слое. Кроме того, каждый нейрон имеет связь с положительным весом со своего выхода на свой вход. Если нейрон имеет единичный выходной уровень, эта обратная связь стремится усилить и поддержать его.
Приемник 2. , выход Приемника 2, равен единице, если входной вектор
имеет хотя бы одну единичную компоненту. Более точно,
является логическим ИЛИ от компонента вектора
. Приемник 1. Как и сигнал
, выходной сигнал
Приемника 1 равен 1, если хотя бы одна компонента двоичного входного вектора
равна единице; однако, если хотя бы одна компонента вектора
равна единице,
устанавливается в нуль. Таблица, определяющая эти соотношения:
ИЛИ от компонента вектора XИЛИ от компонента вектора RG1
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
| 0 | 1 | 0 |
Сброс. Модуль сброса измеряет сходство между векторами
и
. Если они отличаются сильнее, чем требует параметр сходства, вырабатывается сигнал сброса возбужденного нейрона в слое распознавания.
В процессе функционирования модуль сброса вычисляет сходство как отношение количества единиц в векторе
к их количеству в векторе
. Если это отношение ниже значения параметра сходства, вырабатывается сигнал сброса.
Функционирование сетей APT
Функционирование сетей APT
Рассмотрим более детально пять фаз процесса функционирования APT: инициализацию, распознавание, сравнение, поиск и обучение.
Инициализация. Перед началом процесса обучения сети все весовые векторы
и
, а также параметр сходства
, должны быть установлены в начальные значения.
Веса векторов
все инициализируются в одинаковые малые значения. Эти значения должны удовлетворять условию
где
— количество компонент входного вектора,
— константа, большая 1 (обычно
).
Эта величина является критической; если она слишком большая, сеть может распределить все нейроны распознающего слоя одному входному вектору.
Веса векторов
все инициализируются в единичные значения, так что
Эти значения также являются критическими; показано, что слишком маленькие веса приводят к отсутствию соответствия в слое сравнения и отсутствию обучения.
Параметр сходства
устанавливается в диапазоне от 0 до 1 в зависимости от требуемой степени сходства между запомненным образом и входным вектором. При высоких значениях
сеть относит к одному классу только очень слабо отличающиеся образы. С другой стороны, малое значение
заставляет сеть группировать образы, которые имеют слабое сходство между собой. Для выработки точной классификации полезна возможность изменять коэффициент сходства на протяжении процесса обучения, обеспечивая только грубую классификацию в начале процесса обучения и затем постепенно увеличивая коэффициент сходства.
Распознавание. Появление на входе сети входного вектора
инициализирует фазу распознавания. Так как вначале выходной вектор слоя распознавания отсутствует, сигнал
устанавливается в 1 функцией ИЛИ вектора
, обеспечивая все нейроны слоя сравнения одним из двух входов, необходимых для их возбуждения (как требует правило двух третей). В результате любая компонента вектора
, равная единице, обеспечивает второй единичный вход, заставляя соответствующий нейрон слоя сравнения возбуждаться и устанавливая его выход в единицу. Таким образом, в этот момент времени вектор
идентичен вектору
.
Как обсуждалось ранее, распознавание реализуется вычислением свертки для каждого нейрона слоя распознавания, определяемой следующим выражением:
где
— весовой вектор, соответствующий нейрону
в слое распознавания,
— выходной вектор нейронов слоя сравнения (в этот момент
равно
),
— возбуждение нейрона
в слое распознавания.
является пороговой функцией, определяемой следующим образом:
где
представляет собой порог.
В соответствии с алгоритмом обучения возможно, что другой нейрон в слое распознавания будет обеспечивать более хорошее соответствие, превышая требуемый уровень сходства, несмотря на то, что свертка между его весовым вектором и входным вектором может иметь меньшее значение. Пример такой ситуации показан ниже.
Если сходство ниже требуемого уровня, запомненные образы могут быть просмотрены, чтобы найти образ, наиболее соответствующий входному вектору. Если такой образ отсутствует, вводится новый несвязанный нейрон, который в дальнейшем будет обучен. Чтобы инициализировать поиск, сигнал сброса тормозит возбужденный нейрон в слое распознавания на время проведения поиска, сигнал
устанавливается в единицу и другой нейрон в слое распознавания выигрывает соревнование. Его запомненный образ затем проверяется на сходство, и процесс повторяется до тех пор, пока конкуренцию не выиграет нейрон из слоя распознавания со сходством, большим требуемого уровня (успешный поиск), либо пока все связанные нейроны не будут проверены и заторможены (неудачный поиск).
Неудачный поиск будет автоматически завершаться на несвязанном нейроне, так как его веса все равны единице, своему начальному значению. Поэтому правило двух третей приведет к идентичности вектора
входному вектору
, сходство
примет значение единицы и критерий сходства будет удовлетворен.
Обучение. Обучение представляет собой процесс, в котором набор входных векторов подается последовательно на вход сети, а веса сети изменяются при этом таким образом, чтобы сходные векторы активизировали соответствующие им нейроны. Заметим, что это - неуправляемое обучение, здесь нет учителя и нет целевого вектора, определяющего требуемый ответ.
Различают два вида обучения: медленное и быстрое. При медленном обучении входной вектор предъявляется настолько кратковременно, что веса сети не успевают достигнуть своих ассимптотических значений при единичном предъявлении. В этом случае значения весов будут определяться, скорее, статистическими характеристиками входных векторов, чем характеристиками какого-то одного входного вектора.
Динамика сети в процессе медленного обучения описывается дифференциальными уравнениями.
Быстрое обучение является специальным случаем медленного обучения, когда входной вектор прикладывается на достаточно длительный срок, чтобы позволить весам приблизиться к их окончательным значениям. В этом случае процесс обучения описывается только алгебраическими выражениями. Кроме того, компоненты весовых векторов
принимают двоичные значения, в отличие от непрерывного диапазона значений, требуемого в случае быстрого обучения. В данной лекции мы опишем только быстрое обучение.
Рассмотренный далее обучающий алгоритм используется как в случае успешного, так и в случае неуспешного поиска.
Пусть вектор весов
(связанный с возбужденным нейроном
распознающего слоя) равен нормализованной величине вектора
. Эти веса вычисляются следующим образом:
где
—
-я компонента выходного вектора слоя сравнения,
— номер выигравшего нейрона в слое распознавания,
— вес связи, соединяющей нейрон
в слое сравнения с нейроном
в слое распознавания,
— константа > 1 (обычно 2).
Компоненты вектора весов
, связанного с новым запомненным вектором, изменяются таким образом, что становятся равны соответствующим двоичным величинам вектора
:
где
является весом связи между выигравшим нейроном
в слое распознавания и нейроном
в слое сравнения.
Характеристики АРТ
Системы APT имеют ряд важных характеристик, не являющихся очевидными. Формулы и алгоритмы могут казаться произвольными, в то время как в действительности они были тщательно отобраны и соответствуют требованиям теорем относительно производительности систем APT. В данном разделе описываются некоторые алгоритмы APT, раскрывающие отдельные вопросы инициализации и обучения.
Инициализация весов bij
Инициализация весов
малыми значениями является существенной для корректного функционирования систем APT. Если они слишком большие, входной вес вектора, который уже был запомнен, станет скорее активизировать несвязанный нейрон, чем ранее обученный.
Установка этих весов в малые величины гарантирует, что несвязанные нейроны не будут получать возбуждения большего, чем обученные нейроны в слое распознавания. Используя предыдущий пример с
,
и
, произвольно установим
. С такими весами предъявление вектора, которому сеть была ранее обучена, приведет к более высокому уровню активации для правильно обученного нейрона в слое распознавания, чем для несвязанного нейрона. Например, для несвязанного нейрона
будет производить возбуждение 1/6, в то время как
будет производить возбуждение 1/2; и то, и другое ниже возбуждения для обученных нейронов.
Поиск. Может показаться, что в описанных алгоритмах отсутствует необходимость фазы поиска, за исключением случая, когда для входного вектора должен быть распределен новый несвязанный нейрон. Это не совсем так: предъявление входного вектора, сходного, но не абсолютно идентичного одному из запомненных образов, может при первом испытании не обеспечить выбор нейрона слоя распознавания с уровнем сходства, большим р, хотя такой нейрон будет существовать; и, тем самым, без поиска не обойтись.
Как и в предыдущем примере, предположим, что сеть обучается следующим двум векторам:
с векторами весов
, обученными следующим образом:
Теперь приложим входной вектор
. В этом случае возбуждение нейрона 1 в слое распознавания будет 1,0, а нейрона 2 только 2/3. Нейрон 1 выйдет победителем (хотя он не лучшим образом соответствует входному вектору), вектор
получит значение 1 1 0 0 0,
будет равно 1/2. Если уровень сходства установлен в 3/4, нейрон 1 будет заторможен и нейрон 2 выиграет состязание.
станет равным 1 1 0 0 0,
станет равным 1, критерий сходства будет удовлетворен, и поиск закончится.
Инициализация весовых векторов T
В ранее рассмотренном примере обучения сети можно было видеть, что правило двух третей приводит к вычислению вектора
как функции И между входным вектором
и выигравшим соревнование запомненным вектором
. Следовательно, любая компонента вектора
будет равна единице в том случае, если соответствующие компоненты обоих векторов равны единице. После обучения эти компоненты вектора
остаются единичными; все остальные устанавливаются в нуль.
Это объясняет, почему веса
должны инициализироваться единичными значениями. Если бы они были проинициализированы нулевыми значениями, все компоненты вектора
были бы нулевыми независимо от значений компонент входного вектора, и обучающий алгоритм предохранял бы веса от изменения их нулевых значений.
Обучение может рассматриваться как процесс "сокращения" компонент запомненных векторов, которые не соответствуют входным векторам. Процесс необратим, если вес однажды установлен в нуль, — обучающий алгоритм никогда не восстановит его единичное значение.
Это свойство имеет важное отношение к процессу обучения. Предположим, что группа точно соответствующих векторов должна быть классифицирована как одна категория, определяемая возбуждением одного нейрона в слое распознавания. Если эти векторы последовательно предъявляются сети, то при предъявлении первого будет распределяться нейрон распознающего слоя и его веса будут обучены с целью соответствия входному вектору. Обучение при предъявлении остальных векторов будет приводить к обнулению весов в тех позициях, которые имеют нулевые значения в любом из входных векторов. Таким образом, запомненный вектор представляет собой логическое пересечение всех обучающих векторов и может включать существенные характеристики данной категории весов. Новый вектор, включающий только существенные характеристики, будет соответствовать этой категории. Таким образом, сеть корректно распознает образ, никогда не виденный ранее, т. е. реализуется возможность, напоминающая процесс восприятия в мозге человека.
Настройка весовых векторов Bj
Выражение, описывающее процесс настройки весов, является центральным для описания процесса функционирования сетей APT:
Сумма в знаменателе представляет собой количество единиц на выходе слоя сравнения. Заданная величина может быть рассмотрена как "размер" этого вектора. В такой интерпретации "большие" векторы
производят более маленькие величины весов
, чем "маленькие" вектора
. Это свойство самомасштабирования делает возможным разделение двух векторов в случае, когда один вектор является поднабором другого, т. е. когда набор единичных компонент одного вектора составляет подмножество единичных компонент другого.
Чтобы проиллюстрировать проблему, которая возникает при отсутствии масштабирования, используемого в данном выражении, предположим, что сеть обучена двум приведенным ниже входным векторам, при этом каждому распределен нейрон в слое распознавания.
Заметим, что
является поднабором
. В отсутствие свойства масштабирования веса
и
получат значения, идентичные значениям входных векторов. Если начальные значения выбраны равными 1,0, веса образов будут иметь следующие значения: если
прикладывается повторно, оба нейрона в слое распознавания получают одинаковые активации; следовательно, нейрон 2 — ошибочный нейрон — выиграет конкуренцию.
Кроме выполнения некорректной классификации, может быть нарушен процесс обучения. Так как
равно 1 1 1 0 0, только первая единица соответствует единице входного вектора, и
устанавливается в 1 0 0 0 0; критерий сходства удовлетворяется и алгоритм обучения устанавливает вторую и третью единицы векторов
и
в нуль, разрушая запомненный образ.
Масштабирование весов
позволяет избежать такого нежелательного течения событий. Предположим, что используется значение
, тем самым определяя следующую формулу:
Подавая на вход сети вектор
, получим возбуждающее воздействие 1,0 для нейрона 1 в слое распознавания и
для нейрона 2; таким образом, нейрон 1 (правильный) выиграет соревнование. Аналогично, предъявление вектора
вызовет уровень возбуждения 1,0 для нейрона 1 и 3/2 для нейрона 2, тем самым снова правильно выбирая победителя.
Нерешенные проблемы и недостатки АРТ-1
Нейронные сети АРТ, при всех их замечательных свойствах, имеют ряд недостатков. Один из них — большое количество синаптических связей в сети, в расчете на единицу запоминаемой информации. При этом многие из весов этих связей (например, вектора
) оказываются после обучения нулевыми. Эту особенность следует учитывать при аппаратных реализациях.
Сеть АРТ-1 приспособлена к работе только с битовыми векторами. Это неудобство преодолевается в сетях АРТ-2 и АРТ-3. Однако в этих архитектурах, равно как и в АРТ-1, сохраняется главный недостаток АРТ — локализованность памяти. Память нейросети АРТ не является распределенной, и некоторой заданной категории отвечает вполне конкретный нейрон слоя распознавания. При его разрушении теряется память обо всей категории. Эта особенность, увы, не позволяет говорить о сетях адаптивной резонансной теории как о прямых моделях биологических нейронных сетей. Память последних является распределенной.
Пример обучения сети АРТ
В общих чертах сеть обучается при помощи изменения весов таким образом, что предъявление входного вектора заставляет сеть активизировать нейроны в слое распознавания, связанные со сходным запомненным вектором. Кроме этого, обучение проводится в форме, не разрушающей запомненные ранее образы, и предотвращает тем самым временную нестабильность. Эта задача управляется на уровне выбора критерия сходства. Новый входной образ (который сеть раньше не видела) не будет соответствовать запомненным образам с точки зрения параметра сходства, тем самым формируя новый запоминаемый образ. Входной образ, в достаточной степени соответствующий одному из запомненных образов, не будет формировать нового экземпляра, он просто будет модифицировать тот, на который он похож. В результате при соответствующем выборе критерия сходства предотвращается запоминание ранее изученных образов и временная нестабильность.
На рис. 12.1 показан типичный сеанс обучения сети APT. Буквы изображены состоящими из маленьких квадратов, каждая буква размерностью
. Каждый квадрат в левой части представляет компоненту вектора
с единичным значением, не показанные квадраты являются компонентами с нулевыми значениями. Буквы справа представляют запомненные образы, каждый является набором величин компонент вектора
.
увеличить изображение
Рис. 12.1. Вначале на вход заново проинициированной системы подается буква "С". Так как отсутствуют запомненные образы, фаза поиска заканчивается неуспешно; новый нейрон выделяется в слое распознавания, и веса
устанавливаются равными соответствующим компонентам входного вектора, при этом веса
представляют масштабированную версию входного вектора.
Далее предъявляется буква "В". Она также вызывает неуспешное окончание фазы поиска и выделение нового нейрона. Аналогичный процесс повторяется для буквы "Е". Затем слабо искаженная версия буквы "Е" подается на вход сети. Она достаточно точно соответствует запомненной букве "Е", чтобы выдержать проверку на сходство, поэтому используется для обучения сети.
Отсутствующий пиксель в нижней ножке буквы "Е" устанавливает в 0 соответствующую компоненту вектора
, заставляя обучающий алгоритм установить этот вес запомненного образа в нуль, тем самым воспроизводя искажения в запомненном образе. Дополнительный изолированный квадрат не изменяет запомненного образа, так как не соответствует единице в запомненном образе.
Четвертым символом является буква "Е" с двумя различными искажениями. Она не соответствует ранее запомненному образу (
меньше чем
), поэтому для ее запоминания выделяется новый нейрон.
Этот пример иллюстрирует важность выбора корректного значения критерия сходства. Если значение критерия слишком велико, большинство образов не будут подтверждать сходство с ранее запомненными и сеть будет выделять новый нейрон для каждого из них. Такой процесс приводит к плохому обобщению в сети, в результате даже незначительные изменения одного образа будут создавать отдельные новые категории; далее количество категорий увеличивается, все доступные нейроны распределяются, и способность системы к восприятию новых данных теряется. Наоборот, если критерий сходства слишком мал, сильно различающиеся образы будут группироваться вместе, искажая запомненный образ, до тех пор, пока в результате не получится очень малое сходство с одним из них.
К сожалению, отсутствует теоретическое обоснование выбора критерия сходства, и в каждом конкретном случае необходимо решить "волевым усилием", какая степень сходства должна быть принята для отнесения образов к одной категории. Границы между категориями часто неясны, и решение задачи для большого набора входных векторов может быть чрезмерно трудным.
Гроссберг предложил процедуру с использованием обратной связи для настройки коэффициента сходства, вносящую, однако, некоторые искажения в результаты классификации как "наказание" за внешнее вмешательство с целью увеличения коэффициента сходства. Такие системы требуют правил оценки корректности для производимой ими классификации.
Теоремы APT
Гроссберг доказал некоторые теоремы, которые описывают характеристики сетей APT. Четыре результата, приведенные ниже, являются одними из наиболее важных:
- После стабилизации процесса обучения предъявление одного из обучающих векторов (или вектора с существенными характеристиками категории) будет активизировать требуемый нейрон слоя распознавания без поиска. Такая характеристика "прямого доступа" обеспечивает быстрый доступ к предварительно изученным образам.
- Процесс поиска является устойчивым. После определения выигравшего нейрона в сети не будет возбуждений других нейронов из-за изменения векторов выхода слоя сравнения ; только сигнал сброса может вызвать такие изменения.
- Процесс обучения является устойчивым. Обучение не будет вызывать переключения с одного возбужденного нейрона слоя распознавания на другой.
- Процесс обучения конечен. Любая последовательность произвольных входных векторов будет производить стабильный набор весов после конечного количества обучающих серий. Повторяющиеся последовательности обучающих векторов не будут приводить к циклическому изменению весов.
Структура сети
Когнитрон как модель зрительной коры мозга
Анализ, проводимый до этого момента, был упрощен рассмотрением только одномерных слоев. В действительности когнитрон конструировался как каскад двумерных слоев, причем в любом слое каждый нейрон получает входы от набора нейронов на части двумерного плана, составляющей его область связи в предыдущем слое.
С этой точки зрения когнитрон организован подобно зрительной коре человеческого мозга, которая представляет собой трехмерную структуру, состоящую из нескольких различных слоев. Оказывается, что каждый слой коры головного мозга реализует различные уровни обобщения; входной слой чувствителен к простым образам, таким как линии и их ориентации в определенных областях "поля зрения", в то время как реакция других слоев является более сложной, абстрактной и независимой от позиции образа.
Аналогичные функции реализованы в когнитроне путем моделирования организации зрительной коры. На рис. 13.5 показано, что нейроны когнитрона в слое 2 реагируют на определенную небольшую область входного слоя 1. Нейрон в слое 3 связан с набором нейронов слоя 2, тем самым реагируя косвенно на более широкий набор нейронов слоя 1. Далее, нейроны в последующих слоях чувствительны к более широким областям входного образа до тех пор, пока в выходном слое каждый нейрон не станет реагировать на все входное поле.
Рис. 13.5. Если область связи нейронов имеет постоянный размер во всех слоях, требуется большое количество слоев для перекрытия всего входного поля выходными нейронами. Количество слоев может быть уменьшено, если расширить область связи в последующих слоях. К сожалению, в результате может произойти настолько большое перекрытие областей связи, что нейроны выходного слоя будут иметь одинаковую реакцию. Для решения этой проблемы может быть использовано расширение области конкуренции. Так как в данной области конкуренции может возбудиться только один узел, влияние малой разницы в реакциях нейронов выходного слоя усиливается.
В альтернативном варианте связи с предыдущим слоем могут быть распределены вероятностно с большинством синаптических связей в ограниченной области и с более длинными соединениями, встречающимися намного реже. Здесь смоделировано вероятностное распределение нейронов, обнаруженное в мозге. В когнитроне это позволяет каждому нейрону выходного слоя реагировать на полное входное поле при наличии ограниченного количества слоев.
Обучение когнитрона
Так как когнитрон реализован в виде многослойной сети, возникают сложные проблемы обучения, связанные с выбранной структурой. Получая обучающий набор входных образов, сеть самоорганизуется посредством изменения силы синаптических связей. При этом отсутствуют предварительно определенные выходные образы, представляющие требуемую реакцию сети, однако сеть самонастраивается с целью распознавания входных образов с замечательной точностью.
Алгоритм обучения когнитрона является концептуально привлекательным. В заданной области слоя обучается только наиболее сильно возбужденный нейрон. Автор сравнивает это с "элитным обучением", при котором обучаются только "умные" элементы. Те нейроны, которые уже хорошо обучены, что выражается силой их возбуждения, получат приращение силы своих синапсов с целью дальнейшего усиления своего возбуждения.
На рис. 13.2 показано, что области связи соседних узлов значительно перекрываются. Такое расточительное дублирование функций оправдывается взаимной конкуренцией между ближайшими узлами. Даже если узлы в начальный момент имеют абсолютно идентичный выход, небольшие отклонения всегда случаются; один из узлов всегда будет иметь более сильную реакцию на входной образ, чем соседние. Его сильное возбуждение будет оказывать сдерживающее воздействие на возбуждение соседних узлов, и усиливаться будут только его синапсы — синапсы соседних узлов останутся неизменными.
Рис. 13.2. Возбуждающий нейрон.
Можно сказать, что выход возбуждающего нейрона в когнитроне определяется отношением его возбуждающих входов к тормозящим входам. Эта необычная функция имеет важные преимущества, как практические, так и теоретические. Суммарный возбуждающий вход в нейрон является взвешенной суммой входов от возбуждающих входов в предшествующем слое. Аналогично суммарный вход является взвешенной суммой входов от всех тормозящих нейронов. В символьном виде
где
— вес
-го возбуждающего синапса,
— выход
-го возбуждающего нейрона,
— вес
-го торозящего синапса,
— выход
-го торозящего нейрона.
Заметим, что веса имеют только положительные значения. Выход нейрона затем вычисляется следующим образом:
Предполагая, что NET имеет положительное значение, можно записать:
Когда тормозящий вход мал (
), OUT может быть аппроксимировано как
что соответствует выражению для обычного линейного порогового элемента (с нулевым порогом).
Таким образом,
где
,
— возбуждающий вес
.
Процедура обучения.
Как объяснялось ранее, веса возбуждающих нейронов изменяются только тогда, когда нейрон возбужден сильнее, чем любой из узлов в области конкуренции. Если это так, изменение в процессе обучения любого из его весов может быть определено следующим образом:
где
— тормозящий вес связи нейрона
в слое 1 с тормозящим нейроном
,
— выход нейрона
в слое 1,
— возбуждающий вес
,
— нормирующий коэффициент обучения.
Изменение тормозящих весов нейрона
в слое 2 пропорционально отношению взвешенной суммы возбуждающих входов к удвоенному тормозящему входу. Вычисления проводятся по формуле
Когда возбужденных нейронов в области конкуренции нет, для изменения весов используются другие выражения. Это необходимо, поскольку процесс обучения начинается с нулевыми значениями весов; поэтому первоначально нет возбужденных нейронов ни в одной области конкуренции, и обучение производиться не может. Во всех случаях, когда победителя в области конкуренции нейронов нет, изменение весов нейронов вычисляется следующим образом:
где
— положительный обучающий коэффициент, меньший, чем
.
Приведенная стратегия настройки гарантирует, что узлы с большой реакцией заставляют возбуждающие синапсы, которыми они управляют, увеличиваться сильнее, чем тормозящие синапсы. Верна и обратная зависимость: узлы, имеющие малую реакцию, вызывают малое возрастание возбуждающих синапсов, но большее возрастание тормозящих синапсов. Таким образом, если узел 1 в слое 1 имеет больший выход, синапс
возрастет больше, чем синапс
. И наоборот, узлы, имеющие малый выход, обеспечат малую величину для приращения
. Однако другие узлы в области связи будут возбуждаться, тем самым увеличивая сигнал INHIB и значения
.
В процессе обучения веса каждого узла в слое 2 настраиваются таким образом, что вместе они составляют шаблон, соответствующий образам, которые часто предъявляются в процессе обучения. При предъявлении сходного образа шаблон соответствует ему и узел вырабатывает большой выходной сигнал.
Сильно отличающийся образ вызывает малый выход и обычно подавляется конкуренцией.
Латеральное торможение. На рис. 13.3 показано, что каждый нейрон слоя 2 получает латеральное торможение от нейронов, расположенных в его области конкуренции. Тормозящий нейрон суммирует входы от всех нейронов в области конкуренции и вырабатывает сигнал, стремящийся к торможению целевого нейрона. Этот метод является эффектным, но с вычислительной точки зрения медленным. Он охватывает большую систему с обратной связью, включающую каждый нейрон в слое; для его стабилизации может потребоваться большое количество вычислительных итераций.
Для ускорения вычислений используется остроумный метод ускоренного латерального торможения (см. рис. 13.4). Здесь дополнительный узел латерального торможения обрабатывает выход каждого возбуждающего узла для моделирования требуемого латерального торможения. Сначала он определяет сигнал, равный суммарному тормозящему влиянию в области конкуренции:
где
— выход
-го нейрона в области конкуренции,
— вес связи от этого нейрона к латерально-тормозящему нейрону;
выбраны таким образом, что
.
Рис. 13.4. Выход тормозящего нейрона
затем вычисляется следующим образом:
Благодаря тому что все вычисления, связанные с таким типом латерального торможения, являются нерекурсивными, они могут быть проведены за один проход для слоя. Такой подход позволяет весьма эффективно экономить вычисления.
Метод ускоренного латерального торможения решает и другую сложную проблему. Предположим, что узел в слое 2 возбуждается сильно, но возбуждение соседних узлов уменьшается постепенно с увеличением расстояния. При использовании обычного латерального торможения будет обучаться только центральный узел: другие узлы определят, что центральный узел в их области конкуренции имеет более высокий выход. С предлагаемой системой латерального торможения такой ситуации случиться не может. Множество узлов может обучаться одновременно, и процесс обучения становится более достоверным.
Результаты моделирования
В качестве примера рассмотрим компьютерное моделирование четырехслойного когнитрона, предназначенного для целей распознавания образов. Каждый слой состоит из массива
возбуждающих нейронов и такого же количества тормозящих нейронов. Область связи представляет собой квадрат, включающий
нейронов. Область конкуренции имеет форму ромба высотой и шириной в 5 нейронов. Латеральное торможение охватывает область
нейронов. Нормирующие параметры обучения установлены таким образом, что
и
. Веса синапсов проинициализированы в 0.
Сеть обучалась путем предъявления на входном слое пяти стимулирующих образов, представляющих собой изображения арабских цифр от 0 до 4. Веса сети настраивались после предъявления каждой цифры, входной набор подавался на вход сети циклически до тех пор, пока каждый образ не был предъявлен суммарно 20 раз.
Рис. 13.6. Эффективность процесса обучения оценивалась путем запуска сети в реверсивном режиме; выходные образы, являющиеся реакцией сети, подавались на выходные нейроны и распространялись обратно к входному слою. Образы, полученные во входном слое, затем сравнивались с исходным входным образом. Чтобы сделать это, обычные однонаправленные связи принимались проводящими в обратном направлении и латеральное торможение отключалось. На рис. 13.6 приведены типичные результаты тестирования. В столбце 2 показаны образы, произведенные каждой цифрой на выходе сети; они возвращались обратно, вырабатывая на входе сети образ, близкий к точной копии исходного входного образа. Для столбца 4 на выход сети подавался только выход нейрона, имеющего максимальное возбуждение. Результирующие образы в точности те же, что и в случае подачи полного выходного образа, за исключением цифры 0, для которой узел с максимальным выходом располагался на периферии и не покрывал полностью входного поля.
Рис. 13.7.
Структура сети
Когнитрон состоит из иерархически связанных слоев нейронов двух типов — тормозящих и возбуждающих. Состояние возбуждения каждого нейрона определяется суммой его тормозящих и возбуждающих входов. Синаптические связи идут от нейронов одного слоя (далее слоя 1) к следующему (слою 2). Относительно данной синаптической связи соответствующий нейрон слоя 1 является пресинаптическим, а нейрон второго слоя — постсинаптическим. Постсинаптические нейроны связаны не со всеми нейронами 1-го слоя, а лишь с теми, которые принадлежат их локальной
области связей. Области связей близких друг к другу постсинаптических нейронов перекрываются, поэтому активность данного пресинаптического нейрона будет сказываться на все более расширяющейся области постсинаптических нейронов следующих слоев иерархии.
Рис. 13.1. Вход возбуждающего постсинаптического нейрона (на рис. 13.1 — нейрон
) определяется отношением суммы
его возбуждающих входов (
,
и
) к сумме
тормозящих входов (
и вход от нейрона
):
где
— возбуждающие входы с весами
,
— тормозящие входы с весами
. Все веса имеют положительные значения. По значениям
и
вычисляется суммарное воздействие на
-й нейрон:
. Его выходная активность
затем устанавливается равной
, если
. В противном случае выход устанавливается равным нулю. Анализ формулы для суммарного воздействия показывает, что при малом торможении
оно равно разности возбуждающего и тормозящего сигналов. В случае же, когда оба эти сигнала велики, воздействие ограничивается отношением. Такие особенности реакции соответствуют реакциям биологических нейронов, способных работать в широком диапазоне воздействий.
Пресинаптические тормозящие нейроны имеют ту же область связей, что и рассматриваемый возбуждающий постсинаптический нейрон
. Веса таких тормозящих нейронов (
,
и
) являются заданными и не изменяются при обучении. Их сумма равна единице, и таким образом, выход тормозного пресинаптического нейрона равен средней активности возбуждающих пресинаптических нейронов в области связей:
Обобщение
Обобщение
Каждый нейрон в слое, близком к входному, реагирует на определенные образы в определенном месте, такие как угол с заданной ориентацией в заданной позиции. Каждый слой в результате имеет более абстрактную и менее специфичную реакцию по сравнению с предшествующим; выходной слой реагирует на полные образы с высокой степенью независимости от их положения, размера и ориентации во входном поле. При использовании в качестве классификатора, комплексный узел выходного слоя с наибольшей реакцией реализует выделение соответствующего образа во входном поле. В идеальном случае это выделение нечувствительно к позиции, ориентации, размерам или другим искажениям.
Обучение
Только простые узлы имеют настраиваемые веса. Это веса связей, соединяющих узел с комплексными узлами в предыдущем слое и имеющих изменяемую силу синапсов, которая настраивается таким образом, чтобы выработать максимальную реакцию на определенные стимулирующие свойства. Некоторые из этих синапсов являются возбуждающими и стремятся увеличить выход узлов, в то время как другие являются тормозящими и уменьшают выход узла.
Рис. 14.4. На рис. 14.4 показана полная структура синаптических связей между простым узлом и комплексными узлами в предшествующем слое. Каждый простой узел реагирует только на набор комплексных узлов внутри своей рецептивной области. Кроме того, существует тормозящий узел, реагирующий на те же самые комплексные узлы. Веса синапсов тормозящего узла не обучаются — они выбираются таким образом, чтобы узел реагировал на среднюю величину выходов всех узлов, к которым он подключен. Единственный тормозящий синапс от тормозящего узла к простому узлу обучается, как и другие синапсы.
Обучение без учителя. Для обучения неокогнитрона на вход сети подается образ, который необходимо распознать, и веса синапсов настраиваются слой за слоем, начиная с набора простых узлов, ближайших ко входу. Величина синаптической связи от каждого комплексного узла к данному простому узлу увеличивается тогда и только тогда, если удовлетворяются следующие два условия:
- комплексный узел реагирует;
- простой узел реагирует более сильно, чем любой из его соседних (внутри его области конкуренции).
Таким образом, простой узел обучается реагировать более сильно на образы, появляющиеся наиболее часто в его рецептивной области; это соответствует результатам опытов с котятами. Если распознаваемый образ отсутствует на входе, тормозящий узел предохраняет от случайного возбуждения.
Математическое описание процесса обучения и метод реализации латерального торможения аналогичны описанным для когнитрона, поэтому здесь они не повторяются. Необходимо отметить, что выходы простых и комплексных узлов являются аналоговыми, непрерывными и линейными и что алгоритм обучения предполагает их неотрицательность.
Когда выбирается простой узел, веса синапсов которого должны быть увеличены, он рассматривается как представитель всех узлов в плоскости, вызывая увеличение их синаптических связей на том же самом образе. Следовательно, все узлы в плоскости обучаются распознавать одни и те же свойства и после обучения будут делать это независимо от позиции образа в поле комплексных узлов в предшествующем слое.
Эта система имеет ценную способность к самовосстановлению. Если один узел выйдет из строя, будет найден другой, реагирующий более сильно, и этот узел будет обучен распознаванию входного образа, тем самым перекрывая действия своего "отказавшего товарища".
Обучение с учителем.
Здесь требуемая реакция каждого слоя заранее определяется экспериментатором. Затем веса настраиваются с использованием обычных методов для выработки требуемой реакции. Например, входной слой настраивался для распознавания отрезков линий в различных ориентациях во многом аналогично первому слою обработки изображения в зрительной коре головного мозга. Последующие слои обучались реагировать на более сложные и абстрактные свойства до тех пор, пока в выходном слое не был выделен требуемый образ. При обработке сети, превосходно распознающей рукописные арабские цифры, экспериментаторы отказались от попыток достичь биологического правдоподобия, обращая внимание только на максимальную точности результатов системы.
Реализация обучения.
В обычных конфигурациях рецептивное поле каждого нейрона возрастает при переходе к следующему слою. Однако количество нейронов в слое будет уменьшаться при переходе от входных к выходным слоям. Наконец, выходной слой имеет только один нейрон в плоскости сложных узлов. Каждый такой нейрон представляет определенный входной образ, которому сеть была обучена. В процессе классификации входной образ подается на вход неокогнитрона и вычисляются выходы слой за слоем, начиная с входного. Так как только небольшая часть входного образа подается на вход каждого простого узла входного слоя, некоторые простые узлы регистрируют наличие характеристик, которым они обучены, и возбуждаются.В следующем слое выделяются более сложные характеристики как определенные комбинации выходов комплексных узлов. Слой за слоем свойства комбинируются во все возрастающем диапазоне; выделяются более общие характеристики и уменьшается позиционная чувствительность.
В идеальном случае только один нейрон выходного слоя должен возбудиться. В действительности обычно будут возбуждаться несколько нейронов с различной силой, и входной образ должен быть определен с учетом соотношения их выходов. Если используется сила латерального торможения, возбуждаться будет только нейрон с максимальным выходом. Однако это часто является не лучшим вариантом. На практике простая функция от небольшой группы наиболее сильно возбужденных нейронов будет удачно улучшать точность классификации.
Структура
Неокогнитрон имеет иерархическую структуру, ориентированную на моделирование зрительной системы человека. Он состоит из последовательности обрабатывающих слоев, организованных в иерархическую структуру (см. рис. 14.1). Входной образ подается на первый слой и передается через плоскости, соответствующие последующим слоям, до тех пор, пока не достигнет выходного слоя, в котором идентифицируется распознаваемый образ.
Рис. 14.1. Структура неокогнитрона трудна для представления в виде диаграммы, но концептуально проста. Чтобы подчеркнуть его многоуровневость (с целью упрощения графического представления), используется анализ верхнего уровня. Неокогнитрон показан состоящим из слоев, слои состоят из набора плоскостей и плоскости состоят из узлов.
Слои. Каждый слой неокогнитрона состоит из двух массивов плоскостей (см. рис. 14.2). Массив плоскостей, содержащих простые узлы, получает выходы предыдущего слоя, выделяет определенные образы и затем передает их в массив плоскостей, содержащих комплексные узлы, где образы обрабатываются так, чтобы их позиционная зависимость была уменьшена.
Рис. 14.2.
д. Если должны быть выделены иные буквы (и их искаженные версии), дополнительные плоскости требуются для каждой из них.
Рецептивные области узлов в каждой плоскости простых узлов перекрываются так, чтобы покрыть весь входной образ этого слоя. Каждый узел получает входы от соответствующих областей всех плоскостей комплексных узлов в предыдущем слое. Следовательно, простой узел реагирует на появление своего образа в любой сложной плоскости предыдущего слоя, если он окажется внутри его рецептивной области.
Комплексные узлы.
Задача комплексных узлов — уменьшить зависимость реакции системы от позиции образов во входном поле. Для достижения этого каждый комплексный узел получает в качестве входного образа выходы набора простых узлов из соответствующей плоскости того же слоя. Эти простые узлы покрывают непрерывную область простой плоскости, называемую рецептивной областью комплексного узла. Возбуждение любого простого узла в этой области является достаточным для возбуждения данного комплексного узла. Таким образом, комплексный узел реагирует на тот же образ, что и простые узлы в соответствующей ему плоскости, но он менее чувствителен к позиции образа, чем любой из них.
Следовательно, каждый слой комплексных узлов реагирует на более широкую область входного образа, чем это происходило в предшествующих слоях. Эта прогрессия возрастает линейно от слоя к слою, приводя к требуемому уменьшению позиционной чувствительности системы в целом.
Вычисления
Простые узлы в неокогнитроне имеют точно такие же характеристики, что и описанные для когнитрона, и используют те же формулы для определения их выхода. Здесь мы не будем их повторять.
Тормозящий узел вырабатывает выход, пропорциональный квадратному корню из взвешенной суммы квадратов его входов. Заметим, что входы в тормозящий узел идентичны входам соответствующего простого узла и область включает область ответа во всех комплексных плоскостях. В символьном виде можем записать
где
— выход тормозящего узла,
— область над всеми комплексными узлами, с которыми связан тормозящий узел,
— вес
-й синаптической связи от комплексного узла к тормозящему узлу,
— выход
-го комплексного узла.
Веса
выбираются монотонно уменьшающимися с увеличением расстояния от центра области реакции, при этом сумма их значений должна быть равна единице.
и неокогнитрон производят большое впечатление
Как когнитрон, так и неокогнитрон производят большое впечатление той точностью, с которой они моделируют биологическую нервную систему. Тот факт, что эти системы показывают результаты, имитирующие некоторые аспекты способностей человека к обучению и познанию, наводит на мысль, что наше понимание функций мозга приближается к уровню, способному принести практическую пользу.
Неокогнитрон является сложной системой и требует существенных вычислительных ресурсов. По этим причинам кажется маловероятным, что такие системы реализуют оптимальное инженерное решение сегодняшних проблем распознавания образов. Однако с 1960 г. стоимость вычислений уменьшалась в два раза каждые два-три года - тенденция, которая, по всей вероятности, сохранится в течение как минимум ближайших десяти лет. Несмотря на то, что многие подходы, казавшиеся нереализуемыми несколько лет назад, являются общепринятыми сегодня и могут оказаться тривиальными через несколько лет, реализация моделей неокогнитрона на универсальных компьютерах является бесперспективной. Необходимо достигнуть тысячекратных улучшений стоимости и производительности компьютеров за счет специализации архитектуры и внедрения технологии СБИС, чтобы сделать неокогнитрон практической системой для решения сложных проблем распознавания образов; однако, ни эта, ни какая-либо другая модель искусственных нейронных сетей не должны отвергаться только на основании их высоких вычислительных требований.
Обучение с учителем и без учителя
Алгоритм обучения Хэбба
По существу, Хэбб предположил, что синаптическое соединение двух нейронов усиливается, если оба эти нейрона возбуждены. Это можно представить как усиление синапса в соответствии с корреляцией уровней возбужденных нейронов, соединяемых данным синапсом. Поэтому алгоритм обучения Хэбба иногда называется корреляционным алгоритмом.
Идея алгоритма выражается следующим равенством:
где
— сила синапса от нейрона
к нейрону
в момент времени
;
— уровень возбуждения пресинаптического нейрона;
— уровень возбуждения постсинаптического нейрона.
Концепция Хэбба отвечает на сложный вопрос: каким образом обучение может проводиться без учителя? В методе Хэбба обучение является исключительно локальным явлением, охватывающим только два нейрона и соединяющий их синапс; не требуется глобальной системы обратной связи для развития нейронных образований.
Последующее использование метода Хэбба для обучения нейронных сетей привело к большим успехам, но наряду с этим показало ограниченность метода; некоторые образы просто не могут использоваться для обучения этим методом. В результате появилось большое количество расширений и нововведений, большинство из которых в значительной степени основано на работе Хэбба.
Метод дифференциального обучения Хэбба
Метод сигнального обучения Хэбба предполагает вычисление свертки предыдущих изменений выходов для определения изменения весов. Данный же метод, называемый методом дифференциального обучения Хэбба, использует следующее равенство:
где
— сила синапса от нейрона
к нейрону
в момент времени
,
— выходной уровень пресинаптического нейрона в момент времени
,
— выходной уровень постсинаптического нейрона в момент времени
.
Метод обучения Хэбба
Работы Д.О. Хэбба обеспечили основу для большинства алгоритмов обучения, которые были разработаны позже. Хэбб определял, что обучение в биологических системах происходит посредством некоторых физических изменений в нейронах, однако не определил, как это осуществляется в действительности. Основываясь на физиологических и психологических исследованиях, Хэбб интуитивно выдвинул гипотезу о том, каким образом может обучаться набор биологических нейронов. Его теория предполагает только локальное взаимодействие между нейронами при отсутствии глобального учителя; следовательно, обучение является неуправляемым. Несмотря на то, что его работа не включает математического анализа, идеи, изложенные в ней, настолько ясны и изящны, что получили статус универсальных допущений. Его книга стала классической и широко изучается специалистами, которых серьезно интересует эта область.
Метод обучения Уидроу—Хоффа
Как мы видели, персептрон ограничивается бинарными выходами. Б.Уидроу вместе со студентом университета М.Хоффом расширили алгоритм обучения персептрона для случая непрерывных выходов, используя сигмоидальную функцию. Второй их впечатляющий результат — разработка математического доказательства, что сеть при определенных условиях будет сходиться к любой функции, которую она может представить. Их первая модель — Адалин — имеет один выходной нейрон, более поздняя модель — Мадалин — расширяет ее для случая с многими выходными нейронами.
Выражения, описывающие процесс обучения Адалина, очень схожи с персептронными. Существенные отличия имеются в четвертом шаге, где используются непрерывные сигналы NET вместо бинарных OUT. Модифицированный шаг 4 в этом случае реализуется следующим образом:
4. Вычисляется ошибка для каждого нейрона посредством вычитания полученного выхода из требуемого выхода:
Метод сигнального обучения Хэбба
Как мы видели, выход NET простого искусственного нейрона является взвешенной суммой его входов. Это может быть выражено следующим образом:
где
— выход NET нейрона
,
— выход нейрона
,
— вес связи нейрона
с нейроном
.
Можно показать, что в этом случае линейная многослойная сеть не является более мощной, чем однослойная сеть; рассматриваемые возможности сети могут быть улучшены только введением нелинейности в передаточную функцию нейрона. Говорят, что сеть, использующая сигмоидальную функцию активации и метод обучения Хэбба, обучается по сигнальному методу Хэбба. В этом случае уравнение Хэбба модифицируется следующим образом:
где
— сила синапса от нейрона
к нейрону
в момент времени
,
— выходной уровень пресинаптического нейрона равный
,
— выходной уровень постсинаптического нейрона, равный
.
Метод статистического обучения
Однослойные сети несколько ограниченны с точки зрения задач, которые они могут решать; однако, в течение многих лет отсутствовали методы обучения многослойных сетей. Статистическое обучение является как раз таким методом и обеспечивает путь решения этих проблем.
По аналогии, обучение сети статистическими способами подобно процессу отжига металла. В процессе отжига температура металла вначале повышается, пока атомы не начнут перемещаться почти свободно. Затем температура постепенно уменьшается и атомы непрерывно стремятся к минимальной энергетической конфигурации. При некоторой низкой температуре атомы переходят на низший энергетический уровень.
В искусственных нейронных сетях полная величина энергии сети определяется как функция определенного множества сетевых переменных. Искусственная переменная температуры инициируется в большую величину, тем самым позволяя сетевым переменным претерпевать большие случайные изменения. Изменения, приводящие к уменьшению полной энергии сети, сохраняются; изменения, приводящие к увеличению энергии, сохраняются в соответствии с вероятностной функцией. Искусственная температура постепенно уменьшается с течением времени, и сеть конвергирует в состояние минимума полной энергии.
Существует много вариаций на тему статистического обучения. Например, глобальная энергия может быть определена как средняя квадратичная ошибка между полученным и желаемым выходным вектором из обучаемого множества, а переменными могут быть веса сети. В этом случае сеть может быть обучена, начиная с высокой искусственной температуры, путем выполнения следующих шагов:
- Подать обучающий вектор на вход сети и вычислить выход согласно соответствующим сетевым правилам.
- Вычислить значение средней квадратичной ошибки между желаемым и полученным выходными векторами.
- Изменить сетевые веса случайным образом, затем вычислить новый выход и результирующую ошибку. Если ошибка уменьшилась, оставить измененный вес; если ошибка увеличилась, оставить измененный вес с вероятностью, определяемой распределением Больцмана. Если изменения весов не производится, то вернуть вес к его предыдущему значению.
- Повторить шаги с 1 по 3, постепенно уменьшая искусственную температуру.
Если величина случайного изменения весов определяется в соответствии с распределением Больцмана, сходимость к глобальному минимуму будет осуществляться только в том случае, когда температура изменяется обратно пропорционально логарифму прошедшего времени обучения. Это может привести к невероятной длительности процесса обучения, поэтому большое внимание уделялось поиску более быстрых методов. Выбором размера шага в соответствии с распределением Коши может быть достигнуто уменьшение температуры, обратно пропорциональное обучающему времени, что существенно уменьшает время, требуемое для сходимости.
Заметим, что существует класс статистических методов для нейронных сетей, в которых переменными сети являются выходы нейронов, а не веса.
В 1957 г. Р.Розенблатт разработал модель, которая вызвала большой интерес у исследователей. Несмотря на некоторые ограничения ее исходной формы, она стала основой для многих современных, наиболее сложных алгоритмов обучения с учителем.
Персептрон является двухуровневой нерекуррентной сетью, вид которой показан на рис. 15.3. Она использует алгоритм обучения с учителем; другими словами, обучающая выборка состоит из множества входных векторов, для каждого из которых указан свой требуемый вектор цели. Компоненты входного вектора представлены непрерывным диапазоном значений; компоненты вектора цели являются двоичными величинами (0 или 1). После обучения сеть получает на входе набор непрерывных входов и вырабатывает требуемый выход в виде вектора с бинарными компонентами.
Рис. 15.3. Обучение осуществляется следующим образом:
- Рандомизируются все веса сети в малые величины.
На вход сети подается входной обучающий вектор и вычисляется сигнал NET от каждого нейрона, используя стандартное выражение
Вычисляется значение пороговой функции активации для сигнала NET от каждого нейрона следующим образом:
Здесь представляет собой порог, соответствующий нейрону (в простейшем случае все нейроны имеют один и тот же порог).
Вычисляется ошибка для каждого нейрона посредством вычитания полученного выхода из требуемого выхода:
Каждый вес модифицируется следующим образом:
- Повторяются шаги со второго по пятый до тех пор, пока ошибка не станет достаточно малой.
Обучение с учителем и без учителя
Обучающие алгоритмы могут быть классифицированы как алгоритмы обучения с учителем
и обучения без учителя. В первом случае существует учитель, который предъявляет входные образы сети, сравнивает результирующие выходы с требуемыми, а затем настраивает веса сети таким образом, чтобы уменьшить различия. Трудно представить такой обучающий механизм в биологических системах; следовательно, хотя данный подход привел к большим успехам при решении прикладных задач, он отвергается теми исследователями, кто полагает, что искусственные нейронные сети обязательно должны использовать те же механизмы, что и человеческий мозг.
Во втором случае обучение проводится без учителя: при предъявлении входных образов сеть самоорганизуется, настраивая свои веса согласно определенному алгоритму. Требуемый выход в процессе обучения не указан, поэтому результаты определения возбуждающих образов для конкретных нейронов непредсказуемы. При этом, однако, сеть организуется в форме, отражающей существенные характеристики обучающего набора. Например, входные образы могут быть классифицированы согласно степени их сходства так, что образы одного класса активизируют один и тот же выходной нейрон.
Обучение входной звезды
Входная звезда выполняет распознавание образов, т. е. она обучается реагировать на определенный входной вектор
и ни на какой другой. Это обучение реализуется, настраивая веса таким образом, чтобы они соответствовали входному вектору. Выход входной звезды определяется как взвешенная сумма ее входов, это описано в предыдущих разделах. С другой точки зрения, выход можно рассматривать как свертку входного вектора с весовым вектором или меру сходства нормализованных векторов. Следовательно, нейрон должен реагировать наиболее сильно на входной образ, которому был обучен.
Процесс обучения выражается следующим образом:
где
— вес входа
,
—
-й вход,
— нормирующий коэффициент обучения, который имеет начальное значение 0,1 и постепенно уменьшается в процессе обучения.
После завершения обучения предъявление входного вектора Х будет активизировать обученный входной нейрон. Это можно рассматривать как единый обучающий цикл, если
установлен в 1, однако в этом случае исключается способность входной звезды к обобщению. Хорошо обученная входная звезда будет реагировать не только на определенный единичный вектор, но также и на незначительные изменения этого вектора. Это достигается постепенной настройкой нейронных весов при предъявлении в процессе обучения векторов, представляющих нормальные вариации входного вектора. Веса настраиваются таким образом, чтобы усреднить величины обучающих векторов, и нейроны получают способность реагировать на любой вектор этого класса.
Обучение выходной звезды
В то время как входная звезда возбуждается всякий раз при появлении определенного входного вектора, выходная звезда имеет дополнительную функцию: она вырабатывает требуемый возбуждающий сигнал для других нейронов всякий раз, когда возбуждается.
Для того чтобы обучить нейрон выходной звезды, его веса настраиваются в соответствии с требуемым целевым вектором. Алгоритм обучения может быть представлен символически следующим образом:
где
представляет собой нормирующий коэффициент обучения, который вначале приблизительно равен единице и постепенно уменьшается до нуля в процессе обучения.
Как и для входной звезды, веса выходной звезды постепенно настраиваются над множеством векторов, представляющих собой обычные вариации идеального вектора. В этом случае выходной сигнал нейронов является статистической характеристикой обучающего набора и может в действительности сходиться в процессе обучения к идеальному вектору при предъявлении только искаженных версий вектора.
Самоорганизация
Самоорганизующихся структуры классифицируют образы, представленные векторными величинами, в которых каждая компонента вектора соответствует элементу образа. Алгоритмы Кохонена основываются на технике обучения без учителя. После обучения подача входного вектора из данного класса будет приводить к выработке возбуждающего уровня в каждом выходном нейроне; нейрон с максимальным возбуждением представляет классификацию. Так как обучение проводится без указания целевого вектора, то нет возможности определять заранее, какой нейрон будет соответствовать данному классу входных векторов. Тем не менее, это планирование легко проводится путем тестирования сети после обучения.
Алгоритм трактует набор из
входных весов нейрона как вектор в
-мерном пространстве. Перед обучением каждый компонент этого вектора весов инициализируется в случайную величину. Затем каждый вектор нормализуется в вектор с единичной длиной в пространстве весов - для этого выполняется деление каждого случайного веса на квадратный корень из суммы квадратов компонент этого весового вектора.
Все входные векторы обучающего набора также нормализуются и сеть обучается согласно следующему алгоритму:
- Вектор подается на вход сети.
Определяются расстояния (в -мерном пространстве) между
и весовыми векторами каждого нейрона. В евклидовом пространстве это расстояние вычисляется по следующей формуле:
где — компонента входного вектора , — вес входа
нейрона .
- Нейрон, который имеет весовой вектор, самый близкий к , объявляется победителем. Этот вектор, называемый , становится основным в группе весовых векторов, которые лежат в пределах расстояния от .
Группа весовых векторов настраивается в соответствии со следующим выражением:
для всех весовых векторов в пределах расстояния от .
- Повторяются шаги с 1 по 4 для каждого входного вектора.
В процессе обучения нейронной сети значения
и
постепенно уменьшаются. Рекомендуется, чтобы коэффициент
в начале обучения устанавливался приблизительно равным единице и уменьшался в процессе обучения до нуля, в то время как
может в начале обучения равняться максимальному расстоянию между весовыми векторами и в конце обучения стать настолько маленьким, что будет обучаться только один нейрон.
В соответствии с существующей точкой зрения, точность классификации будет улучшаться при дополнительном обучении. Согласно рекомендации Кохонена, для получения хорошей статистической точности количество обучающих циклов должно быть, по крайней мере, в 500 раз больше количества выходных нейронов.
Обучающий алгоритм настраивает весовые векторы в окрестности возбужденного нейрона таким образом, чтобы они были более схожими с входным вектором. Так как все векторы нормализуются в векторы с единичной длиной, они могут рассматриваться как точки на поверхности единичной гиперсферы. В процессе обучения группа соседних весовых точек перемещается ближе к точке входного вектора. Предполагается, что входные векторы фактически группируются в классы в соответствии с их положением в векторном пространстве. Определенный класс будет ассоциироваться с определенным нейроном, перемещая его весовой вектор в направлении центра класса и способствуя его возбуждению при появлении на входе любого вектора данного класса.
После обучения классификация выполняется в два шага: подачей на вход сети испытуемого вектора и вычисления возбуждения для каждого нейрона, с последующим выбором нейрона с наивысшим возбуждением как индикатора правильной классификации.
Входные и выходные звезды
Много общих идей, используемых в искусственных нейронных сетях, прослеживаются в работах С. Гроссберга; в качестве примера можно указать конфигурации входных и выходных звезд, используемые во многих сетевых парадигмах. Входная звезда, как показано на рис. 15.1, состоит из нейрона, на который подается группа входов через синапсические веса. Выходная звезда, показанная на рис. 15.2, является нейроном, управляющим группой весов. Входные и выходные звезды могут быть взаимно соединены в сети любой сложности; Гроссберг рассматривает их как модель определенных биологических функций. Вид звезды определяет ее название, однако, звезды обычно изображаются в сети несколько иначе.
Рис. 15.1. Рис. 15.2.