Das Hopfield-Netz ist eine besondere Form eines künstlichen neuronalen Netzes. Dieses Netzwerk wurde 1982 von dem Physiker John Hopfield entwickelt. Eine der Hauptanwendungen von Hopfieldnetzen ist die Fähigkeit dieser Netze, als autoassoziativer Speicher zu wirken. Deswegen erklären wir erst einmal was ein (auto)assoziativer Speicher ist.
Das John Hopfield Physiker war, ist kein Zufall. Tatsächlich ist dieses Netzwerk physikalisch motiviert und bietet interessante Analogien zur statistischen Physik. Wir interessieren uns hier aber nur für die grundlegende Arbeitsweise dieses Netzes und werden daher diese Aspekte nicht weiter vertiefen. In seinem Originalartikel verwendete Hopfield die Werte 0 und 1 (binäre Werte) für die Neuronen. Wir verwenden in diesem Abschnitt -1 und 1 (bipolare Werte) als Werte für die Neuronen. |
Die erste Seite von Hopfields 1982 erschienenem Artikel: |
Mathematisch betrachtet, bedient sich unser Gehirn der Vektorrechnung, wenn es darum geht, Bilder (Muster; engl. 'pattern') zu speichern oder wiederzuerkennen. Wir betrachten hier zweifarbige Muster und kodieren diese so, dass man jedes Muster eindeutig einem Vektor zuordnen kann.
Muster als Vektor darstellen:
v= {1,1,1,1,-1,-1,-1,1,-1,-1,-1,1,1,1,1,1} |
|
v={-1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,-1} |
|
v={-1,-1,-1,… , -1, -1} |
Die eigentliche Stärke des Netzwerkes liegt darin, dass selbst wenn das Eingangsmuster fehlerhaft ist, das entsprechende Ausgabemuster zugeordnet werden kann. Dabei verwendet das Netzwerk das Ausgabemuster zur erneuten Eingabe und nähert sich so schrittweise der Lösung an.
Manchmal kann es vorkommen, dass das Netz sich nicht entscheiden kann, also zwischen verschiedenen Mustern oszilliert, oder aber das Netzwerk konvergiert zu einem Muster, das dem ursprünglichen entgegengesetzt ist… doch davon später. Auch die spannende Frage, wieviel Muster ein Hopfieldnetz überhaupt zuverlässig speichern kann, verschieben wir vorerst auf einen späteren Abschnitt.
Die Spinne (stark verrauschtes Bild) wurde dem Netzwerk als Eingabemuster präsentiert. Das Netzwerk findet automatisch das Muster, das dem Eingabemuster am ehesten entspricht. |