Эпоха 1 · Истоки · 1982

6 Сеть Хопфилда

Neural Networks and Physical Systems with Emergent Collective Computational Abilities · John Hopfield · PNAS
🟧 оригинал выборочно~1–1.5 чоригинал ↗
Суть за 20 секунд. Физик придумал сеть с «энергией», которая всегда скатывается в минимум. Если минимумы — это записанные паттерны, получается ассоциативная память: подай искажённый образ → сеть достроит ближайший целый. Мост между нейросетями и статфизикой, за который в 2024-м дали Нобеля по физике.

Контекст

После «зимы» нейросети в загоне, но Джон Хопфилд — физик — смотрит на них глазами статистической механики и вызывает ренессанс 1980-х. Его ход: ввести величину «энергия» и показать, что динамика сети её минимизирует.

Идея и механизм

Сеть из N бинарных нейронов si ∈ {−1, +1} с симметричными весами (wij = wji, wii = 0). Определяется энергия:

E = −12 Σi,j wij si sj

Асинхронные обновления si ← sign(Σj wij sj) только понижают E (см. мат-блок), поэтому сеть гарантированно сходится к локальному минимуму. Веса задаются по Хеббу под набор паттернов — и эти паттерны становятся минимумами-аттракторами. Так реализуется content-addressable память: искажённый вход скатывается к ближайшему запомненному образу.

статфизика Почему энергия не может вырасти (функция Ляпунова)

Пусть обновляется нейрон i: si → si′. Введём локальное поле hi = Σj≠i wij sj. Благодаря симметрии и wii=0 изменение энергии зависит только от этого нейрона:

ΔE = Enew − Eold = −(si′ − si) · hi = −Δsi · hi

Правило обновления ставит si′ = sign(hi). Если нейрон перевернулся, значит раньше его знак не совпадал с hi, а теперь совпал — поэтому Δsi имеет тот же знак, что hi:

Δsi · hi ≥ 0  ⟹   ΔE ≤ 0

Энергия монотонно не растёт и ограничена снизу — значит динамика сходится к фиксированной точке (локальному минимуму). E — это функция Ляпунова системы. ∎

NumPy Реализация: запомнить паттерны и восстановить искажённый
import numpy as np

def train(P):                        # P: (k, N) паттерны из ±1
    W = sum(np.outer(p, p) for p in P) / len(P)   # правило Хебба
    np.fill_diagonal(W, 0)           # без самосвязей
    return W

def recall(W, s, steps=10):
    s = s.copy()
    for _ in range(steps):
        for i in np.random.permutation(len(s)):   # асинхронно
            s[i] = 1.0 if W[i] @ s >= 0 else -1.0
    return s                          # ≈ ближайший запомненный паттерн
энергия E паттерн A паттерн B ложный мин. искажённый вход
Энергетический ландшафт. Искажённый вход скатывается в ближайшую «долину» — запомненный паттерн. Лишние паттерны создают ложные минимумы.
Аналогия. Бугристый ландшафт с ямами. Бросьте шарик где угодно — он скатится в ближайшую яму. Каждая яма — воспоминание; «вспомнить» = скатиться к нему из похожего состояния. Перегрузите ландшафт ямами — появятся паразитные впадины, и шарик застрянет не там.

Почему это важно

Хопфилд связал нейросети с физикой спиновых стёкол (модель Изинга): сходимость к памяти = релаксация системы в низкоэнергетическое состояние. Это легитимизировало нейросети у естественников и дало аналитический аппарат. Стохастическое расширение — машина Больцмана Хинтона — уже умеет учиться. За эти работы Хопфилд и Хинтон получили Нобеля по физике 2024.

Связи

← опирается на2. Хеббовское обучение

Веса сети — это в точности хеббовское правило, применённое к запоминаемым паттернам (сумма внешних произведений). Абстрактный постулат Хебба здесь становится конкретным механизмом записи в память.

↔ часть оттепели4. Perceptrons (критика)

Одна из работ, вернувших нейросетям интерес после «зимы» Минского–Паперта — но с неожиданной стороны, через статистическую физику, а не через перцептронную линию.

→ перекликается с32. Transformer

«Современные сети Хопфилда» (2020) с непрерывными состояниями имеют экспоненциальную ёмкость, а их правило обновления математически совпадает с softmax-вниманием трансформера. Attention — это, по сути, одношаговое извлечение из ассоциативной памяти.

Вопросы пытливого ума

Почему веса обязаны быть симметричными? Что сломается без этого?

Симметрия — то, что гарантирует существование энергии-функции Ляпунова и, как следствие, сходимость к неподвижным точкам. Без неё доказательство ΔE ≤ 0 разваливается, и сеть может зациклиться или вести себя хаотично. Иногда это даже желательно (асимметричные сети используют для генерации последовательностей), но тогда теряется чистая «память-как-минимум».

Откуда взялась ёмкость ≈ 0.14N — почему так мало?

При записи нескольких паттернов в одни и те же веса возникает «перекрёстный шум»: чужие паттерны искажают локальное поле. Статфизический анализ (Amit–Gutfreund–Sompolinsky) даёт критическую загрузку ≈ 0.138·N случайных паттернов, после которой ошибки восстановления лавинообразно растут и доминируют ложные минимумы. Память не «забывает по чуть-чуть» — она резко ломается за порогом.

Связь с attention — это серьёзная математика или красивая метафора?

Серьёзная. В «Modern Hopfield Networks» (Ramsauer и др., 2020) состояния непрерывны, а правило обновления выводится из энергии и оказывается буквально операцией softmax(QKᵀ)V — то есть вниманием трансформера. Значит attention можно читать как один шаг извлечения из ассоциативной памяти с экспоненциальной ёмкостью. Это формальное соответствие, не аналогия.

Что читать в оригинале

Статья короткая (~5 страниц) и элегантная — стоит прочитать ключевые места: определение энергии и доказательство её убывания. Лучший способ почувствовать, почему «динамика = минимизация энергии» так мощна.