Опубликован: 01.03.2007 | Доступ: свободный | Студентов: 1589 / 211 | Оценка: 4.58 / 4.39 | Длительность: 20:15:00
Специальности: Программист
Лекция 8:

Нейронные сети ассоциативной памяти

Сети Хопфилда

Наиболее известной сетью ассоциативной памяти является сеть Хопфилда [8.1]. В основе сети Хопфилда лежит следующая идея - запишем систему дифференциальных уравнений для градиентной минимизации "энергии" H (функции Ляпунова). Точки равновесия такой системы находятся в точках минимума энергии. Функцию энергии будем строить из следующих соображений:

  1. Каждый эталон должен быть точкой минимума.
  2. В точке минимума все координаты образа должны иметь значения \pm 1.

Функция

$H = - {\frac{1}{2}} \sum\limits_{i = 1}^m {\left( {x,x^i } \right)^2 } + \alpha \sum\limits_{j = 1}^n {\left( {x_j^2 - 1} \right)^2 }$

не удовлетворяет этим требованиям строго, но можно предполагать, что первое слагаемое обеспечит притяжение к эталонам (для вектора x фиксированной длины максимум квадрата скалярного произведения \left( {x,x^i } \right)^2 достигается при x=xi ), а второе слагаемое \sum\limits_{j = 1}^n {\left( {x_j^2 - 1} \right)^2 } - приблизит к единице абсолютные величины всех координат точки минимума. Величина \alpha характеризует соотношение между этими двумя требованиями и может меняться со временем.

Используя выражение для энергии, можно записать систему уравнений, описывающих функционирование сети Хопфилда:

\dot x_j = - \partial H/\partial x_j = \sum\limits_{i = 1}^m {\left( {x,x^i } \right)x_j^i } - 4\alpha \left( {x_j^2 - 1} \right)x_j ( 1)

Сеть Хопфилда в виде (1) является сетью с непрерывным временем. Это, быть может, и удобно для некоторых вариантов аналоговой реализации, но для цифровых компьютеров лучше воспользоваться сетями, функционирующими в дискретном времени - шаг за шагом.

Построим сеть Хопфилда с дискретным временем. Сеть должна осуществлять преобразование входного вектора x так, чтобы выходной вектор x' был ближе к тому эталону, который является правильным ответом. Преобразование сети будем искать в следующем виде:

x' = Sign\left( {\sum\limits_{i = 1}^m {w_i x^i } } \right) 
, ( 2)

где w_i - вес i -го эталона, характеризующий его близость к вектору x, Sign - нелинейный оператор, переводящий вектор с координатами y_i в вектор с координатами sign y_i.

Функционирование сети. Сеть работает следующим образом:

  1. На вход сети подается образ x, а на выходе снимается образ x'.
  2. Если x' \ne x, то полагаем x = x' и возвращаемся к шагу 1.
  3. Полученный вектор x' является ответом.

Таким образом, ответ всегда является неподвижной точкой преобразования сети (2) и именно это условие (неизменность при обработке образа сетью) и является условием остановки.

Пусть i^* - номер эталона, ближайшего к образу x. Тогда, если выбрать веса пропорционально близости эталонов к исходному образу x, то следует ожидать, что образ x' будет ближе к эталону x^{i^* }, чем x, а после нескольких итераций он станет совпадать с эталоном x^{i^* }.

Наиболее простой сетью вида (2) является дискретный вариант сети Хопфилда с весами равными скалярному произведению эталонов на предъявляемый образ:

x' = Sign\left( {\sum\limits_{i = 1}^m {\left( {x,x^i } \right)x^i } } \right) 
. ( 3)

О сетях Хопфилда известно, что они способны запомнить и точно воспроизвести "порядка 0.14n слабо скоррелированных образов". В этом высказывании содержится два ограничения:

  • число эталонов не превосходит 0.14n.
  • эталоны слабо скоррелированны.
а, б, с – эталоны, г – ответ сети на предъявление любого эталона

Рис. 8.1. а, б, с – эталоны, г – ответ сети на предъявление любого эталона

Наиболее существенным является второе ограничение, поскольку образы, которые сеть должна обрабатывать, часто очень похожи. Примером могут служить буквы латинского алфавита. При обучении сети Хопфилда распознаванию трех первых букв (см. рис. 8.1 а, б, в), при предъявлении на вход сети любого их эталонов в качестве ответа получается образ, приведенный на рис. 8.1 г.

В связи с такими примерами первый вопрос о качестве работы сети ассоциативной памяти звучит тривиально: будет ли сеть правильно обрабатывать сами эталонные образы (т.е. не искажает их)?