Mehrschichtige Neuronale Netze

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