Hopfield-Netz

Sondertyp eines künstlichen Neuronalen Netzes

Als Hopfield-Netz bezeichnet man eine besondere Form eines künstlichen neuronalen Netzes. Es ist nach dem amerikanischen Wissenschaftler John Hopfield benannt, der das Modell 1982 bekannt machte.

Hopfield-Netz mit vier „Neuronen“

Struktur Bearbeiten

Hopfield-Netze gehören zur Klasse der Feedback-Netze (Netze mit Rückkopplung).[1][2] 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, 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. es gilt   für alle i und j. 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 Bearbeiten

Bei der Implementierung eines Hopfieldnetzwerkes 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.

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 ist[3]

 

Musterwiederherstellung mit Hopfieldnetzen Bearbeiten

Hopfield-Netze können als Autoassoziativspeicher benutzt werden, um verrauschte oder auch nur teilweise vorhandene Muster zu rekonstruieren. Dies geschieht in drei Phasen:[1][2]

Trainingsphase Bearbeiten

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 Bearbeiten

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 Bearbeiten

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.

Diskrete Hopfield-Netze Bearbeiten

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.[4]

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).[5]

Arbeitsweise Bearbeiten

In diesem Modell wird eine Menge von Komplexneuronen an eine Menge von Featureneuronen gekoppelt. Wenn die synaptischen Kopplungen und Neuronaktivierungsfunktionen angemessen ausgewählt werden, hat dieses dynamische System eine Energiefunktion, die seine Dynamik beschreibt. Die Minima (stabilen Punkte) dieser Dynamik befinden sich an denselben Stellen im Unterraum wie die Minima im entsprechenden dichten assoziativen Speichersystem. Wichtig ist, dass das resultierende dynamische System eine mathematische Struktur eines herkömmlichen wiederkehrenden neuronalen Netzes aufweist, in dem die Neuronen nur paarweise durch eine Matrix synaptischer Verbindungen interagieren.

Die Nervenimpulse von Aktionspotentialen in einer präsynaptischen Zelle erzeugen Eingangsströme in ein postsynaptisches Neuron. Als Folge eines einzelnen Nervenimpulses in der präsynaptischen Zelle steigt der Strom im postsynaptischen Neuron augenblicklich an und fällt dann exponentiell mit einer Zeitkonstante   ab. Im Folgenden werden die Ströme der Featureneuronen mit   bezeichnet, und die Ströme der Komplexneuronen werden mit   bezeichnet. Es gibt keine synaptischen Verbindungen innerhalb der Featureneuronen oder innerhalb der Komplexneuronen. Eine Matrix   bezeichnet die Stärke von Synapsen von einem Featureneuron   zu dem Komplexneuron  . Alle Synapsen werden als symmetrisch angenommen, so dass   für alle Featureneuronen   und alle Komplexneuronen   ist. Die Ausgabefunktionen der Komplexneuronen und der Featureneuronen werden mit   und   bezeichnet, die nichtlineare Funktionen der entsprechenden Ströme sind. Die Funktionen   und   sind die einzigen Nichtlinearitäten, die in diesem Modell auftreten. Schließlich werden die Zeitkonstanten für die beiden Gruppen von Neuronen mit   und   bezeichnet. Das Modell kann mit folgenden Gleichungen beschrieben werden:

 

Mathematisch beschreiben Gleichungen die zeitliche Entwicklung von zwei Gruppen von Neuronen. Für jedes Neuron werden seine zeitlichen Aktualisierungen durch die Eingaben von anderen Neuronen und seinem eigenen Zustand bestimmt. Aus diesem Grund wird die Energiefunktion für dieses System als Summe von drei Termen dargestellt: zwei Terme, die die Neuronen in jeder spezifischen Gruppe beschreiben, und der Interaktionsterm zwischen den beiden Gruppen von Neuronen. Mit diesen Auswahlmöglichkeiten kann die Energiefunktion für das Netzwerk geschrieben werden als

 

Durch Zeitableitung der Energie und Verwendung dynamischer Gleichungen kann gezeigt werden, dass die Energie auf der dynamischen Trajektorie monoton abnimmt:

 

Die letzte Ungleichung gilt, wenn die Hesse-Matrixen der Lagrange-Funktionen positiv semidefinit sind. Neben der Abnahme der Energiefunktion auf der dynamischen Bahn ist es wichtig zu prüfen, ob bei einer bestimmten Wahl der Aktivierungsfunktionen oder Lagrange-Funktionen die entsprechende Energie nach unten begrenzt wird. Dies kann beispielsweise erreicht werden, indem eine beschränkte Aktivierungsfunktion für die Featureneuronen   verwendet wird, z. B. hyperbolischer Tangens oder eine Sigmoidfunktion. Vorausgesetzt, dass die Energie begrenzt ist, wird die Dynamik des neuronalen Netzwerks schließlich einen festen Punkt erreichen, der einem der lokalen Minima der Energiefunktion entspricht. Die Energiefunktion enthält drei Terme: Der erste Term hängt nur von den Featureneuronen ab, der zweite Term hängt nur von den Komplexneuronen ab und der dritte Term ist der Interaktionsterm zwischen den beiden Gruppen von Neuronen.[5]

Moderne Hopfield-Netze Bearbeiten

Biologische neuronale Netze weisen eine große Heterogenität hinsichtlich unterschiedlicher Zelltypen auf. Das folgende mathematische Modell beschreibt ein vollständig verbundenes assoziatives Speichernetzwerk unter Annahme des extremen Grades an Heterogenität: Es wird angenommen, dass das Netzwerk vollständig verbunden ist, sodass jedes Neuron mit jedem anderen Neuron unter Verwendung einer symmetrischen Matrix von Gewichten   verbunden ist, wobei die Indexe   und   verschiedene Neuronen im Netzwerk bezeichnen. Der einfachste Weg, dieses Problem mathematisch zu formulieren, besteht darin, das Netzwerk durch eine Lagrange-Funktion   zu definieren, die von den Aktivitäten aller Neuronen im Netzwerk abhängt. Die Aktivierungsfunktion für jedes Neuron ist als partielle Ableitung der Lagrange-Funktion in Bezug auf die Aktivität dieses Neurons definiert:

 

Man kann sich   als axonalen Ausgang des Neurons   vorstellen. Im einfachsten Fall, wenn die Lagrange-Funktion für verschiedene Neuronen additiv ist, führt diese Definition zu einer Aktivierung, die eine nichtlineare Funktion der Aktivität dieses Neurons ist. Bei nicht-additiven Lagrange-Funktionen kann diese Aktivierungsfunktion von den Aktivitäten einer Gruppe von Neuronen abhängen. Die dynamischen Gleichungen, die die zeitliche Entwicklung eines gegebenen Neurons   beschreiben, sind gegeben durch

 

Jedes Neuron   sammelt die axonalen Ausgabewerte   aller Neuronen, gewichtet sie mit den synaptischen Koeffizienten   und erzeugt seine eigene zeitabhängige Aktivität  . Die zeitliche Entwicklung hat eine Zeitkonstante  , die im Allgemeinen für jedes Neuron unterschiedlich sein kann. Dieses Netzwerk hat eine globale Energiefunktion[6]

 

Beziehung zur statistischen Mechanik Bearbeiten

Für das Hopfield-Modell existiert eine Energiefunktion der Form

 ,

deren Wert, wie sich beweisen lässt, bei jeder Aktualisierung gemäß obiger Regel abnimmt. Nur bei den stabilen Mustern (und den unechten Zuständen) bleibt auch die Energie gleich, diese stellen also lokale Minima der Energielandschaft dar.

Es gibt einen Zusammenhang zwischen dem Hopfield-Modell und dem Ising-Modell, für dessen Energie gilt:

 .

Insbesondere zu Spingläsern, bei denen die   zufällig verteilt sind, besteht große Ähnlichkeit. So konnte mit Methoden der theoretischen Physik gezeigt werden, dass Hopfieldnetze nur bis zu einem Verhältnis   als assoziatives Gedächtnis verwendbar sind.

Konvergenzsatz Bearbeiten

Der Konvergenzsatz für Hopfield-Netze lautet: Werden die Aktivierungen der Neuronen eines Hopfield-Netzes sequentiell aktualisiert, so wird in endlich vielen Schritten ein stabiler Zustand erreicht. Werden die Neuronen in beliebiger, aber fester Reihenfolge zyklisch durchlaufen, sind höchstens   Schritte für Updates einzelner Neuronen nötig, wobei   die Anzahl der Neuronen des Hopfield-Netzes ist.

Vorausgesetzt, die Neuronen werden in einer beliebigen, aber festen Reihenfolge aktualisiert, garantiert dies, dass die Neuronen zyklisch durchlaufen werden, und daher jedes Neuron alle   Schritte aktualisiert wird. Ändert sich beim Durchlaufen aller   Neuronen keine Aktivierung, ist ein stabiler Zustand erreicht. Ändert sich beim Durchlaufen aller   Neuronen mindestens eine Aktivierung, kann der vorherige Zustand nicht wieder erreicht werden, weil entweder der neue Zustand eine geringere Energie hat als der alte (denn Updates können die Netzenergie nicht erhöhen) oder die Anzahl der Aktivierungen hat zugenommen (denn gleiche Energie ist nur für   möglich). Die Anzahl möglicher Zustände des Hopfield-Netzes ist  , von denen mindestens einer bei jedem Durchlauf der   Neuronen unerreichbar gemacht werden muss.[3]

Weblinks Bearbeiten

Einzelnachweise Bearbeiten

  1. a b Rudolf Kruse et al.: Computational Intelligence: Eine methodische Einführung in Künstliche Neuronale Netze, Evolutionäre Algorithmen, Fuzzy-Systeme und Bayes-Netze. Zweite Auflage. Springer-Vieweg, Wiesbaden 2015, ISBN 978-3-658-10903-5, S. 515.
  2. a b Rudolf Kruse et al.: Neuronale Netze | Computational Intelligence. In: Computational Intelligence: Eine methodische Einführung in Künstliche Neuronale Netze, Evolutionäre Algorithmen, Fuzzy-Systeme und Bayes-Netze. Zweite Auflage. Springer-Vieweg, Wiesbaden, 2015, abgerufen am 5. April 2017.
  3. a b Christian Borgelt: Hopfield Networks and Boltzmann Machines
  4. Neural Networks in Python: Discrete Hopfield Network
  5. a b Dmitry Krotov, John Hopfield: Large Associative Memory Problem in Neurobiology and Machine Learning
  6. Dmitry Krotov: Hierarchical Associative Memory