Hopfield Networks
Hopfield-Netze sind rekurrente assoziative Speicher, die gespeicherte Muster anhand verrauschter Hinweise wiederherstellen und so energiebasierte Abrufverfahren mit moderner Attention verbinden.
Hopfield-Netze sind rekurrente neuronale Netze, die Muster speichern und sie aus unvollständigen oder beschädigten Eingaben wiederherstellen. Sie fungieren als assoziativer Speicher: Ein Teil eines Musters dient als Hinweis, um das gesamte Muster abzurufen. Eine gespeicherte Erinnerung verhält sich wie ein Tal in einer Energielandschaft, und der sich verändernde Zustand des Netzes bewegt sich auf ein nahegelegenes Tal zu.
John J. Hopfield stellte das Modell 1982 in seiner Arbeit über kollektive Berechnungen in neuronalen Netzen vor. „Hopfield-Netzwerk“, „Hopfield-Netz“ und „Hopfield-Modell“ sind gebräuchliche Synonyme. Die Architektur gehört zur Familie der rekurrenten neuronalen Netze, da Rückkopplungsverbindungen ihren internen Zustand wiederholt aktualisieren.
So speichern und rufen Hopfield-Netze Muster ab#
Ein klassisches Hopfield-Netz besteht aus miteinander verbundenen Neuronen, deren Zustände üblicherweise als −1 oder +1 dargestellt werden. Seine Modellgewichte sind symmetrisch: Die Verbindung von Neuron A zu Neuron B entspricht der Verbindung von Neuron B zu Neuron A. In Standardkonfigurationen sind Selbstverbindungen auf null gesetzt. Hebb'sches Lernen speichert Muster, indem es Verbindungen zwischen Neuronen verstärkt, deren Zustände über die gespeicherten Beispiele hinweg übereinstimmen. Rechnerisch wird dabei das äußere Produkt jedes Musters – eine Matrix paarweiser Produkte – zur Gewichtsmatrix addiert.
Beim Abruf summiert jedes Neuron seine gewichteten Eingaben und wendet eine Schwellwert-Aktivierungsfunktion an. Bei der asynchronen Aktualisierung wird jeweils ein Neuron verändert. Bei symmetrischen Gewichten, nullgesetzten Selbstverbindungen und unveränderten Zuständen bei exakten Schwellwertgleichständen senkt jede Zustandsänderung eine Energiefunktion, bis das Netz eine stabile Konfiguration erreicht. Diese Konfiguration ist ein Attraktor; die Ausgangszustände, die zu ihm konvergieren, bilden sein Einzugsgebiet. Werden alle Neuronen gleichzeitig aktualisiert, kann das zu Schwingungen zwischen Konfigurationen führen.
Speichern und Abrufen sind getrennte Vorgänge. Beim Speichern werden die Verbindungen verändert; beim Abrufen ändern sich die Neuronenzustände, während die Verbindungen unverändert bleiben. Dadurch ist der Abruf eine Form der Zustands-Optimierung und keine weitere Runde der Backpropagation.
Musterwiederherstellung in Python#
Das folgende PyTorch-Beispiel speichert ein binäres Muster mithilfe der Hebb-Regel, verändert zwei Einträge und ruft die Erinnerung durch asynchrone Aktualisierungen ab.
import torch
memory = torch.tensor([1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0])
weights = torch.outer(memory, memory) / memory.numel()
weights.fill_diagonal_(0)
state = memory.clone()
state[[1, 6]] *= -1
initial_errors = int((state != memory).sum())
while True:
previous = state.clone()
for i in range(state.numel()):
field = weights[i] @ state
# Preserve the current state when the weighted input is zero.
if field != 0:
state[i] = field.sign()
if torch.equal(state, previous):
break
print(f"Bit errors: {initial_errors} -> {int((state != memory).sum())}")Die Ausgabe lautet Bit errors: 2 -> 0: Rekurrente Aktualisierungen rekonstruieren das gespeicherte Muster anhand des beschädigten Hinweises mithilfe der standardmäßigen Dynamik des assoziativen Speichers.
Kontinuierliche Netze, Attention und Anwendungen#
Kontinuierliche Hopfield-Netze verwenden abgestufte Neuronenausgaben, etwa eine Sigmoidfunktion, und entwickeln sich in Richtung eines Gleichgewichts. Hopfield etablierte diese Formulierung 1984. Moderne Hopfield-Netze erweitern den assoziativen Speicher durch andere Energiefunktionen und höhere Speicherkapazitäten; ihre Varianten mit kontinuierlichen Zuständen arbeiten mit reellwertigen Vektoren.
Hubert Ramsauer und seine Kollegen stellten 2020 eine Verbindung zwischen modernem Hopfield-Abruf und Attention-Mechanismen her. Eine Anfrage wird mit gespeicherten Vektoren verglichen, Softmax wandelt Ähnlichkeitswerte in Gewichte um, und eine gewichtete Kombination ruft zugehörige Informationen ab. Dadurch lässt sich die Attention-Operation in einem Transformer als assoziativer Speicher interpretieren.
Für Bildrepräsentationen bietet Ultralytics YOLO26 die Merkmalsextraktion über model.embed() an und gibt dabei Bild-Embeddings zurück. Diese Vektoren bilden die reellwertige Repräsentation, die von modernen Schichten für assoziativen Speicher verwendet wird.
Zu den etablierten Anwendungen gehören die Wiederherstellung gespeicherter visueller Muster, das Zusammenfassen großer Merkmalsbestände und die Optimierung unter Nebenbedingungen. Hopfield und David Tank setzten 1985 ein analoges Netz für das Problem des Handlungsreisenden ein und kodierten die Routenqualität und Nebenbedingungen in der Energielandschaft. Modernes Hopfield-Pooling unterstützt außerdem die Klassifizierung von Immunrepertoires, indem es Informationen aus Hunderttausenden biologischen Sequenzen mithilfe von Multiple-Instance-Learning zusammenführt.
Verwandte Konzepte und Speichergrenzen#
Ein Autoencoder lernt eine Encoder-Decoder-Abbildung, die Eingaben rekonstruiert; ein klassisches Hopfield-Netz rekonstruiert Muster, indem es sich in Attraktoren einpendelt. Eine Speicherbank speichert Repräsentationen für den späteren Zugriff, während die Hopfield-Dynamik festlegt, wie ein Hinweis einen zugehörigen Zustand abruft.
In klassischen Netzen entstehen beim Abruf Fehler, wenn Erinnerungen miteinander interferieren. Korrelationen zwischen Mustern verursachen Übersprechen, und Scheinattraktoren können Mischungen gespeicherter Erinnerungen zurückgeben. Für große klassische Hebb-Netze, die zufällige, näherungsweise unkorrelierte binäre Muster speichern, liegt die gängige Kapazitätsschätzung bei etwa 0,14 mal der Anzahl der Neuronen, wenn ein kleiner Anteil an Abruffehlern zugelassen wird – also ungefähr 140 Muster bei 1.000 Neuronen.










