View
39
Download
0
Category
Preview:
DESCRIPTION
Mehrschichtige Neuronale Netze. Delta-Regel Back-Propagation of Errors Back-propagation through time / Rekurrente Netze. Die “XOR-Problematik”. AND. XOR. ?. Einfache Folgerungen:. Es gibt Probleme, die nur mit mehrschichtigen Netzen gelöst werden können - PowerPoint PPT Presentation
Citation preview
Mehrschichtige Neuronale Netze
Delta-Regel
Back-Propagation of Errors
Back-propagation through time / Rekurrente Netze
1
2
1
2
AND XOR
1 2
O1
w1 1
w0 1.5
?
Die “XOR-Problematik”
w2 1
Einfache Folgerungen:
• Es gibt Probleme, die nur mit mehrschichtigen Netzen gelöst werden können
• Es muß noch erörtert werden, wie dies im Einzelnen geschehen kann
1 2
V1 V2
O1
w11
w12
w21
w22
W11
W12
…fehlen nur noch die richtigen Gewichte.
Ein neuronales Netz, mit dem man XOR lösen könnte:
3 1
w13
w23
V3 1
W13
Die Idee von Back-Propagation
• Das Netz soll “selbstständig” lernen, seine Gewichte anzupassen
• Dieses Anpassen der Gewichte erfolgt so lange, bis die gewünschte Funktion erlernt ist
Wie sieht das ungefähr aus?
Backward Propagation of Errors
Forward Propagation of Input Signals
1) 2)
h jµ w jkk
µ
k (6.1)
Vjµ g(h j
µ ) g w jkkµ
k
(6.2)
hiµ WijVj
µ Wijg w jkkµ
k
j
j
(6.3)
Oiµ g(hi
µ ) g WijVjµ
j
g Wijg w jkk
µ
k
j
(6.4)
Was passiert im Netz?
1 2
V1 V2
O1
w11
w12w21
w22
W11 W12
Berechnungen im 1. Layer
(6.1)h jµ w jkk
µ
k
h10 w11 1
0 2
0w12 h20 w21 1
0 2
0w22
Vjµ g h j
µ (6.2)
1 2
V1 V2
O1
w11
w12w21
w22
W11 W12
Berechnungen im 2. Layer
hiµ WijVj
µ
j
h10 W11 V1
0 V2
0W12
Oiµ g hi
µ
(6.3)
(6.4)
Gradientenverfahren
Eine neue Fehler-Funktion
E w 1
2 iµ Oi
µ 2
µi (6.5)
E w 1
2 iµ g Wijg w jkk
µ
k
j
µi
2
(6.6)
wird zu:
Gradienten-Berechnung (1)
Wij E
Wij
i Oi
g hi
Vj
iVj
(6.7)
i g hi
i Oi
(6.8)
Gradienten-Berechnung (2)
w jk E
w jk
EVj
Vj
w jk
i Oi
g hi Wij g
i h j
k
iWij g h j
ki
jk
(6.9)
j g h j
Wij i
i (6.10)
Die allgemeine Back-Propagation Update-Regel
wpq output Vinputpatterns (6.11)
i g hi
i Oi
(6.8)
j g h j
Wij i
i (6.10)
Delta für Hidden-to-output Neuronen:
Delta für Input/Hidden-to-hidden Neuronen
Vorgehensweise für Back-Propagation
1. Wir initialisieren die Gewichte mit kleinen Zufallszahlen….
2. …wählen ein Muster als Eingabe….
3. …berechnen die Auswirkungen der Eingabe auf das Netz…
4. …und erhalten schließlich die Abweichung der Ausgabe vom gewünschten Wert (im Idealfall natürlich = 0 !)
Der eigentliche Clou:
5. Wir berechnen die Fehler der anderen Gewichte (z.B. input-to-hidden), indem wir sie von dem Fehler der Ausgabe ableiten!
6. Nachdem wir alle Fehler berechnet haben, updaten wir alle Gewichte….
7. …und machen mit dem nächsten Pattern bei Step 2 weiter. :-)
1 2
V1V2
O1
w11
w12 w21
w22
W11 W12
1
“Backward propagation of errors”
iM g hi
M iµ Vi
M
im 1 g hi
m 1 w jim j
m
j
Genaueres zu den Steps 4) und 5) :
Was macht diese Vorgehensweise so vorteilhaft?
• Verwendet man eine günstige Aktivierungsfunktion, muss man keine Ableitungen mehr berechnen!
• Günstig heißt in diesem Fall, man kann die Ableitung der Funktion durch die Funktion selbst darstellen (z.B. Sigmoid oder tanh)
• Mit bekanntem Output O=g(h) ist dann auch die Ableitung bekannt
Nochmal ins Detail:
g h f h 1
1 e 2h g h 2g h 1 g h
Oiµ g hi
µ
iµ Oi
µ 1 Oiµ i
µ Oiµ
Wir verwenden eine sigmoide Funktion, deren Ableitung g’ man wieder mit g beschreiben kann:
Der Output ist uns bekannt und die Delta-Regel ebenso:
iµ g hi
µ iµ Oi
µ
Mit wird aus iµ g hi
µ iµ Oi
µ
Optimierungsmöglichkeiten für den Algorithmus
• Verwendung von anderen Fehler-Funktionen• Momentum-Terms• Verschiedene andere Minimierungsverfahren• Vermeidung von lokalen Minima
Beispiele für die Anwendung von Backprop
• Verallgemeinerung von XOR (Parity)• Sonar: Zielerkennung• Navigation eines Fahrzeugs• Bildkomprimierung• Erkennung von handgeschriebenen PLZ-
Nummern• Spracherkennung (nur sehr eingeschränkt)
Rekurrente Back-Propagation
• Erweiterung des Back-Propagation-Algorithmus auf beliebige Netze
• Bedingung: das Netz muss in einen stabilen Zustand konvergieren
Zwei Beispiele:
Aus eins wird zwei
dVidt
Vi g wijVj ij
dYidt
Yi g hp wpiYp Eip
Wie funktioniert Back-Propagation bei rekurrenten
Netzen?• Pattern auswählen, Eingaben ins Netz “schicken”• Warten, bis das Netz in einen stabilen Zustand
konvergiert• Berechnung der Ausgabe-Fehler• Fehler ins zugehörige error-propagation-Netz
“schicken” und warten bis dieses in einen stabilen Zustand konvergiert
• Mit den Ausgaben dieses Netzes die neuen Gewichte berechnen
Lernen von zeitlichen Abfolgen
• Sequenzerkennung
• Reproduktion von Mustern
• Zeitliche Zuordnung
“Back-Propagation through time”
• Modellierung eines voll rekurrenten Netzes durch ein reines Feed-Forward-Netz
• Nur beim Umgang mit kleinen Sequenzen sinnvoll• Für jeden Zeitschritt t = 1, 2, …, T werden die
Einheiten des rekurrenten Netzes dupliziert (also T-mal)
• Im Feed-Forward-Netz werden in jedem Layer die Original-Gewichte verwendet
Ein konkretes Beispiel:
V1 V2
w12
w22w11
w21
w22
w22
w22
w11
w11
w11
w21
w21
w21
w12
w12
w12
t = 1
t = 2
t = 3
t = 4
V11
V12
V13
V14
V21
V22
V23
V24
Was bringt das?
• Das resultierende Feed-Forward-Netz kann mit Back-Propagation trainiert werden
• Hat man einmal die Gewichte berechnet, kann man wieder das rekurrente Netz benutzen
Resumé
• Back-Propagation ist eine interessante Methode um “Supervised Learning” zu ermöglichen
• Back-Propagation ist allerdings nur bei stark eingegrenzten Problemfeldern effizient einsetzbar
• Es gibt Bereiche, in denen Back-Propagation trotzdem nicht mit “herkömmlichen” Algorithmen mithalten kann
Recommended