на главную ] 

Ассоциативная память на основе машины Больцмана.

Е.С.Борисов

четверг, 21 Марта 2013г.


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

Машина Больцмана моделирует процесс отжига металла. Вводится параметр, который называется температурой сети. В процессе функционирования сети он должен уменьшаться. Мы определим температуру сети следующим образом.

Рис. 1: График изменения параметра T
        T T  = -----0--- 1 + ln(t)
(1)

где

Также мы будем отслеживать изменение ΔEi значений функции энергии Ei для каждого нейрона i.

ΔEi (t) = Ei(t) − Ei (t − 1)
(2)

Здесь Ei(t) значение функции энергии на итерации сети номер t и определяется она следующим образом.

             ( ∑                 )
Ei (t) = − 1-⋅(    wij ⋅ yj(t) ⋅ yi(t)) − yi(t) ⋅ yi(t − 1)
          2     j
(3)

где

Для каждого нейрона в сети переход в новое состояние происходит не однозначно (не обязательно) а с определённой вероятностью P, соответственно с вероятностью (1 P) состояние нейрона остается прежним.

Вероятность перехода нейрона в новое состояние вычисляется следующим образом.

        (        (       ))
Pi = 1∕  1 + exp  − ΔEi--
                      T
(4)

Алгоритм функционирования машины Больцмана выглядит следующим образом.

  1. устанавливаем начальные значения элементов yi,T
  2. пометить все нейроны как не обработанные
  3. случайным образом выбираем нейрон i,
    случайным образом выбираем для него новое состояние yi(t + 1),
    с вероятностью 12 состояние будет равно 1 или 1
  4. вычисляем изменение значения функции энергии ΔEi (2),
    помечаем нейрон как обработанный
  5. если изменение энергии меньше нуля
    то фиксируем новое значение состояния нейрона
    иначе
    вычисляем вероятность перехода в новое состояние Pi по (4),
    с вероятностью Pi фиксируем новое значение состояния нейрона
    с вероятностью 1Pi значение состояния нейрона остается старым
  6. если остались ещё необработанные нейроны
    то перейти на п.3
    иначе перейти на следующий пункт
  7. если условия равновесия выполняются
    то переход на следующий пункт
    иначе изменить значение параметра температуры T по (1) и перейти на п.2
  8. выдача результата
  9. конец работы


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

В качестве способа обучения машины Больцмана, как и в случае сети Хопфилда, используется метод Хебба[4].
            {
wij(t + 1 ) =  wij(t) + yi(t) ⋅ yj(t) , i ⁄= j
                                0   , i = j
(5)

где


Реализация ассоциативной памяти.

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

Рис. 2: Результат работы программы
ideal : 
test : 
output : 

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


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

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


Выводы.

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

Список литературы

[1]    Ackley, D. H., Hinton, G. E., and Sejnowski, T. J.   A learning algorithm for Boltzmann machines. // Cognitive Science, 1985, vol.9, pp. 147–169.

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

[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.

При использовании материалов этого сайта, пожалуйста вставляйте в свой текст ссылку на мою статью.