[ на главную ]

Ассоциативная память на основе нейронной сети Хопфилда.

Е.С.Борисов

вторник, 18 октября 2005 г.


Ассоциативная память это память с адресацией по содержанию, т.е. выборка и запись в ячейки такой памяти выполняется в зависимости от их содержимого.

Ассоциативную память можно успешно реализовать как нейронную сеть [ 1 , 2 ], которая должна восстанавливать предъявленный слегка измененный образ, например, с наложенным шумом или содержащий лишь важную часть исходного образа. На основе таких систем можно создавать базы знаний, эффективный поиск в которых осуществляется не по ключу, а на основе предъявленного фрагмента требуемого образа.

1 Модель

Ассоциативную память будем строить на основе сети Хопфилда [ 3 ], которая представляет собой однослойную нейронную сеть с обратными связями (рис. 1 ) и принадлежит классу т.н. релаксационных нейронных сетей.

Рисунок 1: сеть Хопфилда
В основе функционирования таких сетей лежит итеративный принцип работы. На каждой итерации происходит обработка результата, полученного на предыдущем шаге. Циркуляция информации в нейронной сети происходит до тех пор, пока не установится состояние равновесия, т.е. значения её выходов перестанут изменяться.

Матрица весовых коэффициентов для сети Хопфилда - симметрична w ij =w ji и имеет нулевую главную диагональ w ii =0 , т.е. отсутствует обратная связь нейрона на себя.


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

Все возможные состояния сети можно представить как некое подобие холмистой поверхности. Каждая точка такой поверхности соответствует определенному сочетанию активностей нейронов данной сети, а высота подъема поверхности в данной точке характеризует значение энергии для такого сочетания активностей нейронов. Поведение сети аналогично поведению тяжелого шарика, который скатывается по склону в ближайшую ложбину.

\begin{displaymath} E = - \frac{1}{2}\sum\limits_{i=1}^n \sum \limits_{j=1}^n w_{ij} y_j y_i - \sum \limits_{i=1}^n x_i y_i\ ;\ \ i \neq j \end{displaymath} (1)

здесь: E - энергия сети; w ij - весовой коэффициент; x i - вход i -го нейрона; y i , y j - выходы нейронов i , j .

Сеть Хопфилда можно использовать как ассоциативную память. В этом случае хранимые в сети образцы являются аттракторами. Ассоциативная память на основе сети Хопфилда работает в двух режимах:

Экспериментально показано, что максимальное число образцов, которые может хранить сеть Хопфилда, 0.15 * n (где n - число нейронов сети). Когда число сохраняемых образцов p < 0.15 * n , данные успешно извлекаются из памяти. Число ложных аттракторов возрастает, когда p достигает емкости сети.

1.2 Параметры сети

Состояние нейрона номер i определим следующим образом:
\begin{displaymath} s_i=\sum\limits_{j=1}^{100} w_{ij}\cdot y_j \ ;\ ( w_{ii}=0 )\end{displaymath} (2)

Будем использовать пороговою функцию с порогом T=0 :
\begin{displaymath} y_i(t+1)= f(s_i)= \left\{ \begin{array}{ccc} 0 &,& s_i=T \\ 1 &,& s_i>T \\ -1 &,& s_i<T \end{array} \right.  \end{displaymath} (3)

1.2 Метод обучения

В качестве способа обучения используется метод Хебба [ 4 ]:

w ij (t+1)=w ij (t)+y i (t) * y j (t) ;   (для i = j : w ii =0 ) (4)
где

2 Реализация

В этом разделе представлены две реализации, описанной выше модели ассоциативной памяти, которые отличаются размерностью сети. Первый вариант -- простой, работает с фиксированным набором входных паттернов, представленных в текстовом виде. Второй вариант -- работает с картинками в формате BMP.

В начале в память ''записываются'' несколько разных картинок. Далее - памяти предъявляются другие, похожие картинки, по которым восстанавливаются оригиналы.

2.1 Текстовый вариант

Данная реализация ассоциативной памяти хранит картинки 10 x 10 символов, используется дискретная сеть Хопфилда из 100 нейронов.



2.2 Работа с картинками

На вход ассоциативной памяти подаются картинки в формате BMP , размером 17 x 31 точек, представляющие собой матрицы 51 x 31 байт, таким образом размерность сети 51 x 31 = 1581 нейронов. В программе используется библиотека для работы с картинками GdkPixbuf v.2 .


Реализация в системе Octave [ здесь ].


Литература

1
В.А.Головко, под ред. проф. А.И.Галушкина   Нейронные сети: обучение, организация и применение. -- Москва:ИПРЖР, 2001

2
С.Короткий ''Нейронные сети'' - http://lii.newmail.ru

3
J.J.Hopfield     Neural Networks and Physical Systems with Emergent Collective Computational Abilities // in Proc. National Academy of Sciencies, USA 79, 1982, pp. 2554-2558.

4
D.O.Hebb Organization of behavior. - New York: Science Editions, 1949.



Evgeny S. Borisov
2005-10-19
При использовании материалов этого сайта, пожалуйста вставляйте в свой текст ссылку на мою статью.