Нейро́нная сеть Хо́пфилда () — полносвязная нейронная сеть с симметричной матрицей связей. В процессе работы динамика таких сетей сходится (конвергирует) к одному из положений равновесия. Эти положения равновесия определяются заранее в процессе обучения, они являются локальными минимумами функционала, называемого энергией сети (в простейшем случае — локальными минимумами отрицательно определённой квадратичной формы на n-мерном кубе). Такая сеть может быть использована как автоассоциативная память, как фильтр, а также для решения некоторых задач оптимизации. В отличие от многих нейронных сетей, работающих до получения ответа через определённое количество тактов, сети Хопфилда работают до достижения равновесия, когда следующее состояние сети в точности равно предыдущему: начальное состояние является входным образом, а при равновесии получают выходной образСеть Хопфилда. Пример на YouTube.

Ее вариацией является Нейронная сеть Хэмминга.

Архитектура сети

Нейронная сеть Хопфилда устроена так, что её отклик на запомненные эталонных «образов» составляют сами эти образы, а если образ немного исказить и подать на вход, он будет восстановлен и в виде отклика будет получен оригинальный образ. Таким образом, сеть Хопфилда осуществляет коррекцию ошибок и помех.

Сеть Хопфилда однослойная и состоит из искусственных нейронов. Каждый нейрон системы может принимать на входе и на выходе одно из двух состояний (что аналогично выходу нейрона с пороговой функцией активации):

Из-за их биполярной природы нейронные сети Хопфилда иногда называют спинами.

Каждый нейрон связан со всеми остальными нейронами. Взаимодействие нейронов сети описывается выражением:

где  — элемент матрицы взаимодействий , которая состоит из весовых коэффициентов связей между нейронами. В процессе обучения формируется выходная матрица , которая запоминает эталонных «образов» — N-мерных бинарных векторов: , эти образы во время эксплуатации сети будут выражать отклик системы на входные сигналы, или иначе - окончательные значения выходов после серии итераций.

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

Матрица взаимодействий хранится на самих нейронах в виде весов при связях нейронов с другими нейронами.

Так например, если входной сигнал определяется 10 параметрами, то нейронная сеть Хопфилда формируется из одного уровня с 10 нейронами. Каждый нейрон связывается со всеми остальными 9-ю нейронами, таким образом в сети образуется 90 (10 x 9) связей. Для каждой связи определяется весовой коэффициент . Все веса связей и образуют матрицу взаимодействий, которая заполняется в процессе обучения.

Обучение сети Обучение сети заключается в том, что находятся веса матрицы взаимодействий так, чтобы запомнить векторов (эталонных образов, составляющих "память" системы).

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

поскольку именно при этом условии состояния сети будут устойчивы — попав в такое состояние, сеть в нём и останется.

Запоминаемые векторы должны иметь бинарный вид. Расчёт весовых коэффициентов проводится по следующей формуле:

где — размерность векторов, — число запоминаемых выходных векторов, — номер запоминаемого выходного вектора, — i-я компонента запоминаемого выходного j-го вектора.

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

где — i-й запоминаемый вектор-столбец.

Расчёт этих весовых коэффициентов и называется обучением сети, которое проводится только за одну эпоху.

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

Некоторые авторы относят сеть Хопфилда к обучению без учителя. Но это неверно, так как обучение без учителя предполагает отсутствие информации о том, к каким классам нужно относить стимулы. Для сети Хопфилда без этой информации нельзя настроить весовые коэффициенты, поэтому здесь можно говорить лишь о том, что такую сеть можно отнести к классу оптимизирующих сетей (фильтров). Отличительной особенностью фильтров является то, что матрица весовых коэффициентов настраивается детерминированным алгоритмом раз и навсегда, и затем весовые коэффициенты больше не изменяются. Это может быть удобно для физического воплощения такого устройства, так как на схемотехническом уровне реализовать устройство с переменными весовыми коэффициентами на порядок сложнее. Примером фильтра без обратных связей может служить алгоритм CC4 (Cornel classification), автором которого является S.Kak.

В сети Хопфилда есть обратные связи и поэтому нужно решать проблему устойчивости. Веса между нейронами в сети Хопфилда могут рассматриваться в виде матрицы взаимодействий . В работе Cohen, GrossbergCohen M. A., Grossberg S. G. 1983. Absolute stability of global pattern formation and parallel memory storage by compatitive neural networks. IEEE Transactions on Systems, Man and Cybernetics 13:815-26. показано, что сеть с обратными связями является устойчивой, если её матрица симметрична и имеет нули на главной диагонали. Имеется много устойчивых систем другого типа, например, все сети прямого распространения, а также современные рекуррентные сети Джордана и Элмана, для которых не обязательно выполнять условие на симметрию. Но это происходит вследствие того, что на обратные связи наложены другие ограничения. В случае сети Хопфилда условие симметричности является необходимым, но не достаточным, в том смысле, что на достижение устойчивого состояния влияет ещё и режим работы сети. Ниже будет показано, что только асинхронный режим работы сети гарантирует достижение устойчивого состояния сети, в синхронном случае возможно бесконечное переключение между двумя разными состояниями (такая ситуация называется динамическим аттрактором, в то время как устойчивое состояние принято называть статическим аттрактором).

Применение обученной сети

Как только веса заданы, обученная сеть становится способной "распознавать" входные сигналы - то есть, определять, к какому из запомненных образцов они относятся.

Входной вектор проходит некоторое количество итераций до достижения сходимости (конвергенции). При этом должны распознаваться частично искажённые или неполные образцы. На вход сети сначала придают значения исходного вектора (поэтому обозначение на схеме сети входных синапсов в явном виде носит чисто условный характер). Затем сеть последовательно меняет свои состояния согласно формуле:

где  — активационная функция, и  — текущее и следующее состояния сети, до тех пор, пока состояния и не совпадут (или, в случае синхронного режима работы, не совпадут состояния с и одновременно с ). Именно этот процесс называется конвергенцией сети. Полученное устойчивое состояние (статический аттрактор), или, возможно, в синхронном случае пара {} (динамический аттрактор), является ответом сети на данный входной образ.

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

Работа сети в режиме фильтрации (восстановление повреждённых образов)

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

Как только веса заданы, сеть может быть использована для получения запомненного выходного вектора по данному входному вектору, который может быть частично неправильным или неполным. Для этого выходам сети сначала придают значения этого начального вектора. Затем сеть последовательно меняет свои состояния согласно формуле:

где F — активационная функция, и  — текущее и следующее состояния сети, до тех пор, пока состояния и не совпадут (или, в случае синхронного режима работы, не совпадут состояния с и одновременно с ). Именно этот процесс называется конвергенцией сети.

Это же можно описать так называемым локальным полем действующим на нейрон со стороны всех остальных нейронов сети: .

После расчёта локального поля нейрона это значение используется для расчёта значения выхода через функцию активации, которая в данном случае является пороговой (с нулевым порогом). Соответственно, значение выхода нейрона і в текущий момент времени рассчитывается по формуле:

,

где  — весовой коэффициент между нейронами i и j,  — значения выходов нейрона j в предыдущий момент времени.

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

Нормальным ответом является такое устойчивое состояние, которое совпадает с одним из запомненных при обучении векторов. Но при некоторых условиях (в частности, при слишком большом количестве запомненных образов) результатом работы может стать так называемый ложный аттрактор («химера»), состоящий из нескольких частей разных запомненных образов. В синхронном режиме сеть может к тому же прийти к динамическому аттрактору. Обе эти ситуации в общем случае являются нежелательными, поскольку не соответствуют ни одному запомненному вектору — а соответственно, не определяют класс, к которому сеть отнесла входной образ. Режимы работы сети Хопфилда Для сети Хопфилда могут существовать две модификации, отличающиеся по времени передачи сигнала: асинхронный и синхронный режимы. Практически используется только асинхронный режим.

Синхронный режим работы сети Если работа сети моделируется на одном процессоре, то при синхронном режиме последовательно просматриваются нейроны, однако их состояния запоминаются отдельно и не меняются до тех пор, пока не будут пройдены все нейроны сети. Когда все нейроны просмотрены, их состояния одновременно (то есть синхронно, отсюда и название) меняются на новые. Таким образом, достигается моделирование параллельной работы последовательным алгоритмом.

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