Е.С.Борисов

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

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

1. Модель

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

сеть Хопфилда

Рисунок 1: сеть Хопфилда

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

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

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

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

    (1)

здесь: E - энергия сети; wij - весовой коэффициент; xi - вход i-го нейрона; yiyj - выходы нейронов ij.

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

  • сохранения - веса связей в сети устанавливаются так, чтобы каждому из образцов, хранимых сетью, соответствовал свой аттрактор (ложбина на поверхности). Для достижения этой цели обычно используется  метод обучения Хебба [4].
  • восстановления - входной пример используется как начальное состояние сети, далее сеть эволюционирует согласно своей динамике. Выходной образец устанавливается, когда сеть достигает равновесия.

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

1.1. Параметры сети

Состояние нейрона номер i определим следующим образом:

       (2)

Будем использовать пороговою функцию с порогом T=0 :

   (3)

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

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

wij(t+1)=wij(t)+yi(t) * yj(t)    (для i = j  :  wii=0 )  (4)

где

  • wij - весовой коэффициент связи i-того и j-того нейронов.
  • yi, yj - выходы i-того и j-того нейронов.

2. Реализация

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

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

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

  • Результат работы программы на рис.2.

Результат работы первой программы

Рисунок 2: Результат работы первой программы

 

  • Исходные тексты программы [ здесь ]

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

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

  • Результат работы программы на рис.3.

Рисунок 3: Результат работы второй программы

Литература

  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.