Hopfield-Netz

Werbung
Was bisher geschah
Künstliche neuronale Netze
I
Ein-Schicht-Feed-Forward-Netze (∆-Regel)
I
Mehr-Schicht-Feed-Forward-Netze (Backpropagation)
I
RBF-Netze
I
rekurrente Netze (Jordan, Elman)
Assoziativspeicher:
I
heteroassoziative Netze
(bidirektionaler Assoziativspeicher)
I
Mustererkennungsnetze
I
autoassoziative Netze
zur Zuordnung unvollständiger oder verrauschter Eingaben
72
Hopfield-Netz
(autoassoziativer Musterspeicher)
Netz-Topologie:
I
Neuronen sind Schwellwertelemente (verarbeiten
Bipolarvektoren)
I
Jedes Neuron ist zugleich Ein- und Ausgang x ∈ {−1, 1}m
I
vollständige symmetrische Verbindungen ohne
Selbstrückkopplung (Km )
(ungerichteter vollständiger Graph Km , ohne Schlingen)
I
Gewichte an jeder Kante (für beide Richtungen gleich)
Gewichte in Gewichtsmatrix R m×m (symmetrisch, irreflexiv)
I
Zustand des Netzes (zu einem Zeitpunkt t):
Aktivierung aller Neuronen (Vektor aus {−1, 1}m )
73
Hopfield-Netz – Neuronenmodell
Neuronenmodell (modifizierte Schwellwertelemente):
I
Verarbeitung von Bipolarvektoren
I
Eingangsfunktion: gewichtete Summe
I
Aktivierungsfunktion (abhängig von der Aktivierung a im
vorigen Schritt:

 −1 falls v < 0
1
falls v > 0
sgn(v , a) =

a
falls v = 0
I
Ausgangsfunktion: Identität
74
Hopfield-Netz – Funktion
Eingabe : Startzustand (initiale Zustände aller Neuronen)
Berechnung : Folge von Schritten (Zustandsübergängen):
Aktualisierung: Neuberechnung der Aktivierung der
Neuronen
wiederholen, bis stabiler Zustand erreicht oder Abbruch
ausgelöst wird
Konvergenz : Erreichen eines stabilen Zustandes (ändert sich bei
Aktualisierung beliebiger Neuronen nicht)
Ausgabe : Zustand des stabilen Netzes
Aktualisierung in jedem Schritt:
asynchron: Zustandsänderung eines zufällige gewählten Neurons
(faire Auswahl)
synchron: gleichzeitige Zustandsänderung für alle Neuronen
Beispiel (Tafel):
W =
0
−1
−1
0
x = (1, −1)
75
Hopfield-Netz – Beispiele


0 1 1
W = 1 0 1 
1 1 0
x = (1, −1, 1)

0 −1
1
1
 −1
0 −1 −1 

W =
 1 −1
0
1 
1 −1
1
0


−1 −1 −1
W =  −1 −1 −1 
−1 −1 −1
x = (−1, −1, 1, 1)

x = (1, 1, 1)
wii 6= 0 → Oszillation
76
Hopfield-Netz – Training
direkte Berechnung der Gewichte möglich,
kein Training notwendig
I
für ein zu speicherndes Muster x ∈ {−1, 1}m :
W = xT x
mit Modifikation: alle Diagonalelemente 0
I
für mehrere zu speichernde Muster
x (1) ∈ {−1, 1}m , . . . , x (k ) ∈ {−1, 1}m :
W =
n X
x (i)
T
x (i)
i=1
mit Modifikation: alle Diagonalelemente 0
Beispiel (Tafel):
I
ein Muster: x = (1, −1, 1, 1)
I
mehrere Muster: x (1) = (−1, 1, −1) und x (2) = (1, −1, 1)
77
Hopfield-Netz – Aufgabe
Hopfield-Netz zum Speichern der Muster
•
• • •
•
• • •
•
•
• • •
• • •
• • •
• • •
• •
• •
• •
Eingabe der Muster
• •
•
•
• •
• •
• •
78
Herunterladen