--- 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 $$ После подачи входа сеть итеративно пересчитывает состояния нейронов через пороговую функцию, пока выходной вектор не стабилизируется. Если всё прошло успешно, устойчивое состояние совпадает с одним из эталонов.