30
Mehrschichtige Neuronale Netze Delta-Regel Back-Propagation of Errors Back-propagation through time / Rekurrente Netze

Mehrschichtige Neuronale Netze

  • Upload
    neci

  • View
    41

  • Download
    0

Embed Size (px)

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

Page 1: Mehrschichtige Neuronale Netze

Mehrschichtige Neuronale Netze

Delta-Regel

Back-Propagation of Errors

Back-propagation through time / Rekurrente Netze

Page 2: Mehrschichtige Neuronale Netze

1

2

1

2

AND XOR

1 2

O1

w1 1

w0 1.5

?

Die “XOR-Problematik”

w2 1

Page 3: Mehrschichtige Neuronale Netze

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

Page 4: Mehrschichtige Neuronale Netze

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

Page 5: Mehrschichtige Neuronale Netze

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

Page 6: Mehrschichtige Neuronale Netze

Wie sieht das ungefähr aus?

Backward Propagation of Errors

Forward Propagation of Input Signals

1) 2)

Page 7: Mehrschichtige Neuronale Netze

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?

Page 8: Mehrschichtige Neuronale Netze

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)

Page 9: Mehrschichtige Neuronale Netze

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)

Page 10: Mehrschichtige Neuronale Netze

Gradientenverfahren

Page 11: Mehrschichtige Neuronale Netze

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:

Page 12: Mehrschichtige Neuronale Netze

Gradienten-Berechnung (1)

Wij E

Wij

i Oi

g hi

Vj

iVj

(6.7)

i g hi

i Oi

(6.8)

Page 13: Mehrschichtige Neuronale Netze

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)

Page 14: Mehrschichtige Neuronale Netze

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

Page 15: Mehrschichtige Neuronale Netze

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 !)

Page 16: Mehrschichtige Neuronale Netze

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. :-)

Page 17: Mehrschichtige Neuronale Netze

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) :

Page 18: Mehrschichtige Neuronale Netze

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

Page 19: Mehrschichtige Neuronale Netze

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

µ

Page 20: Mehrschichtige Neuronale Netze

Optimierungsmöglichkeiten für den Algorithmus

• Verwendung von anderen Fehler-Funktionen• Momentum-Terms• Verschiedene andere Minimierungsverfahren• Vermeidung von lokalen Minima

Page 21: Mehrschichtige Neuronale Netze

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)

Page 22: Mehrschichtige Neuronale Netze

Rekurrente Back-Propagation

• Erweiterung des Back-Propagation-Algorithmus auf beliebige Netze

• Bedingung: das Netz muss in einen stabilen Zustand konvergieren

Page 23: Mehrschichtige Neuronale Netze

Zwei Beispiele:

Page 24: Mehrschichtige Neuronale Netze

Aus eins wird zwei

dVidt

Vi g wijVj ij

dYidt

Yi g hp wpiYp Eip

Page 25: Mehrschichtige Neuronale Netze

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

Page 26: Mehrschichtige Neuronale Netze

Lernen von zeitlichen Abfolgen

• Sequenzerkennung

• Reproduktion von Mustern

• Zeitliche Zuordnung

Page 27: Mehrschichtige Neuronale Netze

“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

Page 28: Mehrschichtige Neuronale Netze

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

Page 29: Mehrschichtige Neuronale Netze

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

Page 30: Mehrschichtige Neuronale Netze

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