Узел А снова становится победителем, и для него вычисляется новый весовой вектор. На рис. 10.14 показана эволюция прототипов в течение 10 итераций. Алгоритм генерации данных, представленных на рис. 10.14, выбирает очередные входные данные из табл. 10.3 случайным образом, поэтому эти точки отличаются от вычисленных выше. Как показано на рис. 10.14, в процессе обучения прототипы постепенно смещаются к центрам кластеров. Напомним, что обучение выполняется без учителя на основе алгоритма с подкреплением "победитель получает все". В процессе такого обучения строится последовательность явных прототипов, представляющих кластеры данных. Некоторые исследователи, в том числе Зурада [Zurada, 1992] и Хехт-Нильсен [Hecht-Nielsen, 1990], показали, что алгоритм обучения Кохонена по существу эквивалентен k-значному анализу.
В следующем разделе будет рассмотрен модифицированный алгоритм выбора прототипов, основанный на модели Гроссберга, являющейся расширением сети Кохонена.
10.4.3. Нейроны Гроссберга и сети встречного распространения
До сих пор рассматривалась задача кластеризации входных данных без участия учителя. Для обучения нейронной сети при этом требуются некоторые начальные знания об области определения задачи. В процессе определения характеристик данных, а также истории обучения идентифицируются классы и выявляются границы между ними. Поскольку данные классифицируются на основе подобия их векторного представления, учитель может поспособствовать в калибровке полученных результатов или в присвоении имен этим классам. Это можно сделать с помощью обучения с учителем, при котором выходы слоя, обучаемого по методу "победитель забирает все", используются в качестве входов второго слоя сети. Решения этого выходного слоя можно явно скоординировать (подкрепить) с помощью учителя.
Такой подход позволяет, например, отобразить результаты слоя Кохонена в выходные образы или классы. Это можно сделать с помощью алгоритма "исходящей звезды" (outstar) Гроссберга [Grossberg, 1982], [Grossberg, 1988]. Комбинированная сеть, включающая слой нейронов Кохонена и слой Гроссберга, впервые была предложена Робертом Хехт-Нильсеном и получила название сети встречного распространения (counterpropagation network) [Hecht-Nielsen, 1987, 1990].
Слой Кохонена достаточно подробно рассмотрен в подразделе 10.4.2, поэтому
здесь остановимся на слое Гроссберга. На рис. 10.16 показан слой нейронов А, В
N, один из которых - J - является победителем. Алгоритм Гроссберга предполагает наличие обратной связи от учителя, представленной вектором Y, с целью подкрепления весов связей от нейрона J к нейрону I выходного слоя, который должен активизироваться. Согласно алгоритму обучения Гроссберга вес исходящей связи wji от нейрона J к нейрону I увеличивается.
В сети встречного распространения сначала обучается слой Кохонена. После определения победителя его выходное значение устанавливается равным 1, а выходные значения всех остальных нейронов Кохонена принимаются равными 0. Нейрон-победитель и все нейроны выходного слоя, с которыми он связан, формируют так называемую "исходящую звезду" (рис. 10.16). Обучение слоя Гроссберга осуществляется для компонентов этой "звезды".
Глава 10. Машинное обучение на основе связей 459
Рис. 10.16. "Исходящая звезда" для нейрона J в сети, обучаемой по методу "победитель забирает все". Вектор Y- это ожидаемый выход слоя Гроссберга. Жирной линией выделены связи нейрона, выход которого равен 1; выходные значения всех остальных нейронов слоя Кохонена равны 0
Если каждый кластер входных векторов представляется одним классом и всем членам этого класса соответствует одно и то же значение выходного слоя, то в итеративном обучении нет необходимости. Требуется лишь определить, с каким нейроном слоя Кохонена связан каждый класс, а затем назначить веса связей между каждым нейроном-победителем и выходным слоем на основе ассоциации между классами и ожидаемыми выходными значениями. Например, если J-й нейрон Кохонена соответствует всем элементам кластера, для которого ожидаемым выходом сети является I= 1, то для связи между нейронами J и I нужно установить значение wji= 1, а для всех остальных весовых коэффициентов исходящих связей нейрона J - wjk= 0.
Если одному кластеру могут соответствовать различные выходные нейроны, то для настройки весовых коэффициентов "исходящей звезды" применяется итеративная процедура обучения с учителем на основе ожидаемого вектора Y. Целью процедуры обучения является усреднение ожидаемых выходных значений для элементов каждого кластера. Веса связей нейрона-победителя с выходными нейронами настраиваются согласно формуле
где с - малый положительный коэффициент обучения, Wt - вектор весовых коэффициентов связей нейрона-победителя с выходным слоем, а Y- ожидаемый выходной вектор. Заметим, что этот алгоритм обучения приводит к усилению связей между узлом J слоя Кохонена и узлом I выходного слоя только в том случае, если I - нейрон-победитель, и его выход равен 1, а желаемый выход при этом тоже равен 1. Поэтому данный алгоритм можно считать разновидностью метода обучения Хебба, согласно которому связь между нейронами усиливается всякий раз при ее возбуждении. Идея обучения Хебба более подробно описана в разделе 10.5.
Применим сеть встречного распространения для распознавания кластеров данных из табл. 10.3. Покажем на этом примере, как реализуется алгоритм обучения такой сети.
460 Часть IV. Машинное обучение
Допустим, параметр х1 в табл. 10.3 представляет скорость двигателя в силовой установке, а x2 - его температуру. Оба параметра откалиброваны таким образом, что принимают значения из диапазона [0; 10]. Предположим, система мониторинга через заданные интервалы времени снимает данные с двигателей, и должна рассылать уведомление, если скорость и температура чрезмерно возрастут. Переименуем выходные значения в табл. 10.3 следующим образом: будем считать, что значение +1 соответствует "безопасному" состоянию, а -1 - "опасному". Сеть встречного распространения при этом будет выглядеть примерно так, как показано на рис. 10.17.
Рис. 10.17. Сеть встречного распространения для распознавания классов из табл. 10.3. Обучению подлежат весовые коэффициенты WAS и wAD связей узла А с выходными нейронами
Поскольку точно известно, каким выходным значениям слоя Гроссберга должны соответствовать нейроны-победители слоя Кохонена, можно напрямую задать эти значения. Для демонстрации обучения слоя Гроссберга обучим сеть с помощью указанной выше формулы. Если (произвольным образом) принять решение о том, что узел S выходного слоя отвечает за безопасную ситуацию, а узел D - за опасную, то веса связей нейрона А слоя Кохонена с выходным слоем должны быть равны [1; 0], а веса связей нейрона В - [ 0; 1 ]. Благодаря симметрии этой ситуации можно ограничиться рассмотрением процесса обучения только для "исходящей звезды" нейрона A.
Прежде чем приступать к обучению слоя Гроссберга, необходимо обучить слой Кохонена. Сходимость процесса обучения для слоя Кохонена была рассмотрена на этом же примере в подразделе 10.4.2. Входные векторы для обучения исходящих связей нейрона А имеют вид [х1 , х2, 1,0]. Здесь x1 и х2 - это значения из табл. 10.3, соответствующие нейрону А слоя Кохонена, а два других компонента указывают на то, что узел А является победителем, т.е. безопасное состояние двигателя соответствует значению "истина", а опасное - значению "ложь" (см. рис. 10.15). Веса исходящих связей нейрона А инициализируем значениями [0; 0] и коэффициент скорости обучения сделаем равным 0,2
Несложно удостовериться, что в процессе обучения значения весовых коэффициентов сходятся к [1; 0]. Естественно, из-за однозначности соответствия нейрона-победителя нейрону выходного слоя можно было бы просто назначить веса связей и не использовать алгоритм обучения вообще.
Покажем, что такие значения весов обеспечивают адекватное функционирование сети встречного распространения. Если на вход сети, показанной на рис. 10.17, подать первый вектор из табл. 10.3, то уровень активности нейрона А составит [1; 1], а нейрона В - [0; 0]. Взвешенная сумма этих значений для нейрона S выходного слоя составит 1. Если веса исходящих связей нейрона В составляют [0; 1], то уровень активации нейрона D будет равен 0, что и требуется для данной задачи. Выбирая второй вектор из табл. 10.3, получим уровень активации для узла А [0; 0], а для узла В - [1; 1 ]. Взвешенная сумма этих значений для нейрона S составляет 0, а для нейрона D - 1. Аналогично можно проверить корректность функционирования сети для всех данных из табл. 10.3.
С точки зрения теории познания для сети встречного распространения можно предложить ассоциативную интерпретацию. Вернемся к рис. 10.17. Обучение слоя Кохонена можно рассматривать как знакомство с условным стимулом, поскольку сеть изучает образы по мере их поступления. Обучение слоя Гроссберга - это связывание нейронов (безусловных стимулов) с некоторым откликом. В рассмотренном случае сеть обучится рассылать уведомление об опасности при соответствии данных некоторому шаблону. После обучения система будет правильно реагировать на новые данные даже без участия учителя.
Другая когнитивная интерпретация сводится к подкреплению определенных связей в памяти для данного шаблона. Этот процесс напоминает построение таблицы поиска для откликов на шаблоны данных.
Сеть встречного распространения имеет, в некотором смысле, значительное преимущество перед сетью обратного распространения. Подобно сети обратного распространения, она обучается классификации на основе нелинейного разделения. Однако делается это за счет препроцессинга, обеспечиваемого слоем Кохонена, с помощью которого данные делятся на кластеры. Такая кластеризация обеспечивает существенное преимущество по сравнению с сетью обратного распространения, поскольку устраняет необходимость выполнения поиска, требуемого для обучения скрытых слоев такой сети.
10.5. Синхронное обучение Хебба
10.5.1. Введение
Теория обучения Хебба основывается на следующем наблюдении: если один нейрон в биологической системе участвует в возбуждении другого нейрона, то связь между ними усиливается. В [Hebb, 1949] указано следующее:
"Если аксон клетки А многократно участвует в возбуждении клетки В, то имеет место некоторый процесс роста или метаболического изменения в одной или обеих клетках, приводящий к усилению влияния клетки А на клетку В."
Такой подход к обучению выглядит достаточно привлекательно, поскольку он основан на поведенческом принципе подкрепления, который наблюдается на нейронном уровне. Нейрофизиологические исследования подтвердили идею Хебба о том, что при совместном возбуждении нейронов синаптические связи между ними могут усиливаться. Однако этот процесс оказался гораздо сложнее предположения Хебба об "усилении
462 Часть IV. Машинное обучение
влияния". Представленный в этом разделе закон обучения получил название метода обучения Хебба, несмотря на то, что его идея оказалась несколько абстрактной. Такое обучение относится к категории синхронного (coincidence), поскольку значения весов изменяются в ответ на события, происходящие в нейронной сети. Законы обучения, относящиеся к этой категории, описываются своими временными и пространственными свойствами.
Обучение Хебба используется в многочисленных нейросетевых архитектурах. Оно реализуется как в интерактивном, так и в кумулятивном режимах. Эффект усиления связей между нейронами при их взаимном возбуждении можно математически промоделировать с помощью настройки весов связей между ними с учетом знака произведения их выходных значений.
Остановимся на конкретной реализации этого подхода. Предположим, что выход нейрона i связан со входом нейрона у. Добавкой к весовому коэффициенту связи между этими нейронами AW можно определить коэффициент скорости обучения с, взятый со знаком произведения (oi*oj). В табл. 10.4 приводятся данные о знаке произведения oi*oj выходов нейронов i и j в зависимости от знака каждого из множителей. Из первой строки таблицы видно, что если оба выхода нейронов положительны, то и весовая добавка DW имеет знак "+". Следовательно, если нейрон i участвует в возбуждении нейрона j, то связь между ними усиливается.
Таблица 10.4. Зависимость знака произведения от знаков выходных значений нейронов
Вторая и третья строки таблицы соответствуют ситуации, когда знаки выходных значений нейронов различаются. Поскольку знаки отличаются, необходимо уменьшить влияние нейрона i на выход нейрона j. Следовательно, инкремент к весовому коэффициенту связи выбирается с отрицательным знаком. И, наконец, в четвертой строке знаки выходов нейронов i и j снова совпадают, и сила этой связи увеличивается. Такой механизм настройки весов способствует укреплению связей между нейронами, если их выходные сигналы имеют одинаковый знак, и уменьшению этой связи в противном случае.
В следующих разделах рассматриваются два типа обучения Хебба - без учителя и с учителем. Сначала рассмотрим алгоритм обучения без учителя.
10.5.2. Пример алгоритма обучения Хебба без учителя
Напомним, что при обучении без учителя для корректировки выходных значений не используется внешнее воздействие. Веса модифицируются исключительно на основе информации о входах и выходах нейрона. Обучение такой сети сводится к усилению отклика сети на уже "виденные" образы. В следующем примере будет показано, как метод Хебба используется для моделирования обучения на основе обусловленного отклика, когда в роли условия для желаемого отклика выступает произвольно выбранный стимул.
При обучении Хебба без учителя веса нейрона i можно настраивать по формуле
Глава 10. Машинное обучение на основе связей 463
где с - малый положительный коэффициент обучения, f(X, W) - выходное значение i-го нейрона, а X - его вход.
Покажем, как обучение Хебба можно использовать для преобразования отклика сети из вида основного или безусловного стимула к условному. Это позволит промоделировать метод обучения, разработанный при экспериментах Павлова, когда у собаки вырабатывался условный рефлекс на звонок. После того, как подача пищи собаке многократно сопровождалась звонком, при звуке звонка у нее начиналось слюноотделение. Сеть, показанная на рис. 10.18, содержит два слоя: входной слой с шестью нейронами и выходной слой с одним нейроном. Выходной нейрон может принимать значение +1, соответствующее возбужденному состоянию этого нейрона, и -1, соответствующее его невозбужденному состоянию.
Примем коэффициент скорости обучения равным 0,2. В этом примере сеть обучается на образ [1;-1;1;-1;1;-1], представляющий собой конкатенацию двух образов: [1;-1;1] и [-1; 1; -1 ] • Образ [ 1; -1; 1 ] соответствует безусловному стимулу, а образ [-1; 1; -1 ] - новому.
Предположим, сеть положительно реагирует на безусловный стимул, но не воспринимает новый стимул. Положительный отклик сети на безусловный стимул можно обеспечить с помощью весового вектора [ 1; -1; 1 ], в точности соответствующего входному образу, а нейтральный отклик на новый стимул - с помощью вектора весов [0; 0; 0]. Конкатенация этих двух векторов весовых коэффициентов дает исходный вектор весов сети[1;-1;1;0;0;0].
Теперь сеть нужно обучить реакции на входной образ таким образом, чтобы новая конфигурация весов обеспечивала положительный отклик на новый стимул. На первом шаге работы сети вычислим
Несложно заметить, что произведение векторов W*X продолжает возрастать, при этом абсолютное значение каждого элемента вектора весовых коэффициентов в каждом цикле обучения увеличивается на 0,2. После 13 итераций обучения вектор весовых коэффициентов примет вид
W13=[3,4;-3,4;3,4;-2,4;2,4;-2,4].
Теперь этот обученный вектор весов можно использовать для тестирования отклика сети на два отдельных образа. При этом ожидается, что сеть будет по-прежнему положительно реагировать на безусловный стимул, и, что гораздо важнее, будет давать положительный отклик на новый, обусловленный, стимул. Сначала проверим реакцию сети на безусловный стимул [1;-1;1]. Три последних элемента входного вектора заполним произвольно выбранными значениями 1 и -1. Например, определим реакцию сети на вектор [1;-1;1;1;1;-1]
Таким образом, сеть по-прежнему положительно реагирует на исходный безусловный стимул. Теперь проверим реакцию сети на тот же безусловный стимул и другой случайно выбранный вектор в последних трех позициях [1;-1;1;1;-1;-1]
Этот входной вектор тоже приводит к положительному отклику сети. На самом деле эти два примера свидетельствуют о том, что сеть чувствительна к исходному стимулу, связь с которым была усилена благодаря его многократному повторению.
Теперь определим отклик сети на новый стимул [-1;1;-1], закодированный в последних трех позициях входного вектора. Первые три элемента заполним случайно выбранными значениями из множества {-1;1} и проверим реакцию сети на входной вектор [1;1;1;-1;1;-1]
Проведем еще один эксперимент, слегка изменив входной вектор. Этот случай будет соответствовать ситуации, когда используется новый вид еды и другой тип звонка. Протестируем сеть на входном векторе [1;-1;-1;1;1;-1], где первые три элемента не совпадают с исходным стимулом, а вторые три отличаются от обусловленного
Следовательно, распознан даже слегка отличный стимул.
Что же получилось в результате обучения Хебба? Благодаря многократному совместному появлению старого и нового стимула была создана ассоциация между новым стимулом и старым откликом. Сеть научилась обеспечивать прежний отклик на новый стимул без участия учителя. Такая повышенная чувствительность также позволяет сети правильно отвечать на слегка модифицированный стимул. Это достигается за счет синхронного обучения Хебба, в процессе которого сила отклика на общий образ увеличивается, что приводит к усилению отклика сети на каждый отдельный компонент этого образа.
10.5.3. Обучение Хебба с учителем
Правило обучения Хебба основано на принципе усиления связи между нейронами при их взаимном возбуждении. Этот принцип можно адаптировать и к обучению с учителем, если вес связи настраивать на ожидаемый, а не реальный выход нейрона. Например, если входной потенциал нейрона В, поступающий от нейрона А, является положительным, и от нейрона В ожидается положительный отклик, то связь между этими нейронами усиливается.
Проверим, как с помощью метода обучения Хебба с учителем можно научить сеть
распознавать набор ассоциаций между образами. Ассоциации задаются как набор упорядоченных пар {<Х1 Y1>, <Хt , Yt>}, где Xi и Yi - вектор ассоциируемых между
собой образов. Предположим, размерность вектора Xi равна п, а размерность Yi- т. Построим сеть, соответствующую этой ситуации. Она должна состоять из двух слоев, первый из которых содержит п нейронов, а второй - т (рис. 10.19).
Для обучения этой сети воспользуемся формулой настройки весов из предыдущего раздела
DW=c*f(X, W)*X,
где f(X, W) - реальный выход нейронной сети. При обучении с учителем заменим реальный выход нейронов ожидаемым выходным вектором D. Получим
DW=с*D*Х.
466 Часть IV. Машинное обучение
Возьмем пару векторов <Х1,У1> из набора ассоциаций и применим это правило обучения к узлу к выходного слоя
где DWik - весовая добавка к связи нейрона i входного слоя с узлом к выходного слоя, dk - ожидаемый выход k-го нейрона, а хi - i-й элемент вектора X. Эта формула применяется для настройки всех весов связей всех нейронов выходного слоя. Вектор - это входной вектор X, a - выходной вектор Y. Применяя эту формулу для настройки отдельных весов связей с каждым нейроном выходного слоя, приходим к формуле модификации весов для всего выходного слоя
DW=c*Y*X, где Y*X - внешнее векторное произведение (outer vector product), определяемое как матрица
Чтобы обучить сеть всему набору ассоциированных пар, нужно организовать итерационную процедуру настройки весов для каждой пары <Хi, Yi> по формуле
Wt+1 = Wt+c*Yi*Xi
Для всего обучающего множества имеем W1 = W0+c*(Y1*Xl+ Y2*Х2+... + Yt*Хt) ,
где W0 - исходная конфигурация весов. Если исходные веса W0 инициализировать нулевым вектором <0;0;...;0>,а коэффициент обучения с выбрать равным 1, получим следующую формулу вычисления весов
W=Y1*X1+ Y2*Х2+...+Уt*Хt.
Сеть, отображающая вектор входов в вектор выходов и обученная по этой формуле настройки весов, называется линейным ассоциатором (linear associator). Как станет ясно впоследствии, такая модель позволяет хранить множество ассоциаций в матрице связей. Это приводит к возможности взаимодействия между сохраненными шаблонами. Проблемы, возникающие при таком взаимодействии, будут рассмотрены в следующих разделах.
10.5.4. Ассоциативная память и линейный ассоциатор
Нейронная сеть, представляющая собой линейный ассоциатор, впервые была предложена Т. Кохоненом [Kohonen, 1972] и Дж. Андерсоном [Anderson и др., 1977]. В этом разделе будет описана линейная ассоциативная сеть, предназначенная для хранения и восстановления образов из памяти. Будут изучены различные формы памяти, в том числе гетероассоциативная, автоассоциативная и интерполятивная модели. Будет проанализирована возможность использования линейного ассоциатива для реализации интерполятивной памяти на базе метода обучения Хебба. В завершение раздела будут рассмотрены проблемы интерференции или помех, возникающих при хранении в памяти нескольких образов.
Сначала введем несколько определений, связанных с хранением информации в памяти. Входные образы и хранимые в памяти значения являются векторами. Для устранения
Глава 10. Машинное обучение на основе связей 467
проблемы представления обычно вводится индуктивный порог, предполагающий задание множества векторов признаков. Хранимые в памяти ассоциации представляются в виде набора векторных пар {, .... ). Для каждой пары векторов образ Xi - это ключ для восстановления образа Yi. Существует три типа ассоциативной памяти.
Гетероассоциативная память (heteroassociative memory)- это такое отображение, при котором вектору X, наиболее близкому к Хi ставится в соответствие возвращаемый вектор Yi.
Автоассоциативная память (autoassociative memory) - это такое отображение,
при котором для всех пар Хi=Yi. Поскольку каждый вектор Xi ассоциируется с самим собой, эта форма памяти используется в основном для восстановления полно
го вектора по его части.
Интерполятивная память (interpolative memory)- это такое отображение Ф:
Х®У, при котором отличному от эталона вектору Х=Хi+Di, ставится в соответствие
выходной вектор Ф(Х) = Ф(Хi+Di) = Yi+E, где Е=Ф(Di). При интерполятивном отображении каждый из ключей эталона связывается с соответствующим образом в памяти. Если же входной вектор отличается от эталонного на вектор Д, то выход
ной вектор тоже отличается от эталонного на величину Е, где Е= Ф (Di).
Автоассоциативная и гетероассоциативная память используются для восстановления одного из запомненных эталонов. Они моделируют память в ее исходном значении, при котором извлекаемый образ является точной копией запомненного. Можно также сконструировать память таким образом, чтобы выходной вектор отличался от сохраненного в памяти в некотором семантическом смысле. В этом и состоит роль интерполятивной памяти.
Линейный ассоциатор, представленный на рис. 10.20, реализует одну из форм интерполятивной памяти. Как следует из подраздела 10.5.3, его работа основана на модели обучения Хебба. Веса связей инициализируются с помощью соотношения, приведенного в подразделе 10.5.3
При таких значениях весовых коэффициентов для каждого эталонного ключа сеть будет восстанавливать точно соответствующий ему эталонный образ, в противном случае она будет осуществлять интерполяционное отображение.
Теперь введем несколько понятий, которые помогут проанализировать поведение этой сети. Сначала введем метрику, позволяющую определить точное расстояние между векторами. Все векторы-эталоны в рассмотренном примере являются хемминговыми, т.е. состоящими только из -1 и +1. Для описания расстояния между хемминговыми векторами можно ввести хеммингово расстояние (Hamming distance). Определим хеммингово пространство следующим образом:
Нn={Х=(х1,х2,...,хn)}, где каждый элемент хi принимает значения из множества {+1;-1}.
Хеммингово расстояние определяется между двумя любыми векторами в хемминговом пространстве как
| |Х, Y| | = количеству различных компонентов в векторах X и Y.
468 Часть IV. Машинное обучение
Рис. 10.20. Линейная ассоциативная сеть. На вход сети подается вектор Xi, а на выходе получается соответствующий ему вектор Yi каждый компонент которого yi является линейной комбинацией входов. В процессе обучения каждый выходной нейрон подкрепляется соответствующими ему корректными выходными сигналами
Например, хеммингово расстояние в четырехмерном хемминговом пространстве между векторами
(1;-1;-1;1)и{1;1;-1;1) равно 1,
(-1;-1;-1;1) и (1;1;1-;1) равно 4, (1;-1;1;-1) и (1;-1;1;-1) равно 0.
Введем еще два определения. Дополнением хеммингового вектора называется вектор, все компоненты которого противоположны компонентам исходного вектора. Например, дополнением к (1;-1;-1;-1) является вектор (-1;1; 1;1).
Определим понятие ортонормалъности векторов. Ортонормальными называются ортогональные или перпендикулярные векторы единичной длины. Покомпонентное произведение ортонормальных векторов равно 0. Следовательно, скалярное произведение любых двух векторов Xi и Хj из набора ортонормальных векторов равно 0, если эти векторы различны:
Покажем, что определенный выше линейный ассоциатор обладает следующими двумя свойствами. Пусть Ф(Х) - выполняемое сетью отображение. Во-первых, для любого входного вектора Хi , точно соответствующего одному из эталонов, выход сети Ф(Хi) равен соответствующему выходному эталонному вектору Yi. Во-вторых, для любого входного вектора Xk, не соответствующего ни одному из эталонов, выход сети Ф(Хk) равен вектору Yk, представляющему собой интерполяцию вектора Хк. Более точно, для Хk= Xi +Di, где Xi - эталонный вектор, сеть возвращает значение
Yk=Yi+E, где Е=Ф(Di).
Глава 10. Машинное обучение на основе связей 469
Сначала покажем, что при подаче на вход сети одного из эталонов она возвращает соответствующий ему эталонный образ.
По определению активационной функции сети
Поскольку
получим
по закону дистрибутивности. Поскольку из сказанного выше следует, что ХiХj=?ij, то
По условию ортонормальности ?ij=1 при i=j и 0 в остальных случаях. Тогда
Можно также показать, что для входного вектора Хк, не соответствующего ни одному из эталонов, сеть выполняет интерполирующее отображение. Так, для Хk= Xj +Dj где Xi - один из эталонных векторов
где Yi - вектор, связанный с Xi, а
Детали доказательства можно опустить.
Теперь приведем пример обработки данных с помощью линейного ассоциатора. На рис. 10.21 показана простая линейная ассоциативная сеть, отображающая четырехмерный вектор X в трехмерный вектор Y. Поскольку сеть работает в хемминговом пространстве, в качестве активационной функции необходимо использовать описанную выше функцию sign.
Рис. 10.21. Линейный ассоциатор, весовая матрица которого вычисляется по формуле из предыдущего раздела
Допустим, требуется запомнить две векторные ассоциации , <Х2, Y2>, где
470 Часть IV. Машинное обучение
Используя определенную в предыдущем разделе формулу инициализации весов для линейного ассоциатора, получим
С помощью операции внешнего векторного произведения Y1X1+Y2X2 вычислим весовую матрицу сети
Проверим работу линейного ассоциатора для одного из эталонов. Начнем с вектора Х=[1;-1;-1;-1] из первой эталонной пары и вычислим связанный с ним вектор У.
Заметим, что вектор Y=[1;1;1] не соответствует ни одному из эталонов.
Подытожим несколько наблюдений относительно линейных ассоциаторов. Ожидаемые свойства таких сетей основываются на предположении, что эталонные экземпляры составляют множество ортонормальных векторов. Это ограничивает их практическую применимость по двум причинам. Во-первых, может не существовать очевидного отображения реальной жизненной ситуации в ортонормированный набор векторов. Во-вторых, количество сохраняемых образов ограничено размерностью векторного пространства. Если требование ортонормированности нарушается, образы смешиваются в памяти, что приводит к помехам (crosstalk).
Обратите внимание на то, что линейный ассоциатор восстанавливает эталонный образ только тогда, когда входной вектор в точности соответствует эталонному. При отсутствии точного соответствия входного вектора сеть выполняет интерполяционное отображение. Можно возразить, что интерполяция не является памятью в прямом смысле этого слова. Зачастую требуется реализовать истинные свойства памяти, когда при подаче на вход приближенного ключа сеть восстанавливает точный соответствующий ему эталонный образ. Для этого нужно ввести в рассмотрение аттракторный радиус, обеспечивающий притяжение векторов из некоторой окрестности.
В следующем разделе описывается аттракторная версия линейной ассоциативной сети.
10.6. Аттракторные сети (сети "ассоциативной памяти")
10.6.1. Введение
До сих пор рассматривались сети прямого распространения информации (feedforward network). В таких сетях данные поступают на входные нейроны, и сигнал распространяется к последующим слоям до выхода из сети. Еще одним важным классом нейронных сетей явля-
Глава 10. Машинное обучение на основе связей 471
ются сети с обратными связями (feedback network). Архитектура таких сетей отличается тем, что выходной сигнал передается прямо или косвенно назад, ко входам нейрона.
Отличия сетей с обратными связями от сетей прямого распространения состоят в следующем.
Между нейронами существуют обратные связи.
Имеется некоторая временная задержка, т.е. сигнал распространяется не мгновенно.
Выходом сети является ее состояние по завершении процесса сходимости.
Полезность сети зависит от свойств сходимости.
Когда сеть с обратными связями приходит к неизменному состоянию, такое состояние называется состоянием равновесия, которое и рассматривается в качестве выхода сети.
В сетях с обратными связями, которые будут рассмотрены в подразделе 10.6.2, состояния сети инициализируются входным вектором. Сеть обрабатывает этот образ, передавая его несколько раз от входа к выходу до тех пор, пока не достигнет состояния равновесия. Состояние равновесия сети - это и есть образ, извлеченный из памяти. В подразделе 10.6.3 будут рассмотрены сети, реализующие гетероассоциативную память, а в подразделе 10.6.4 - модели автоассоциативной памяти.
Интересны и важны когнитивные аспекты этих сетей, реализующих модель контекстно адресуемой памяти. Этот тип ассоциативных связей описывает извлечение из долговременной памяти номера телефона, чувства досады или даже распознавания человека по части его фотографии. Исследователи выделяют множество ассоциативных аспектов этого типа памяти в структурах данных, основанных на символьном описании, включая семантические сети, фреймы и объектные системы, рассмотренные в главе 6.
Аттрактор (attractor) - это состояние, к которому со временем сходятся другие состояния из некоторой окрестности. Каждому аттрактору в сети соответствует область, внутри которой сеть всегда эволюционирует к этому состоянию. Эта область характеризуется аттракторным радиусом. Аттрактор может содержать одно состояние сети или несколько состояний, по которым происходит циклическое перемещение.
Попытки понять и математически описать свойства аттракторов привели к формированию понятия функции энергии сети [Hopfield, 1984]. Сети с обратными связями, функция энергии которых обладает тем свойством, что любой переход состояний этой сети приводит к уменьшению сетевой энергии, обязательно сходятся к точке равновесия. Эти сети будут описаны в подразделе 10.6.3.
Аттракторные сети можно использовать для реализации контекстно адресуемой памяти, запоминая нужные образы в качестве аттракторов сети. Их также можно применять для решения задач оптимизации, в том числе для задачи коммивояжера, создавая отображения функции стоимости в задаче оптимизации в энергию сети. Решение этой задачи приводит к уменьшению общей энергии сети. Этот тип задач решается с помощью так называемых сетей Хопфипда.
10.6.2. Двунаправленная ассоциативная память
Двунаправленная ассоциативная память (ДАП), впервые описанная в [Kosko, 1988], состоит из двух полносвязных слоев обрабатывающих элементов. Может также существовать обратная связь каждого нейрона с самим собой. Сеть ДАП, отображающая п-мерный входной вектор Хп в m-мерный выходной вектор Ym, показана на рис. 10.22. Поскольку связи между нейронами слоев X и У являются двунаправленными, то веса связей необходимо определять для обоих направлений.
472 Часть IV. Машинное обучение
Рис. 10.22. Сеть ДАП для примера из подраздела 10.6.2. Каждый нейрон может быть связан с самим собой
Подобно весам в линейном ассоциаторе, веса связей в сети ДАП можно вычислить заранее. Для определения весов используется тот же метод, что и в линейной ассоциативной модели. Векторы состояний в архитектуре ДАП рассматриваются в хемминговом пространстве.
Пусть даны N пар векторов, составляющих набор эталонов, которые необходимо сохранить в памяти. Подобно описанной в подразделе 10.5.4 процедуре, веса связей вычислим следующим образом:
Это соотношение позволяет вычислить веса связей от слоя X к слою Y (см. рис. 10.22). Например, W32 - это вес связи, ведущий от третьего нейрона слоя X ко второму нейрону слоя Y. Предполагается, что между двумя нейронами существует лишь одна связь. Следовательно, весовые коэффициенты связи между слоями X и Y одинаковы в обоих направлениях, т.е. матрица весов связей, ведущих от слоя Y к слою X, является транспонированной матрицей W.
Сеть ДАП можно рассматривать как автоассоциативную модель, если набор ассоциаций имеет вид ,<Х2,Х2>, ... Поскольку в этом случае слои X и Y идентичны, слой У можно вообще исключить (рис. 10.23). Пример автоассоциативной сети будет рассмотрен в подразделе 10.6.4.
Рис. 10.23. Автоассоциативная сеть со входным вектором Ii. Предполагается, что между каждыми двумя нейронами существует одна связь, так что WijWij, и матрица весовых коэффициентов симметрична
Сеть ДАП используется для извлечения из памяти образов при подаче входного образа на вход слоя X. Если входной образ зашумлен или неполон, то сеть ДАП зачастую может восполнить этот образ и извлечь из памяти связанный с ним вектор.
Глава 10. Машинное обучение на основе связей 473
Чтобы извлечь данные из памяти сети ДАП, нужно выполнить следующие действия.
В нейронную сеть передается исходная пара векторов (X, Y), где X - это образ, для
которого нужно восстановить связанный с ним эталон, а Y - случайно заданный
вектор.
Информация распространяется от слоя X к слою Y, и вычисляются значения нейронов слоя Y.
Выходные значения нейронов слоя Y передаются на вход слоя X, и вычисляются
значения нейронов этого слоя.
Два предыдущих действия продолжают выполняться до тех пор, пока состояние
сети не стабилизируется, т.е. значения векторов X и Y перестанут изменяться.
Указанный алгоритм описывает распространение информации в сети ДАП в обоих направлениях до достижения точки равновесия. Работу алгоритма можно начинать с передачи в сеть значений слоя Y, тогда после сходимости можно получить значение вектора X. Эта сеть в полном смысле является двунаправленной: в качестве входа можно использовать вектор X и вычислять ассоциированный с ним вектор Y, а можно на основании вектора Y определять значение вектора X. Пример такой сети будет рассмотрен в следующем разделе.
После сходимости процесса обработки состояние равновесия представляет собой один из эталонов, использованных для построения исходной матрицы весов. На вход сети подается вектор с известными свойствами: либо идентичный одному из векторов эталонной пары, либо слегка отличный от него. Этот вектор используется для восстановления второго вектора из эталонной пары. В качестве расстояния выбирается хеммингово расстояние, измеряемое как количество различающихся элементов векторов. Благодаря свойству ортонормированности сходимость сети ДАП к одному вектору означает также сходимость к его дополнению. Следовательно, вектор дополнения тоже становится аттрактором сети. Пример этой ситуации будет рассмотрен в следующем разделе.
Сходимость сети ДАП определяется несколькими факторами. Если в матрице весов сохранено слишком много эталонов, то они оказываются очень близки друг к другу, что приводит к появлению псевдоустойчивых состояний в сети. Этот феномен получил название помех, которые приводят к появлению локальных минимумов в пространстве энергии сети.
Давайте кратко остановимся на обработке информации в сети ДАП. Умножая входной вектор на матрицу связей, получим входные значения элементов второго слоя. Простая пороговая функция приводит полученный результат к виду, необходимому для хранения вектора в хемминговом пространстве.
Аналогичное соотношение справедливо для вычисления значения нейронов слоя X. Пороговая функция в момент времени t+1 имеет вид
В следующем разделе будет рассмотрено несколько примеров работы двунаправленной ассоциативной памяти.
474 Часть IV. Машинное обучение
10.6.3. Примеры обработки данных в сети ДАП
На рис. 10.24 показана небольшая сеть ДАП, которая является одним из простейших вариантов линейного ассоциатора, представленного в подразделе 10.5.4. Эта сеть выполняет отображение четырехмерного вектора X в трехмерный вектор Y и наоборот. Допустим, требуется запомнить в сети две пары эталонов
Рис. 10.24. Сеть ДАП для примеров из подраздела 10.6.3
Построим матрицу весов согласно формуле, приведенной в предыдущем разделе
Матрица весовых коэффициентов связей слоя Y со слоем X представляет собой транспонированную матрицу для W и имеет вид
Выберем несколько векторов и протестируем работу сети ДАП. Сначала возьмем одну из эталонных пар, подадим на вход сети вектор X и проверим, получится ли на выходе сети вектор Y. Пусть Х=[1;-1;-1;-1]. Тогда
Итак, получен второй вектор из эталонной пары. Читатель может взять этот вектор Y в качестве входного и убедиться, что на выход будет получен вектор Х=[1 ;-1 ;-1 ;-1].
В качестве следующего примера рассмотрим Х=[1;1;1;-1], а элементы вектора Y инициализируем произвольным образом. В этом случае сеть выдаст результат