Лекция
Привет, сегодня поговорим про сеть хопфилда, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое сеть хопфилда, модели нейронных сетей, ассоциативная память , настоятельно рекомендую прочитать все из категории Интеллектуальные информационные системы.
Нейронная сеть Хопфилда (англ. Hopfield network) — полносвязная нейронная сеть с симметричной матрицей связей. В процессе работы динамика таких сетей сходится (конвергирует) к одному из положений равновесия. Эти положения равновесия определяются заранее в процессе обучения, они являются локальными минимумами функционала, называемого энергией сети (в простейшем случае — локальными минимумами отрицательно определенной квадратичной формы на n-мерном кубе). Такая сеть может быть использована как авто ассоциативная память , как фильтр, а также для решения некоторых задач оптимизации. В отличие от многих нейронных сетей, работающих до получения ответа через определенное количество тактов, сети Хопфилда работают до достижения равновесия, когда следующее состояние сети в точности равно предыдущему: начальное состояние является входным образом, а при равновесии получают выходной образ .
Ее вариацией является Нейронная сеть Хэмминга.
Рассмотрим отдельный нейрон с обратной связью. На первом этапе работы на вход нейрона подаются входные значения и вычисляется выход нейрона. Затем получившееся выходное значение подается на вход нейрона наряду с прочими значениями и вычисляется новое выходное значение. Этот процесс повторяется до тех пор, пока выходное значение нейрона будет мало изменяться от итерации к итерации.
Если вернуться к нейронным сетям, то можно ввести следующую классификацию. Рекуррентные нейронные сети, для которых возможно получить стабилизирующиеся к определенному значению выходы, называются устойчивыми, а если выходы сети не стабильны, то неустойчивыми. В общем случае, большая часть рекуррентных нейронных сетей являются неустойчивыми. Неустойчивые сети мало пригодны для практического применения.
В 1982 г. Д. Хопфилд предложил архитектуру устойчивой рекуррентной ИНС, показанную на рисунке 6.2. Сеть Хопфилда обладает следующими характеристиками:
o Сеть является биполярной, то есть оперирует только величинами, принимающими значения {–1, 1} или {0, 1}.
o В сети имеется один слой настраиваемых нейронов. Причем, матрица весов симметрична.
o Каждый нейрон связывается со всеми другими элементами, но не связывается с самим собой, поэтому на главной диагонали матрицы весов нулевые элементы.
Рисунок 6.2 – Сеть Хопфилда.
Первоначально все запоминаемые образы xj, j = 1,...,M, кодируются биполярными векторами длины N. Эти векторы называют ячейками фундаментальной памяти. Затем веса сети Хопфилда настраиваются непосредственно из входных данных на основе правила Хебба:
, (6.2)
где – i-й и j-й компоненты k-го запоминаемого образца.
На этом фаза запоминания образов сетью Хопфилда заканчивается.
Матрица W обладает следующими свойствами:
– симметрична относительно главной диагонали: wij = wji;
– элементы главной диагонали равны нулю: wii = 0;
В начале фазы извлечения устанавливают начальные состояния нейронов в соответствии с входным вектором – зондом. Зонд может представлять частично искаженный образ из памяти сети. Затем сеть работает до момента, когда стабилизируется в одном из запомненных состояний – аттракторов. Значения выходов при этом и есть восстановленная ассоциация. Следует заметить, что если входной вектор искажен сильно, то результат может быть неверным.
На фазе извлечения происходят следующие действия. Элемент для обновления выбирается случайным образом. Выбранный элемент получает взвешенные сигналы всехостальных элементов и изменяет свое состояние по следующему правилу:
(6.3)
где n – номер итерации.
Выбирается другой элемент, и процесс повторяется. Сеть достигает предела, когда ни один из ее элементов, будучи выбранным дляобновления, не меняет своего состояния. Элементы обновляются в случайном порядке, но в среднем каждый элемент должен обновляться в одной и той же мере. Например, в случае сети из 10 элементов после 100 обновлений каждый элемент должен обновиться приблизительно 10 раз.
Особый интерес представляет емкость сети. Теоретически можно запоминать 2N образов, но реально получается много меньше. Экспериментально было получено, а затем теоретически показано, что в среднем для слабо коррелирующих образов сеть из N нейронов в состоянии запомнить ≈ 0,15N образов.
Нейронная сеть Хопфилда устроена так, что ее отклик на запомненные эталонных «образов» составляют сами эти образы, а если образ немного исказить и подать на вход, он будет восстановлен и в виде отклика будет получен оригинальный образ. Таким образом, сеть Хопфилда осуществляет коррекцию ошибок и помех.
Сеть Хопфилда однослойная и состоит из искусственных нейронов. Каждый нейрон системы может принимать на входе и на выходе одно из двух состояний (что аналогично выходу нейрона с пороговой функцией активации):
Из-за их биполярной природы нейронные сети Хопфилда иногда называют спинами.
Каждый нейрон связан со всеми остальными нейронами. Взаимодействие нейронов сети описывается выражением:
где — элемент матрицы взаимодействий
, которая состоит из весовых коэффициентов связей между нейронами. В процессе обучения формируется выходная матрица
, которая запоминает
эталонных «образов» — N-мерных бинарных векторов:
, эти образы во время эксплуатации сети будут выражать отклик системы на входные сигналы, или иначе - окончательные значения выходов
после серии итераций.
В сети Хопфилда матрица связей является симметричной (), а диагональные элементы матрицы полагаются равными нулю (
), что исключает эффект воздействия нейрона на самого себя и является необходимым для сети Хопфилда, но не достаточным условием устойчивости в процессе работы сети. Достаточным является асинхронный режим работы сети. Подобные свойства определяют тесную связь с реальными физическими веществами, называемыми спиновыми стеклами.
Матрица взаимодействий хранится на самих нейронах в виде весов при связях нейронов с другими нейронами.
Так например, если входной сигнал определяется 10 параметрами, то нейронная сеть Хопфилда формируется из одного уровня с 10 нейронами. Каждый нейрон связывается со всеми остальными 9-ю нейронами, таким образом в сети образуется 90 (10 x 9) связей. Для каждой связи определяется весовой коэффициент . Все веса связей и образуют матрицу взаимодействий, которая заполняется в процессе обучения.
Обучение сети заключается в том, что находятся веса матрицы взаимодействий так, чтобы запомнить векторов (эталонных образов, составляющих "память" системы).
Вычисление коэффициентов основано на следующем правиле: для всех запомненных образов матрица связи должна удовлетворять уравнению
поскольку именно при этом условии состояния сети будут устойчивы — попав в такое состояние, сеть в нем и останется.
Запоминаемые векторы должны иметь бинарный вид. Расчет весовых коэффициентов проводится по следующей формуле:
где — размерность векторов,
— число запоминаемых выходных векторов,
— номер запоминаемого выходного вектора,
— i-я компонента запоминаемого выходного j-го вектора.
Это выражение может стать более ясным, если заметить, что весовая матрица может быть найдена вычислением внешнего произведения каждого запоминаемого вектора с самим собой и суммированием матриц, полученных таким образом. Это может быть записано в виде
где — i-й запоминаемый вектор-столбец.
Расчет этих весовых коэффициентов и называется обучением сети, которое проводится только за одну эпоху.
Алгоритм обучения сети Хопфилда существенно отличается от таких классических алгоритмов обучения перцептронов, как метод коррекции ошибки или метод обратного распространения ошибки. Отличие заключается в том, что вместо последовательного приближения к нужному состоянию с вычислением ошибок, все коэффициенты матрицы рассчитываются по одной формуле, за один цикл, после чего сеть сразу готова к работе.
Некоторые авторы относят сеть Хопфилда к обучению без учителя. Но это неверно, так как обучение без учителя предполагает отсутствие информации о том, к каким классам нужно относить стимулы. Для сети Хопфилда без этой информации нельзя настроить весовые коэффициенты, поэтому здесь можно говорить лишь о том, что такую сеть можно отнести к классу оптимизирующих сетей (фильтров). Отличительной особенностью фильтров является то, что матрица весовых коэффициентов настраивается детерминированным алгоритмом раз и навсегда, и затем весовые коэффициенты больше не изменяются. Это может быть удобно для физического воплощения такого устройства, так как на схемотехническом уровне реализовать устройство с переменными весовыми коэффициентами на порядок сложнее. Примером фильтра без обратных связей может служить алгоритм CC4 (Cornel classification), автором которого является S.Kak.
В сети Хопфилда есть обратные связи и поэтому нужно решать проблему устойчивости. Веса между нейронами в сети Хопфилда могут рассматриваться в виде матрицы взаимодействий . В работе Cohen, Grossberg показано, что сеть с обратными связями является устойчивой, если ее матрица симметрична и имеет нули на главной диагонали. Имеется много устойчивых систем другого типа, например, все сети прямого распространения, а также современные рекуррентные сети Джордана и Элмана, для которых не обязательно выполнять условие на симметрию. Но это происходит вследствие того, что на обратные связи наложены другие ограничения. В случае сети Хопфилда условие симметричности является необходимым, но не достаточным, в том смысле, что на достижение устойчивого состояния влияет еще и режим работы сети. Ниже будет показано, что только асинхронный режим работы сети гарантирует достижение устойчивого состояния сети, в синхронном случае возможно бесконечное переключение между двумя разными состояниями (такая ситуация называется динамическим аттрактором, в то время как устойчивое состояние принято называть статическим аттрактором).
Ассоциативная память представляет собой распределенную память, которая обучается на основе ассоциаций, подобно мозгу живых существ. Существуют два типа ассоциативной памяти:автоассоциативная и гетероассоциативная. При решении задачи автоассоциативной памяти в нейронной сети запоминаютсяпередаваемые ей образы (векторы). Затем в эту сеть последовательно подаются неполные описания или зашумленные представления хранимых в памяти исходных образов, и ставится задача распознаванияконкретного образа. Гетероассоциативная память отличается от автоассоциативной тем, что набору входных образов ставится в соответствие другой набор выходных сигналов.
Пусть хк – ключевой образ (вектор), применяемый для решения задачи ассоциативной памяти, а уk — запомненный образ(вектор). Отношение ассоциации образов, реализуемое такой сетью, можно описать следующим образом: yk ↔ хк где q —количество хранимых в сети образов. Ключевой образ X* выступает в роли стимула, который не только определяет местоположение запомненного образа уk, но и содержит ключ для его извлечения.
В автоассоциативной памяти yk = хк. Это значит, что пространства входных и выходных данных сети должны иметь одинаковую размерность. В гетероассоциативной памяти ук ≠ xк.Это значит, что размерность пространства выходных векторов может отличаться от размерности пространства входных, но может и совпадать с ней.
Для настройки нейронных сетей, предназначенных для решения задач автоассоциативной памяти, используется обучение без учителя, а в сетях гетероассоциативной памяти – обучение с учителем.
Одним из первых подходов, используемых при обучении ИНС без учителя, является правило Д. Хебба, которое в нейрофизиологическом аспекте формулируется так:
Если аксон клетки А находится на достаточно близком расстоянии от клетки В и постоянно или периодически участвует в ее возбуждении, то наблюдается процесс метаболических изменений в одном или обоих нейронах, выражающийся в том, что эффективность нейрона А как одного из возбудителей нейрона В возрастает.
Применительно к искусственным нейронным сетям:
1. Если два нейрона по обе стороны синапса активизируются синхронно (т.е. одновременно), то синаптический вес этого соединения возрастает.
2. Если два нейрона по обе стороны синапса активизируются асинхронно, то такой синапс ослабляется или вообще отключается.
Простейшая форма обучения Хебба имеет следующий вид:
(6.1)
где yj – выход элемента из предыдущего, одновременно – вход для нейрона i;
wji – вес входа нейрона i, по которому принимается сигнал от нейрона j.
Существенный недостаток данной реализации: возможно нарастание силы связи, которое приводит к нестабильной работе сети. Более совершенные реализации:
– ковариационное обучение: используются отклонения сигналов от средних значений на небольшом промежутке времени;
– дифференциальное обучение: используются отклонения значений сигналов от значений на предыдущей итерации;
– обучение с забыванием, γ – параметр скорости забывания, не более 0,1.
Как только веса заданы, обученная сеть становится способной "распознавать" входные сигналы - то есть, определять, к какому из запомненных образцов они относятся.
Входной вектор проходит некоторое количество итераций до достижения сходимости (конвергенции). При этом должны распознаваться частично искаженные или неполные образцы. На вход сети сначала придают значения исходного вектора (поэтому обозначение на схеме сети входных синапсов в явном виде носит чисто условный характер). Затем сеть последовательно меняет свои состояния согласно формуле:
где — активационная функция,
и
— текущее и следующее состояния сети, до тех пор, пока состояния
и
не совпадут (или, в случае синхронного режима работы, не совпадут состояния
с
и одновременно
с
). Именно этот процесс называется конвергенцией сети. Полученное устойчивое состояние
(статический аттрактор), или, возможно, в синхронном случае пара {
} (динамический аттрактор), является ответом сети на данный входной образ.
На выходе сети может получаться также инверсный вектор (в котором значения -1 и 1 в запомненных образцах перевернуты). В случае, если система не нашла решения, на выходе системы могут получаться также тривиальные вектора, состоящие только из 1 или только из -1.
Так как сети с обратными связями имеют пути, передающие сигналы от выходов к входам, то отклик таких сетей является динамическим, то есть после приложения нового входа вычисляется выход и, передаваясь по сети обратной связи, модифицирует вход. Затем выход повторно вычисляется, и процесс повторяется снова и снова. Для устойчивой сети последовательные итерации приводят к все меньшим изменениям выхода, пока в конце концов выход не становится постоянным. Для некоторых сетей процесс никогда не заканчивается, такие сети называют неустойчивыми. Проблема устойчивости будет рассмотрена в следующем разделе, а здесь мы рассмотрим основной цикл работы сети.
Как только веса заданы, сеть может быть использована для получения запомненного выходного вектора по данному входному вектору, который может быть частично неправильным или неполным. Для этого выходам сети сначала придают значения этого начального вектора. Затем сеть последовательно меняет свои состояния согласно формуле:
где F — активационная функция, и
— текущее и следующее состояния сети, до тех пор, пока состояния
и
не совпадут (или, в случае синхронного режима работы, не совпадут состояния
с
и одновременно
с
). Именно этот процесс называется конвергенцией сети.
Это же можно описать так называемым локальным полем действующим на нейрон
со стороны всех остальных нейронов сети:
.
После расчета локального поля нейрона это значение используется для расчета значения выхода через функцию активации, которая в данном случае является пороговой (с нулевым порогом). Соответственно, значение выхода нейрона і в текущий момент времени
рассчитывается по формуле:
,
где — весовой коэффициент между нейронами i и j,
— значения выходов нейрона j в предыдущий момент времени.
Во время работы сети Хопфилда признаком нахождения решения является момент, когда достигается аттрактор, статический (когда на каждом следующем шаге повторяется устойчивое состояние ) или, возможно, динамический (когда до бесконечности чередуются два разных состояния {
}). Это конечное состояние сети и является ее реакцией на данный образ.
Нормальным ответом является такое устойчивое состояние, которое совпадает с одним из запомненных при обучении векторов. Но при некоторых условиях (в частности, при слишком большом количестве запомненных образов) результатом работы может стать так называемый ложный аттрактор («химера»), состоящий из нескольких частей разных запомненных образов. В синхронном режиме сеть может к тому же прийти к динамическому аттрактору. Обе эти ситуации в общем случае являются нежелательными, поскольку не соответствуют ни одному запомненному вектору — а соответственно, не определяют класс, к которому сеть отнесла входной образ.
Для сети Хопфилда могут существовать две модификации, отличающиеся по времени передачи сигнала: асинхронный и синхронный режимы. Практически используется только асинхронный режим.
Если работа сети моделируется на одном процессоре, то при синхронном режиме последовательно просматриваются нейроны, однако их состояния запоминаются отдельно и не меняются до тех пор, пока не будут пройдены все нейроны сети. Когда все нейроны просмотрены, их состояния одновременно (то есть синхронно, отсюда и название) меняются на новые. Таким образом, достигается моделирование параллельной работы последовательным алгоритмом.
При реально параллельном моделировании, этот режим фактически означает, что время передачи для каждой связи между элементами
и
одинаково для каждой связи, что приводит к параллельной работе всех связей, они одновременно меняют свои состояния, основываясь только на предыдущем моменте времени. Наличие таких синхронных тактов, которые можно легко выделить и приводит к пониманию синхронного режима. При синхронном режиме возможно (хотя и далеко не всегда наблюдается) бесконечное чередование двух состояний с разной энергией — так называемый динамический аттрактор. Поэтому синхронный режим практически для сети Хопфилда не используется, и рассматривается лишь как основа для понимания более сложного асинхронного режима.
Если моделировать работу сети как последовательный алгоритм, то в асинхронном режиме работы состояния нейронов в следующий момент времени меняются последовательно: вычисляется локальное поле для первого нейрона в момент , определяется его реакция, и нейрон устанавливается в новое состояние (которое соответствует его выходу в момент
), потом вычисляется локальное поле для второго нейрона с учетом нового состояния первого, меняется состояние второго нейрона, и так далее — состояние каждого следующего нейрона вычисляется с учетом всех изменений состояний рассмотренных ранее нейронов.
По сути при последовательной реализации сети Хопфилда явно не видно, в чем заключается асинхронность, но это видно, если сеть Хопфилда реализовать с параллельными вычислениями. В этом случае асинхронный режим сети Хопфилда упрощен, и носит частный случай по сравнению с общим видом асинхронных сетей, где время передачи для каждой связи между элементами
и
свое, но постоянное. Чтобы рассмотреть работу сети при параллельной реализации, необходимо ввести понятие такта — как минимальное время, за которое происходит передача сигнала по связи, то есть при
. Тогда за промежуток времени между
и
происходит определенное количество тактов N. И именно в пределах времени из N тактов происходит асинхронность протекания сигналов и выполнения расчетов. То есть, например, когда нужно рассчитать состояние нейрона № 3, необходимо рассчитать состояние нейрона № 1 и состояние нейрона № 2 и умножить это на соответствующие веса
и
. Но, как оказывается, чтобы рассчитать состояние нейрона № 2, нужно знать обновленное состояние нейрона № 1 и старое состояние нейрона № 3, умножить их на веса
и
. Понятно, что физически невозможно рассчитать состояние нейрона № 1 и состояние нейрона № 2 за одно и то же время, так как состояние нейрона № 2 зависит от состояния нейрона № 1. Поэтому связь между нейроном № 1 и нейроном № 3 имеет время передачи
, и достигает нейрона № 3 за два такта. Именное такое разное время передачи
и позволяет говорить о сети Хопфилда как о сети с асинхронным режимом.
В асинхронном режиме невозможен динамический аттрактор: вне зависимости от количества запомненных образов и начального состояния сеть непременно придет к устойчивому состоянию (статическому аттрактору).
Если во время обучения сформировать матрицу весовых коэффициентов (межнейронных связей) на основании эталонных бинарных векторов, то нейронная сеть в процессе работы под действием описанных выше полей будет менять состояния нейронов до тех пор, пока не перейдет к одному из устойчивых состояний.
Пусть имеется нейронная сеть размерностью , в матрицу связей записан набор черно-белых картинок (−1 — черный цвет, +1 — белый), среди которых есть изображение собачки (рисунок справа). Если установить начальное состояние сети близким к этому вектору (рисунок слева, искаженный образ), то в ходе динамики нейронная сеть восстановит исходное изображение (эталон). В этом смысле можно говорить о том, что сеть Хопфилда решает задачу распознавания образов (хотя, строго говоря, полученное эталонное изображение еще нужно превратить в номер класса, что в некоторых случаях может быть весьма вычислительно емкой задачей).
![]() |
![]() |
Искаженный образ | Эталон |
Принципиальная разница между двумя режимами работы сети состоит в том, что в асинхронном случае сеть обязательно придет к одному устойчивому состоянию. При синхронном же возможны ситуации с бесконечным циклическим переходом между двумя разными состояниями.
Определить, устойчиво или нет состояние нейрона, можно на основании так называемой искусственной энергии нейрона в данном поле . Если знак выхода (+1 или −1) нейрона совпадает с направлением локального поля (
), то его положение энергетически устойчиво и в следующий момент времени состояние нейрона остается неизменным. В противном случае (
) положение нейрона неустойчиво и он меняет свой знак, переходя в состояние
с энергией
.
Устойчивость при асинхронном способе достигается потому, что выполняется условие на общую энергию сети . В синхронном случае условие несколько изменяется, а именно:
. В ситуации, когда происходят бесконечные циклические переходы, энергия двух разных состояний соответственно равна
и
. При этом состояния
и
, а также
и
— совпадают. Если образуется такое состояние, то его называется динамическим аттрактором. Если же совпадают состояния
и
, аттрактор называют статическим. В большинстве случаев динамические аттракторы являются нежелательными, так как не соответствуют какому-либо определенному ответу сети.
Сеть с обратной связью формирует ассоциативную память. Сеть Хопфилда можно отнести к автоассоциативной памяти, то есть такой, которая может завершить или исправить образ, но не может ассоциировать полученный образ с другим образом. Чтобы организовать устойчивую автоассоциативную память с помощью сети с обратными связями, веса нужно выбирать так, чтобы образовывать энергетические минимумы в нужных вершинах единичного гиперкуба.
Обработка визуальных образов (фильтрация и ассоциативная память) — не единственная область применения модели Хопфилда. Динамическая процедура, описанная выше, на каждом шаге понижает значение энергии нейронной сети. Это позволяет решать комбинаторные задачи оптимизации, если они могут быть сформулированы как задачи минимизации энергии. Классической проблемой такого типа является задача коммивояжера.
(Задачу коммивояжера с помощью нейронной сети Хопфилда решить нельзя) Сеть Хопфилда может использоваться для решения задачи коммивояжера (нужно обойти все n городов и вернуться в исходный так, чтобы длина пройденного маршрута была минимальной). Для этого можно наложить, например, такие требования на сеть:
Оказывается, что для решения этой задачи достаточно следующих простых соображений:
Всем этим условиям удовлетворяет следующая формула вычисления веса между нейроном, соответствующим городу на позиции в маршруте
, и нейроном, соответствующим городу
на позиции
:
где A, B, C, D — некоторые константы, — расстояние между городами
и
,
— символ Кронекера, принимающий значение 1, если x=y и значение 0 в противном случае. Как легко видеть, первый член равен
для всех связей в той же строке (
), кроме связи нейрона с самим собой (при
). Второй член равен
для всех связей в том же столбце (
), кроме связи с самим собой (
). Третий член пропорционален расстоянию между городами
и
, если эти города соседние в маршруте (
или
).
Если такую сеть привести в случайное начальное состояние, то можно ожидать, что результирующие стабильное состояние даст нам субоптимальный путь, длина которого не слишком превосходит оптимальную (сам путь может значительно отличаться от оптимального). Соответственно, для практического применения сеть следует запустить несколько раз, и выбрать наилучший путь.
Решение данной задачи интересно не столько своим качеством (существуют алгоритмы, решающие ее эффективнее ), сколько самим подходом к задачам оптимизации: если возможно перевести условия некоторой задачи в параметры связей между нейронами, то она может быть относительно неплохо решена сетью без какого-либо дополнительного анализа.
К сожалению, у нейронной сети Хопфилда есть ряд недостатков.
1. Относительно небольшой объем памяти, величину которого можно оценить выражением:
Попытка записи бо́льшего числа образов приводит к тому, что нейронная сеть перестает их распознавать.
2. Достижение устойчивого состояния не гарантирует правильный ответ сети. Это происходит из-за того, что сеть может сойтись к так называемым ложным аттракторам, иногда называемым «химерами» (как правило, химеры склеены из фрагментов различных образов).
В общем, мой друг ты одолел чтение этой статьи об сеть хопфилда. Работы впереди у тебя будет много. Смело пиши комментарии, развивайся и счастье окажется в твоих руках. Надеюсь, что теперь ты понял что такое сеть хопфилда, модели нейронных сетей, ассоциативная память и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Интеллектуальные информационные системы
Комментарии
Оставить комментарий
Интеллектуальные информационные системы
Термины: Интеллектуальные информационные системы