KNN 4 Konzepte Architektur Training

Download Report

Transcript KNN 4 Konzepte Architektur Training

6. Lernverfahren Backpropagation
CIC Lab
Computational Intelligence
and Control Laboratory
Jörg Krone, Ulrich Lehmann,
Hans Brenig, Oliver Drölle, Michael Schneider
Backpropagation der Differenz k für die Anpassung der Gewichte
2
SS 2009
60 Lernverfahren Backpropagation
1
End
Inhalt
CIC Lab
Computational Intelligence
and Control Laboratory
a. Prinzip Backpropagation
b. Backpropagation-Regel
c. Lernkurve
d. Mögliche Probleme des Lernverfahrens
e. Empfehlungen für ein erfolgreiches Training
2
SS 2009
60 Lernverfahren Backpropagation
2
End
Wie wird gelernt?
CIC Lab
Computational Intelligence
and Control Laboratory
Theoretisch mögliche Arten des Lernens
1. Entwicklung neuer Verbindungen
2. Löschen existierender Verbindungen
3. Modifikation der Gewichte wij von Verbindungen
4. Modifikation des Schwellwertes  von Neuronen
5. Modifikation der Aktivierungs-, Propagierungs- oder
Ausgabefunktion
6. Entwicklung neuer Zellen
7. Löschen von Zellen
2
SS 2009
60 Lernverfahren Backpropagation
3
End
Aktivierungsfunktionen für Backpropagation
CIC Lab
Computational Intelligence
and Control Laboratory
müssen
diffenzierbar
sein!
meistens
• Identität
• logistische Fkt.
• tanh (x)
2
SS 2009
60 Lernverfahren Backpropagation
4
End
Differenzierbare
Aktivierungsfunktionen
CIC Lab
Computational Intelligence
and Control Laboratory
bzw.
logistische:
f '( z)  [1 tanh²(z)]
++ Bei der sigmoiden (logistischen-) und tanhFunktion sind die Ableitungen einfach aus den
Funktionswerten berechenbar (z = x aus der
vorhergehenden Grafik)
2
SS 2009
60 Lernverfahren Backpropagation
5
End
Logistische Funktion
und ihre Ableitung
CIC Lab
Computational Intelligence
and Control Laboratory
Logistische Aktivierung
1
0,9
Netzausgabe
f( x) 
1.0
1.00,7  e  ( b*x )
0,8
0,6
0,5
0,4
f
0,3
'
( x)
b * e (b*x )

(1.0  e( (b*x )) )²
0,2
0,1
0
-3
-2,5
-2
-1,5
-1
-0,5
0
0,5
1
1,5
2
2,5
3
Netzeingabe
Logistisch
Logistisch'
2
SS 2009
60 Lernverfahren Backpropagation
6
End
tanh (x)-Funktion
und ihre Ableitung
CIC Lab
Computational Intelligence
and Control Laboratory
Tanh Aktivierung
1
0,8
0,6
Netzausgabe
0,4
0,2
0
-3
-2,5
-2
-1,5
-1
-0,5
0
0,5
-0,2
1
f '( x)  b[1  tanh ²(b  x)]
1,5
2
2,5
3
-0,4
f( x)  tanh(b * x)
-0,6
-0,8
-1
Netzeingabe
Tanh
Tanh'
2
SS 2009
60 Lernverfahren Backpropagation
7
End
Vergleich der sigmoiden
Aktivierungsfunktionen
CIC Lab
Computational Intelligence
and Control Laboratory
Vergleich der Aktivierungsfunktionen
1
0,8
0,6
Netzausgabe
0,4
0,2
0
-3
-2,5
-2
-1,5
-1
-0,5
0
0,5
1
1,5
2
2,5
3
-0,2
-0,4
-0,6
-0,8
-1
Netzeingabe
Logistisch
Logistisch'
Tanh
Tanh'
2
SS 2009
60 Lernverfahren Backpropagation
8
End
Ablauf des überwachten Lernen
durch Backpropagation
CIC Lab
Computational Intelligence
and Control Laboratory
Backpropagation führt für alle Trainingsdatensätze folgende
Schritte durch:
• Präsentation des Eingabemusters an den Eingabeneuronen
• Vorwärtspropagierung der angelegten Eingabe durch das
Netz bis Ausgabe
• Vergleich der Ausgabe mit der erwünschten Ausgabe
(teaching input) -> Differenzvektor
• Rückwärtspropagierung der Fehler von der Ausgabeschicht
zur Eingabe berechnet Änderungen der Gewichte zur
Verringerung des Differenzvektors
• Änderung der Gewichte aller Neuronen des Netzes mit den
berechneten Änderungen
2
SS 2009
60 Lernverfahren Backpropagation
9
End
Fehlerkurve im Raum
CIC Lab
Computational Intelligence
and Control Laboratory
Fehler E
Fehler E als Funktion der Gewichte w1 und w2
Ziel des Trainings ist es, den Fehler zu minimieren
2
SS 2009
60 Lernverfahren Backpropagation
10
End
Gradientenverfahren
CIC Lab
Computational Intelligence
and Control Laboratory
Prinzip: Orthogonal zum Gradienten (Ableitung) nach
unten (-) steigen, bis ein Minimum erreicht ist
w1 = -  E(w1, w2) / w1
mit : Schrittweite
oder Lernfaktor
oder Lernrate
w1
• w1 groß für eine große Steigung und
• w1 klein für eine kleine Steigung
• negatives Vorzeichen, da Minimum angestrebt wird
SS 2009
60 Lernverfahren Backpropagation
2
11
End
Demo: Gradientenabstieg mit variabler Lernrate
MATLAB 7.1/Demos/toolboxes/nn…
CIC Lab
Computational Intelligence
and Control Laboratory
Kapitel 9 Performance Optimization - Steepest Descent: Einfluss
der Lernrate  auf den Gradientenabstieg mit dem Ziel, das
Minimum in der Mitte der gelben Fläche F = f (x1, x2) zu finden:
>>nnd9sdq
2
SS 2009
12
12
End
Backpropagation-Regel
(MATLAB traingd)
CIC Lab
Computational Intelligence
and Control Laboratory
Die Backpropagation-Regel ist eine Verallgemeinerung der DeltaRegel für Netze mit mehr als einer Schicht und für Neuronen mit
nichtlinearer, aber differenzierbarer Aktivierungsfunktion.
Sie lautet analog wie die Delta-Regel:
wij =  oi j
jedoch ist die Berechnung von j etwas komplizierter:
j =
f‘j (net j) (tj – oj)
falls j eine Ausgabezelle ist
f‘j (net j) k (k wjk) falls j eine verdeckte Zelle ist
hierbei läuft der Summationsindex k über alle direkten Nachfolgezellen
der aktuellen Zelle j (daher die Bezeichnung wjk)
2
SS 2009
60 Lernverfahren Backpropagation
13
End
CIC Lab
Gewichtsveränderung für Neuron
j auf einem verdeckten Layer
Computational Intelligence
and Control Laboratory
Die Nachfolgeneuronen auf dem
Outputlayer heißen k. Dann ist
das j des roten Neurons j auf
dem Hiddenlayer:
j = f‘j (net j)  k (k wjk)
falls j eine verdeckte Zelle ist
2
SS 2009
60 Lernverfahren Backpropagation
14
End
Überwachung der Lernkurve
für ein MLP-Netz
CIC Lab
Computational Intelligence
and Control Laboratory
Epochen
Trainingsfehler im Graph 50
20
Epochen
100
225
Epochen
010Epochen
Epochen
Aktivierung und Gewichte
Bias und Gewichte
Validierungsfehler im Graph
2
SS 2009
60 Lernverfahren Backpropagation
15
End
Überwachung der Lernkurve
CIC Lab
Computational Intelligence
and Control Laboratory
E = f (Epochen) für 225 Epochen
E
Epochen
1. Abbruch, wenn der Trainingsfehler E (sw) eine vorgegebene
Grenze unterschreitet
SS 2009
2. Für eine gute Generalisierungsleistung erfolgt Abbruch, bevor
der Validierungsfehler (rot) bei kleinem Trainingsfehler wieder
ansteigt
60 Lernverfahren Backpropagation
2
16
End
Problem Symmetrie des
Lernverfahrens Backpropagation
CIC Lab
Computational Intelligence
and Control Laboratory
Symmetrie von Gewichten eines Layers (alle Gewichte sind
gleich)
Abhilfe: Symmetry Breaking durch kleine zufällige Werte als
Initialwerte der Gewichte
oder Vorgabe so, dass für eine Aktivierung der Neuronen 4, 5 und
6 von 1 die Netzeingabe für Neuron 7 ebenfalls 1 ist. (z. B. w47 =
2
1/6, w57 = 2/6, w57 = 3/6  net7 = 1)
SS 2009
60 Lernverfahren Backpropagation
17
End
CIC Lab
Mögliche Probleme (LM) des
Lernverfahrens Backpropagation
Computational Intelligence
and Control Laboratory
Lokale Minima der Fehlerfläche
Abhilfe: Kleine Lernrate  verwenden und wiederholtes
Training mit unterschiedlichen Initialwerten der Gewichte
2
SS 2009
60 Lernverfahren Backpropagation
18
End
CIC Lab
Mögliche Probleme (Pla) des
Lernverfahrens Backpropagation
Computational Intelligence
and Control Laboratory
Flache Plateaus der Lernkurve  praktisch keine Änderung
wij =  oi f‘j (net j) (tj – oj)
mit f‘j (net j) sehr klein
dadurch kleine Schrittweite
für Änderungen von wij
Abhilfe: Modifiziertes Backpropagation mit MomentumTerm (mit a  0,6 bis 0,9)
wij (t+1) =  oi f‘j (net j) (tj – oj) + a wij (t)
SS 2009
60 Lernverfahren Backpropagation
2
19
End
Mögliche Probleme (Osz) des
Lernverfahrens Backpropagation
CIC Lab
Computational Intelligence
and Control Laboratory
Oszillation in steilen Schluchten der Lernkurve
wij =  oi f‘j (net j) (tj – oj)
mit f‘j (net j) sehr groß
dadurch große Schrittweite
für Änderungen von wij
Abhilfe: kleine Lernrate oder modifiziertes
Backpropagation mit Momentum-Term
2
SS 2009
60 Lernverfahren Backpropagation
20
End
CIC Lab
Mögliche Probleme (Ver) des
Lernverfahrens Backpropagation
Computational Intelligence
and Control Laboratory
Verlassen guter Fehlerminima
Abhilfe: Kleine Lernrate  ohne Momentum-Term
2
SS 2009
60 Lernverfahren Backpropagation
21
End
Beispiel: Gradientenabstieg mit
MATLAB 7.1/Demos/toolboxes/nn…
CIC Lab
Computational Intelligence
and Control Laboratory
Kapitel 9 Performance Optimization - Steepest Descent: durch
Variation der Lernrate lassen sich die möglichen Probleme beim
Bachpropagation gut ausprobieren. Start (Klick) in einer Ecke der
gelben Fläche eignet sich besonders gut: >>nnd9sdq
2
SS 2009
60 Lernverfahren Backpropagation
22
End
Empfehlungen für ein
erfolgreiches Training
CIC Lab
Computational Intelligence
and Control Laboratory
(MATLAB traingdm)
• Wahl der Schrittweite
– Mit Lernrate  = 0,9 beginnen und bei Bedarf langsam bis auf  =
0,02 verringern
• ggf. Momentum-Term mit a  0,6 bis 0,9 wählen
• Wahl der Aktivierungsfunktion zur Erhöhung der Dynamik
– Statt der logistischen [0...1] eine erweiterte logistische [-0,5 ...0,5]
oder die Aktivierungsfunktion tanh (x) benutzen, da durch den
Eingangbereich [-1...1] bei technisch üblichen Eingangswerten
von 0 die Ableitung der Aktivierung groß bleibt.
– Gewichte können so in der Umgebung von 0
wegen wij =  oi j stärker verändert werden.
2
SS 2009
60 Lernverfahren Backpropagation
23
End
CIC Lab
Aufteilung in Trainings-,
Validierungs- und Testdaten
Computational Intelligence
and Control Laboratory
• Liegen genügend Daten vor, mehr als das 3-fache der Anzahl
der Gewichte des untrainierten Netzes, dann kann z.B. wie in
der ersten Spalte aufgeteilt werden, sonst besser die zweite
Spalte (bis) wählen:
Trainingsdaten:
60% bis 90%
Validierungsdaten: 20% bis 8%
Testdaten:
20% bis 2%
• Die Anzahl der Trainingsdaten sollte möglichst größer als die
2-fache Anzahl der Gewichte sein
• Bei KNN für die Approximation oder Klassifikation kann zufällig
oder verteilt ausgewählt werden. Auch die Reihenfolge der
Trainingsdaten spielt bei Onlinetraining eine Rolle!
• Bei KNN für die Prognose sollten die Trainingsdaten aus dem
ersten Zeitbereich, Validierung- aus dem zweiten und Testaus dem dritten Zeitbereich entnommen werden.
SS 2009
60 Lernverfahren Backpropagation
2
24
End
Beispiel: Kennlinie mit Trainings-,
Validierungs- und Testdaten
CIC Lab
Computational Intelligence
and Control Laboratory
Ua
V
Ue
V
0,1
0,5
0,9
1
1,2
1,3
1,4
1,5
1,6
1,7
1,8
2,2
2,6
2,8
3
3,2
3,4
3,6
3,8
4,2
SS 2009
0,174
0,174
0,204
0,241
0,444
0,616
0,841
1,073
1,296
1,55
1,77
2,563
3
3,163
3,27
3,344
3,398
3,435
3,471
3,52
Trainingsdaten (hier Anzahl zu niedrig)
Testdaten (hier Anzahl zu hoch)
Validierungsdaten (hier Anzahl zu hoch)
60 Lernverfahren Backpropagation
2
25
End
Normierung der Trainingsdaten
CIC Lab
Computational Intelligence
and Control Laboratory
• Eingangs- und Ausgangswerte (Targets) können separat
normiert werden.
• Wird die logistische Aktivierungsfunktion benutzt, erfolgt die
Normierung so, dass alle Eingang- und Ausgangswerte im
Bereich [0...1] liegen.
• Wird die tanh (net) Aktivierungsfunktion benutzt, erfolgt die
Normierung in der Regel so, dass alle Eingang- und
Ausgangswerte im Bereich [-1...1] liegen. Ausnahmen bilden
Funktion mit „hochfrequentem Verlauf“ um den Ursprung (0).
2
SS 2009
60 Lernverfahren Backpropagation
26
End
Normierung der Trainingsdaten
CIC Lab
Computational Intelligence
and Control Laboratory
• Eingangs- und Ausgangswerte (Targets) können separat
normiert werden.
• Wird die logistische Aktivierungsfunktion für die Neuronen auf
dem Hiddenlayer benutzt, erfolgt die Normierung in der Regel
so, dass alle Eingang- und Ausgangswerte im Bereich [0...1]
liegen.
• Wird die tanh-Aktivierungsfunktion für die Neuronen auf dem
Hiddenlayer benutzt, erfolgt die Normierung in der Regel so,
dass alle Eingang- und Ausgangswerte im Bereich [-1...1]
liegen.
+ Haben die Neuronen auf dem Input- und Outputlayer eine
lineare Aktivierungsfunktion (z.B. Identität), kann das KNN in
der Produktionsphase dennoch Signale verarbeiten, die den
Normierungsbereich überschreiten.
SS 2009
60 Lernverfahren Backpropagation
2
27
End
Normierung
CIC Lab
Computational Intelligence
and Control Laboratory
Ausgangssignale (Targets) normieren
normieren
t1 (normiert)
t1
t2
t3
Targetsnormiert
[-1;+1]
t2 (normiert)
t3 (normiert)
Targetsnormiert
 Targets - Targetsmin
= 2  
 Targetsmax - Targetsmin

 - 1

2
SS 2009
60 Lernverfahren Backpropagation
28
End
Normierung
CIC Lab
Computational Intelligence
and Control Laboratory
Inputs normieren
normieren
in1
in2
in1(norm)
[-1;+1]
in3
Inputs normiert
in2(norm)
in3(norm)
 Inputs - Inputs min
= 2  
 Inputs max - Inputs min
Inputsnormiert

 - 1

2
SS 2009
60 Lernverfahren Backpropagation
29
End
Training mit normierten Daten
CIC Lab
Computational Intelligence
and Control Laboratory
KNN trainieren mit normierten
Trainingsdaten
In1
Inputsnormiert
T1
In2
T2
In n
Targetsnormiert
Tk
IN
HL
OUT
2
SS 2009
60 Lernverfahren Backpropagation
30
End
Zufallsinitialisieren der Gewichte und Schwellwerte?
Gewichte mit Zufallswerten initialisieren
Ja
Nein
CIC Lab
Computational Intelligence
and Control Laboratory
Präsentieren der Pattern in zufälliger Folge?
Ja
Patternreihenfolge zufällig festlegen
Ablaufdiagramm
Backpropagation
Nächsten Eingabevektor auswerten
Fehler im Output Layer errechnen
Fehler zum Input Layer zurückpropagieren
Verwendung des Momentum-Terms?
Gewichts/Treshold -justierung mit Momentum
Ja
Nein
Speichern der Korrektur für nächste Iteration
Gewichte und Schwellwerte anpassen
Weight Decay anwenden?
Weight Decay anwenden
Ja
Nein
Alle Pattern präsentiert?
Nein
Ja
Mean Square Error berechnen
Maximale Anzahl von Epochen erreicht?
oder User Abbruch?
oder Minimaler Fehler unterschritten?
Nein
2
Ja
SS 2009
60 Lernverfahren Backpropagation
31
End
Beispiel: Gradientenabstieg mit
MATLAB 7.1/Demos/toolboxes/nn…
CIC Lab
Computational Intelligence
and Control Laboratory
Kapitel 11 Backpropagation – Backprop. Calculation: der Ablauf
Vorwärtsberechnung des Eingangswertes, der Fehlerermittlung
Ausgang / Target und die Rückpropagation des Fehlers zum
Eingang werden schrittweise gezeigt – leider nicht besonders
transparent : >>nnd11bc
2
SS 2009
60 Lernverfahren Backpropagation
32
End
Gewichtsänderung und Lernkurve für
Beispiel Kennlinie mit 1-3-2-1-MLP
CIC Lab
Computational Intelligence
and Control Laboratory
• Trainingsfehler
• Validierunsfehler
2
SS 2009
60 Lernverfahren Backpropagation
33
End
CIC Lab
Denormierung
nach erfolgreichem Training
Computational Intelligence
and Control Laboratory
Outputs denormieren
denormieren
o1(KNN)
Outputsnormiert
o2(KNN)
o3(KNN)
o1
[-;+]
o2
Outputs
o3
Outputs = 0.5  Outputsnormiert  1   Targetsmax - Targetsmin   Targetsmin
2
SS 2009
60 Lernverfahren Backpropagation
34
End
Begrenzung des Dynamikbereiches
zur Erhöhung der Empfindlichkeit
CIC Lab
Computational Intelligence
and Control Laboratory
• Die Normierung der Ein- und Ausgänge begrenzt
den Dynamikbereich für die Zahlenwerte im KNN
• Eine weitere Begrenzung kann durch Vorgabe einer
maximalen Differenz (tpj-opj) auf +/- 17 (Zell S. 114
unten) sinnvoll sein.
– Insbesondere dann, wenn Verstärkungsfunktionen für die
Differenz, z.B. atanh(tpj-opj) = [-∞ bis + ∞], eingesetzt
werden, um den Fehler für Werte (tpj-opj) von > |+/- 0,5|
progressiv zu verstärken.
• Die Begrenzung der Differenz schützt vor einem
Überlauf im Rechner.
2
SS 2009
60 Lernverfahren Backpropagation
35
End
Quellenverzeichnis
CIC Lab
Computational Intelligence
and Control Laboratory
• MATLAB User's Guide Neural Network Toolbox
• MATLAB Printable (PDF) Documentation on the Web
• A. Zell: Simulation von neuronalen Netzen
• VDE/VDI GMA FA 5.14 Computational Intelligence
http://www.iai.fzk.de/medtech/biosignal/gma/tutorial/index.html
• JNNS Manual (Stuttgarter Neuronales Netz in Java)
2
36
60 Lernverfahren Backpropagation
SS 2009
End
Fragen
CIC Lab
Computational Intelligence
and Control Laboratory
Fragen Sie bitte!
2
SS 2009
60 Lernverfahren Backpropagation
37
End
atanh(tpj-opj)
CIC Lab
Computational Intelligence
and Control Laboratory
2
SS 2009
60 Lernverfahren Backpropagation
38
End