mini|Hopfield-Netz mit vier „Neuronen“

Als Hopfield-Netz bezeichnet man eine besondere Form eines künstlichen neuronalen Netzes, das sich von anderen künstlichen neuronalen Netzen dadurch unterscheidet, dass es ein rekurrentes neuronales Netz ist, das symmetrisch gewichtete Verbindungen besitzt und als Assoziativspeicher dient, der stabile Zustände (Attraktoren) für Muster erkennt. Es erkennt gespeicherte Muster anhand von Ähnlichkeiten, indem es sich in einen stabilen Zustand bewegt, der einem bekannten Muster entspricht.

Es ist nach dem amerikanischen Wissenschaftler John Hopfield benannt, der das Modell 1982 bekannt machte.

Hopfield-Netze hatten ursprünglich eine bedeutende Rolle in der Entwicklung der neuronalen Netzwerke, da sie als frühes Modell für assoziative Speicher und Mustererkennung dienten und wichtige Erkenntnisse zur Energie-Minimierung in neuronalen Netzen lieferten. Heute sind sie weiterhin von Bedeutung als Grundlage für moderne Ansätze in der künstlichen Intelligenz und maschinellem Lernen, insbesondere in der Forschung über rekurrente Netze und Energie-basierte Modelle.

Struktur Hopfield-Netze bestehen aus vollständig miteinander verbundenen Neuronen, bei denen jedes Neuron sowohl Eingaben von als auch Ausgaben an alle anderen Neuronen weiterleitet, wobei die Verbindungen symmetrisch sind.

Hopfield-Netze gehören zur Klasse der Feedback-Netze (Netze mit Rückkopplung). Bei einem Hopfield-Netz existiert nur eine Schicht, die gleichzeitig als Ein- und Ausgabeschicht fungiert. Jedes der binären McCulloch-Pitts-Neuronen ist mit jedem anderen, ausgenommen sich selbst, verbunden. Die Neuronen können die Werte −1 und +1 annehmen, welche den Zuständen „feuert nicht“ und „feuert“ entsprechen.

In Hopfield-Netzwerken sind die synaptischen Gewichte symmetrisch, d. h. für alle i und j gilt:

.

Dies ist zwar biologisch nicht sinnvoll, erlaubt aber das Aufstellen einer Energiefunktion und die Analyse der Netzwerke mit Methoden der statistischen Mechanik.

Da für Ein- und Ausgabe dieselben künstlichen Neuronen verwendet werden, spricht man auch von einem Autoassoziationsnetz.

Arbeitsweise Die Arbeitsweise eines Hopfield-Netzes beruht darauf, dass es durch wiederholte Aktualisierung der Neuronen in einen stabilen Zustand übergeht, der einem gespeicherten Muster entspricht, wobei es durch Minimierung einer Energiefunktion Muster erkennt.

Bei der Implementierung eines Hopfieldnetzwerkes, also dabei eine programmierbare Form zu erstellen, stellt sich die Frage, ob die Gewichte der Neuronen synchron oder asynchron geändert werden sollen.

synchrone Änderung bedeutet, dass in einem Iterationsschritt alle Neuronen gleichzeitig aktualisiert werden.

asynchrone Änderung bedeutet, dass ein Neuron zufällig gewählt und berechnet und der Wert bei der nächsten Berechnung sofort mit berücksichtigt wird.

Asynchrones Ändern des Hopfieldnetzes ist am verbreitetsten, weil es die Stabilität des Netzwerks schneller erreicht.

Die Eingabefunktion für jedes Neuron ist die gewichtete Summe der Ausgabe aller anderen Neuronen:

Die Aktivierungsfunktion jedes Neurons ist eine Schwellenfunktion:

Die Ausgabefunktion jedes Neurons ist die identische Abbildung:

Die alternative Aktivierungsfunktion istChristian Borgelt: Hopfield Networks and Boltzmann Machines

Musterwiederherstellung mit Hopfieldnetzen Hopfield-Netze können als Autoassoziativspeicher benutzt werden, um verrauschte oder auch nur teilweise vorhandene Muster zu rekonstruieren. Dies geschieht in drei Phasen: Trainingsphase Hier werden dem Netz eine Zahl L von vorgegebenen Mustern eingespeichert. Dies geschieht durch Einstellen der synaptischen Gewichte. Gesucht ist also eine geeignete symmetrische Gewichtsmatrix der Größe . Sie kann zum Beispiel in einem Schritt mit folgender Regel berechnet werden, die auch als verallgemeinerte Hebbsche Lernregel bezeichnet wird:

wobei

die Anzahl der zu assoziierenden Muster,

die Anzahl der Dimensionen eines Musters und

die (unüberwachte) Lernaufgabe bezeichnen

Man möchte im Allgemeinen möglichst viele verschiedene Muster in ein Hopfield einspeisen. Jedoch ist die Speicherkapazität nach dem Verhältnis begrenzt.

Eingeben eines Testmusters Nun gibt man ein Testmuster, zum Beispiel ein verrauschtes oder unvollständiges Bild in das Netz hinein. Hierzu setzt man einfach die Neuronen in den Zustand, der dem Testmuster entspricht.

Rechenphase Die Neuronen werden asynchron mit folgender Regel aktualisiert:

wobei der Zustand des zu aktualisierenden Neurons und ein Schwellenwert ist.

Das Ergebnis könnte in diesem Fall ein je nach Anzahl der Iterationsschritte mehr oder weniger gut entrauschtes Bild sein. Bis zu einem Verhältnis (Verhältnis einzuspeichernder Muster zu Neuronen des Hopfield-Netzes) garantiert die Hebbsche Regel, dass das System sich nicht mehr ändert, wenn es in einem Zustand angelangt ist, der einem der gespeicherten Muster entspricht. Es lässt sich außerdem zeigen, dass das System immer in einem stabilen Endzustand ankommt.

Folgende drei Endzustände sind denkbar: Das Muster wurde korrekt erkannt. Das invertierte Muster wurde erkannt. Es kann kein Muster erkannt werden, das Netzwerk gelangt in einen stabilen unechten Zustand, der keinem der Muster entspricht.

Training eines Hopfield-Netzes Das Training eines Hopfield-Netzes besteht darin, die Energie jener Zustände zu senken, die das Netz speichern soll. Dadurch kann das Netz als adressierbarer Speicher fungieren: Es konvergiert zu einem gespeicherten Zustand, selbst wenn ihm nur ein Teil dieses Zustands vorgegeben wird. Das Netz lässt sich nutzen, um aus einer verfälschten Eingabe jenen trainierten Zustand wiederherzustellen, der der Eingabe am ähnlichsten ist. Man spricht hierbei von assoziativem Gedächtnis, da gespeicherte Informationen auf der Grundlage von Ähnlichkeit abgerufen werden.

Lernregeln Es gibt verschiedene Lernregeln, mit denen Informationen im Gedächtnis eines Hopfield-Netzwerks gespeichert werden können. Es ist wünschenswert, dass eine Lernregel die folgenden Eigenschaften aufweist:

Lokal: Eine Lernregel ist lokal, wenn jedes Gewicht unter Verwendung von Informationen aktualisiert wird, die den Neuronen an beiden Enden der jeweiligen Verbindung der das Gewicht zugeordnet ist zur Verfügung stehen. Inkrementell: Neue Muster können gelernt werden, ohne auf Informationen aus den bereits für das Training verwendeten alten Mustern zurückzugreifen. Das bedeutet: Wenn ein neues Muster für das Training genutzt wird, hängen die neuen Gewichtswerte lediglich von den alten Werten und dem neuen Muster ab.

Diese Eigenschaften sind erstrebenswert, weil eine Lernregel, die sie erfüllt, biologisch plausibler ist. Da das menschliche Gehirn beispielsweise ständig neue Konzepte lernt, lässt sich schlussfolgern, dass menschliches Lernen inkrementell erfolgt. Ein nicht-inkrementelles Lernsystem würde hingegen im Allgemeinen nur ein einziges Mal mit einer riesigen Menge an Trainingsdaten trainiert werden.

Hebbsche Lernregel Die Hebbsche Lernregel wurde von Donald Hebb eingeführt, um das assoziative Lernen zu erklären, bei dem die gleichzeitige Aktivierung von Neuronen zu einer deutlichen Zunahme der synaptischen Stärke zwischen diesen Zellen führt. Oft wird sie mit dem Satz zusammengefasst: „Neuronen, die gemeinsam feuern, verbinden sich miteinander. Neuronen, die nicht synchron feuern, bilden keine Verbindung aus.“

Die Hebbsche Lernregel ist sowohl lokal als auch inkrementell. Bei Hopfield-Netzen wird sie beim Lernen von binären Mustern folgendermaßen implementiert:

wobei für das Bit i aus dem Muster steht. Wenn die den Neuronen i und j entsprechenden Bits im Muster gleich sind, ist das Produkt positiv. Dies wiederum wirkt sich positiv auf das Gewicht aus, und die Werte von i und j tendieren dazu, einander anzugleichen. Das Gegenteil geschieht, wenn die den Neuronen i und j entsprechenden Bits unterschiedlich sind.

Stokey-Lernregel Diese Regel wurde von Amos Storkey eingeführt und ist sowohl lokal als auch inkrementell. Storkey zeigte zudem, dass ein mit dieser Regel trainiertes Hopfield-Netz eine höhere Kapazität aufweist als ein entsprechendes, mit der Hebbschen Lernregel trainiertes Netz. Man sagt, die Gewichtsmatrix eines Attraktor-Neuronennetzes folge der Storkey-Lernregel, wenn sie folgende Bedingung erfüllt:

wobei eine Form eines lokalen Feldes am Neuron i ist.

Diese Lernregel ist lokal, da die Synapsen nur die Neuronen in ihrer unmittelbaren Umgebung berücksichtigen. Aufgrund des Einflusses des lokalen Feldes nutzt die Regel mehr Informationen aus den Mustern und Gewichten als die verallgemeinerte Hebbsche Lernregel.

Kapazität Die Netzwerkkapazität des Hopfield-Netzwerkmodells wird durch die Anzahl der Neuronen und die Verbindungen innerhalb des jeweiligen Netzwerks bestimmt. Somit hängt die Anzahl der speicherbaren Informationen von der Anzahl der Neuronen und Verbindungen ab. Es wurde gezeigt, dass die Abrufgenauigkeit bei einem Verhältnis von Vektoren zu Knoten bei 0,138 lag. Das heißt, pro 1000 Knoten können etwa 138 Vektoren aus dem Speicher abgerufen werden.

Es ist daher offensichtlich, dass beim Versuch, eine große Anzahl von Vektoren zu speichern, häufig Fehler auftreten. Wenn das Hopfield-Modell nicht das korrekte Muster abruft, kann dies auf eine sogenannte Intrusion (Eindringen eines falschen Elements) zurückzuführen sein. Weil semantisch verwandte Elemente zur Verwechslung führen können, wird mitunter ein falsches Muster abgerufen. Das Hopfield-Netzwerkmodell neigt also dazu, beim Abruf ein gespeichertes Element mit einem anderen zu verwechseln. Durch die Storkey-Lernmethode lassen sich eine fehlerfreie Wiedergabe sowie eine hohe Kapazität von über 0,14 im Netzwerk erzielen. Später wurden weitere, vom Hopfield-Netzwerk inspirierte Modelle entwickelt, um die Speicherkapazität zu erhöhen und die Fehlerrate beim Abruf zu senken. Einige dieser Modelle ermöglichen zudem das sogenannte One Shot Learning (Lernen aus einem einzigen Durchgang).

Die Speicherkapazität bei Anwendung der Hebbschen Lernregel beträgt , wobei die Anzahl der Neuronen im Netz ist.

Die Speicherkapazität bei Anwendung der Stokey-Lernregel beträgt , wobei die Anzahl der Neuronen im Netz ist.

Diskrete Hopfield-Netze Diskrete Hopfield-Netze ist eine Art von Algorithmus, die als autoassoziative Erinnerungen bezeichnet werden. Sie können nützliche Informationen speichern und diese Informationen später aus teilweise gebrochenen Mustern reproduzieren. Autoassoziative Erinnerungen sind ein mögliches Modell, um Funktionen des Gedächtnisses in einem neuronalen Netzwerkmodell abzubilden.

Das Netzwerk arbeitet nur mit binären Vektoren. Aber für dieses Netzwerk werden keine Binärzahlen in einer typischen Form verwendet. Stattdessen verwendet man bipolare Zahlen. Sie sind fast gleich, aber anstelle von 0 verwendet man −1, um einen negativen Zustand zu decodieren. Grundsätzlich sind bipolare Vektoren eher orthogonal zueinander, was ein kritischer Moment für das diskrete Hopfield-Netz ist.Neural Networks in Python: Discrete Hopfield Network

Dichte assoziative Erinnerungen ermöglichen die Speicherung und den zuverlässigen Abruf einer exponentiell großen Anzahl von Erinnerungen. Diese Modelle sind effektive Beschreibungen einer mikroskopischen Theorie, die zusätzliche Neuronen hat und nur Zwei-Körper-Wechselwirkungen zwischen ihnen erfordert. Aus diesem Grund ist diese mikroskopische Theorie ein gültiges Modell eines großen assoziativen Gedächtnisses mit einem gewissen Grad an biologischer Plausibilität. Die Dynamik des Netzwerks und sein reduziertes dimensionales Äquivalent minimieren beide Energiefunktionen (Lyapunov-Funktionen).Dmitry Krotov, John Hopfield: Large Associative Memory Problem in Neurobiology and Machine Learning

Arbeitsweise