6.3 KiB
status, type, tags, created, updated, title
| status | type | tags | created | updated | title | |||
|---|---|---|---|---|---|---|---|---|
| seed | concept |
|
2025-12-17 | 2026-05-15 | Сеть Хопфилда |
Сеть Хопфилда
Сеть Хопфилда - однослойная рекуррентная Нейронные сети, используемая как ассоциативная память. Она получает входной, возможно искажённый, образ и постепенно приводит состояние сети к одному из сохранённых эталонов.
В отличие от Сеть Хэмминга, сеть Хопфилда выдаёт не номер ближайшего образа, а сам восстановленный образ.
Идея
Сеть хранит набор эталонных образов как устойчивые состояния. При подаче входного сигнала значения выходов нейронов инициализируются этим сигналом, после чего сеть итеративно пересчитывает состояния. Если вход близок к одному из эталонов, динамика сети должна сойтись к нему.
По смыслу входной образ работает как ключ: сеть "вспоминает" наиболее близкий сохранённый образ.
В общем случае входной сигнал описывается биполярным вектором:
X=(x_1,\dots,x_n),\quad x_i \in \{-1,1\}
Эталонный образ k можно обозначить как:
X^k=(x_1^k,\dots,x_n^k),\quad k=1,\dots,m
Если сеть успешно распознаёт образ, её выход совпадает с одним из эталонов:
Y=X^k
Если выходной вектор не совпал ни с одним эталоном, сеть пришла к ложному или неинтерпретируемому состоянию.
Архитектура
Основные свойства сети Хопфилда:
- каждый нейрон связан с другими нейронами;
- выходы нейронов возвращаются на входы сети;
- связь нейрона с самим собой обычно исключается;
- веса задаются заранее по эталонным образам;
- состояние сети изменяется до стабилизации.
!
Инициализация сети задаёт начальные выходы нейронов. При функционировании сеть изменяет состояние до тех пор, пока не придёт к устойчивому образу. Если входной сигнал близок к одному из сохранённых эталонов, сеть восстанавливает этот эталон.
Для сети Хопфилда часто используется бинарная функция активации, описанная в Нейронные сети.
Инициализация весов
Веса задаются по эталонным образам один раз перед началом работы сети:
w_{ij}=\sum\limits_{k=1}^{m}x_i^k x_j^k,\quad i\neq j
Обычно связь нейрона с самим собой исключают:
w_{ii}=0
После такой инициализации сеть не дообучается на входных примерах, а использует уже записанные в матрицу связей эталоны.
Алгоритм функционирования
- На вход подаётся неизвестный сигнал. Фактически ввод выполняется установкой начальных значений аксонов:
y_i(0)=x_i,\quad i=0,\dots,n-1
Ноль в скобках обозначает нулевую итерацию работы сети.
- Рассчитывается новое состояние нейронов:
s_j(p+1)=\sum\limits_{i=1}^{n-1}w_{ij}y_i(p),\quad j=0,\dots,n-1
После этого вычисляются новые значения аксонов:
y_j(p+1)=f[s_j(p+1)]
где f - функция активации в виде скачка.
!Pasted image 20260514115340.png
- Проверяется, изменились ли выходные значения за последнюю итерацию. Если изменились, сеть возвращается к пересчёту состояний. Если выходы стабилизировались, работа завершается.
Итоговый выходной вектор считается образом, который лучше всего соответствует входным данным.
Ограничения
Сеть Хопфилда может не распознать образ корректно и выдать несуществующий эталон. Это связано с ограниченной ёмкостью ассоциативной памяти.
Для сети Хопфилда число запоминаемых образов обычно не должно превышать:
m \approx 0.15n
где n - число нейронов.
Если два эталона слишком похожи, возможны перекрёстные ассоциации: предъявление первого образа может привести к восстановлению второго, и наоборот.
Сеть Хопфилда хорошо подходит для восстановления или завершения образа, но не предназначена для явного сопоставления образа с номером класса. Для такой задачи удобнее Сеть Хэмминга.
Связанные заметки
- Сеть Хэмминга
- Нейронные сети