150 lines
5.6 KiB
Markdown
150 lines
5.6 KiB
Markdown
---
|
|
status: seed
|
|
type: concept
|
|
tags: []
|
|
created: 2026-05-14
|
|
updated: 2026-05-15
|
|
aliases:
|
|
- КР - Хопфилд
|
|
---
|
|
# КР - Хопфилд
|
|
|
|
## Что могут спросить
|
|
|
|
1. Что такое сеть Хопфилда и для чего она нужна?
|
|
2. Почему сеть Хопфилда относится к ассоциативной памяти?
|
|
3. Какая у неё архитектура?
|
|
4. Как кодируются входные и эталонные образы?
|
|
5. Как рассчитываются веса?
|
|
6. Как сеть восстанавливает искажённый образ?
|
|
7. Какие есть ограничения?
|
|
8. Чем сеть Хопфилда отличается от сети Хэмминга?
|
|
|
|
## Краткий ответ
|
|
|
|
**Сеть Хопфилда** - однослойная рекуррентная нейронная сеть ассоциативной памяти. Она хранит набор эталонных образов и по искажённому или неполному входу пытается восстановить ближайший эталон.
|
|
|
|
Если вход похож на один из запомненных образов, сеть в процессе итераций приходит к устойчивому состоянию, соответствующему этому образу.
|
|
|
|
## Архитектура
|
|
|
|
- один слой нейронов;
|
|
- каждый нейрон связан с другими нейронами;
|
|
- выходы нейронов возвращаются на входы;
|
|
- связей нейрона с самим собой обычно нет;
|
|
- веса задаются один раз по эталонным образам;
|
|
- состояние сети пересчитывается до стабилизации.
|
|
![[Pasted image 20260515090322.png|400]]
|
|
|
|
Входной и выходной векторы имеют одинаковую размерность:
|
|
|
|
$$
|
|
X=(x_1,\dots,x_n),\quad x_i \in \{-1,1\}
|
|
$$
|
|
|
|
Эталонный образ:
|
|
|
|
$$
|
|
X^k=(x_1^k,\dots,x_n^k),\quad k=1,\dots,m
|
|
$$
|
|
|
|
где:
|
|
|
|
- $n$ - число нейронов и размерность образа;
|
|
- $m$ - число запоминаемых эталонов;
|
|
- $k$ - номер эталонного образа.
|
|
|
|
## Инициализация весов
|
|
|
|
Веса рассчитываются по эталонным образам:
|
|
|
|
$$
|
|
w_{ij}=\sum\limits_{k=1}^{m}x_i^kx_j^k,\quad i\neq j
|
|
$$
|
|
|
|
Связь нейрона с самим собой исключается:
|
|
|
|
$$
|
|
w_{ii}=0
|
|
$$
|
|
|
|
Смысл: если два признака часто имеют одинаковый знак в эталонах, связь между ними усиливается; если разные знаки - связь становится отрицательной.
|
|
|
|
## Алгоритм функционирования
|
|
|
|
1. На вход подаётся неизвестный или искажённый образ.
|
|
|
|
Начальное состояние сети:
|
|
|
|
$$
|
|
y_i(0)=x_i,\quad i=0,\dots,n-1
|
|
$$
|
|
|
|
2. Для каждого нейрона считается новое состояние:
|
|
|
|
$$
|
|
s_j(p+1)=\sum\limits_{i=0}^{n-1}w_{ij}y_i(p)
|
|
$$
|
|
|
|
3. Значение нейрона обновляется через пороговую функцию:
|
|
|
|
$$
|
|
y_j(p+1)=f(s_j(p+1))
|
|
$$
|
|
|
|
где обычно:
|
|
|
|
$$
|
|
f(s)=
|
|
\begin{cases}
|
|
1, & s \ge 0 \\
|
|
-1, & s < 0
|
|
\end{cases}
|
|
$$
|
|
|
|
4. Шаги повторяются, пока выходы не перестанут изменяться.
|
|
|
|
Если распознавание успешно:
|
|
|
|
$$
|
|
Y=X^k
|
|
$$
|
|
|
|
То есть сеть восстановила один из эталонных образов.
|
|
|
|
## Ограничения
|
|
|
|
Сеть Хопфилда может ошибиться, если:
|
|
|
|
- запомнено слишком много образов;
|
|
- эталоны слишком похожи друг на друга;
|
|
- вход слишком сильно искажён;
|
|
- сеть пришла к ложному устойчивому состоянию.
|
|
|
|
Оценка ёмкости:
|
|
|
|
$$
|
|
m \approx 0.15n
|
|
$$
|
|
|
|
где $m$ - число запоминаемых образов, $n$ - число нейронов.
|
|
|
|
## Отличие от сети Хэмминга
|
|
|
|
| Сеть | Что выдаёт | Когда нужна |
|
|
|---|---|---|
|
|
| Хопфилда | восстановленный образ | нужно восстановить полный эталон |
|
|
| Хэмминга | номер ближайшего образа | нужно выбрать класс/эталон |
|
|
|
|
Главная фраза для ответа: **сеть Хопфилда восстанавливает образ, а сеть Хэмминга выбирает ближайший образец по расстоянию Хэмминга**.
|
|
|
|
## Мини-ответ на контрольной
|
|
|
|
Сеть Хопфилда - рекуррентная сеть ассоциативной памяти для восстановления эталонного бинарного образа по искажённому входу. Веса рассчитываются один раз по эталонам:
|
|
|
|
$$
|
|
w_{ij}=\sum\limits_{k=1}^{m}x_i^kx_j^k,\quad w_{ii}=0
|
|
$$
|
|
|
|
После подачи входа сеть итеративно пересчитывает состояния нейронов через пороговую функцию, пока выходной вектор не стабилизируется. Если всё прошло успешно, устойчивое состояние совпадает с одним из эталонов.
|