380 likes | 603 Views
6. Lernverfahren Backpropagation. Jörg Krone, Ulrich Lehmann, Hans Brenig, Oliver Drölle, Michael Schneider. Backpropagation der Differenz k für die Anpassung der Gewichte. Inhalt. Prinzip Backpropagation Backpropagation-Regel Lernkurve Mögliche Probleme des Lernverfahrens
E N D
6. Lernverfahren Backpropagation Jörg Krone, Ulrich Lehmann, Hans Brenig, Oliver Drölle, Michael Schneider BackpropagationderDifferenz kfür die Anpassung der Gewichte 60 Lernverfahren Backpropagation
Inhalt • Prinzip Backpropagation • Backpropagation-Regel • Lernkurve • Mögliche Probleme des Lernverfahrens • Empfehlungen für ein erfolgreiches Training 60 Lernverfahren Backpropagation
Wie wird gelernt? Theoretisch mögliche Arten des Lernens • Entwicklung neuer Verbindungen • Löschen existierender Verbindungen • Modifikation der Gewichte wij von Verbindungen • Modifikation des Schwellwertes von Neuronen • Modifikation der Aktivierungs-, Propagierungs- oder Ausgabefunktion • Entwicklung neuer Zellen • Löschen von Zellen 60 Lernverfahren Backpropagation
Aktivierungsfunktionen für Backpropagation müssen diffenzierbar sein! meistens • Identität • logistische Fkt. • tanh (x) 60 Lernverfahren Backpropagation
Differenzierbare Aktivierungsfunktionen ++ Bei der sigmoiden (logistischen-) und tanh-Funktion sind die Ableitungen einfach aus den Funktionswerten berechenbar (z = x aus der vorhergehenden Grafik) bzw. logistische: 60 Lernverfahren Backpropagation
Logistische Funktion und ihre Ableitung 60 Lernverfahren Backpropagation
tanh (x)-Funktion und ihre Ableitung 60 Lernverfahren Backpropagation
Vergleich der sigmoiden Aktivierungsfunktionen 60 Lernverfahren Backpropagation
Ablauf des überwachten Lernendurch Backpropagation 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 (teachinginput) -> Differenzvektor • Rückwärtspropagierung der Fehler von der Ausgabeschicht zur Eingabeberechnet Änderungen der Gewichte zur Verringerung des Differenzvektors • Änderung der Gewichte aller Neuronen des Netzes mit den berechneten Änderungen 60 Lernverfahren Backpropagation
Fehlerkurve im Raum FehlerE Fehler E als Funktion der Gewichte w1 und w2 Ziel des Trainings ist es, den Fehler zu minimieren 60 Lernverfahren Backpropagation
w1 Gradientenverfahren Prinzip: Orthogonal zum Gradienten (Ableitung) nach unten (-) steigen, bis ein Minimum erreicht ist w1= - E(w1, w2) / w1 mit : Schrittweiteoder Lernfaktor oder Lernrate • w1 groß für eine große Steigung und • w1 klein für eine kleine Steigung • negatives Vorzeichen, da Minimum angestrebt wird 60 Lernverfahren Backpropagation
Demo: Gradientenabstieg mit variabler LernrateMATLAB 7.1/Demos/toolboxes/nn… 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 12
Backpropagation-Regel(MATLAB traingd) Die Backpropagation-Regel ist eine Verallgemeinerung der Delta-Regel 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: f‘j (net j) (tj – oj) falls j eine Ausgabezelle istj = f‘j (net j) k(kwjk) falls j eine verdeckte Zelle ist hierbei läuft der Summationsindex k über alle direkten Nachfolgezellen der aktuellen Zelle j (daher die Bezeichnung wjk) 60 Lernverfahren Backpropagation
Gewichtsveränderung für Neuron j auf einem verdeckten Layer 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 60 Lernverfahren Backpropagation
Überwachung der Lernkurvefür ein MLP-Netz 0 Epochen 10 Epochen 20 Epochen 50 Epochen 100 Epochen 225 Epochen Trainingsfehlerim Graph Aktivierungund Gewichte Biasund Gewichte Validierungsfehlerim Graph 60 Lernverfahren Backpropagation
E = f (Epochen) für 225 Epochen E Epochen Überwachung der Lernkurve • Abbruch, wenn der Trainingsfehler E (sw) eine vorgegebene Grenze unterschreitet • Für eine gute Generalisierungsleistung erfolgt Abbruch, bevor der Validierungsfehler (rot) bei kleinem Trainingsfehler wieder ansteigt 60 Lernverfahren Backpropagation
Problem Symmetrie des Lernverfahrens Backpropagation 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 = 1/6, w57 = 2/6, w57 = 3/6 net7 = 1) 60 Lernverfahren Backpropagation
Mögliche Probleme (LM) des Lernverfahrens Backpropagation Lokale Minima der Fehlerfläche Abhilfe: Kleine Lernrate verwenden und wiederholtes Training mit unterschiedlichen Initialwerten der Gewichte 60 Lernverfahren Backpropagation
Mögliche Probleme (Pla) des Lernverfahrens Backpropagation Flache Plateaus der Lernkurve praktisch keine Änderung wij = oi f‘j (net j) (tj – oj) mitf‘j (net j) sehr klein dadurch kleine Schrittweite für Änderungen vonwij Abhilfe: Modifiziertes Backpropagation mit Momentum-Term (mit a = 0,6 bis 0,9) wij (t+1) = oi f‘j (net j) (tj – oj) + awij (t) 60 Lernverfahren Backpropagation
Mögliche Probleme (Osz) des Lernverfahrens Backpropagation Oszillationin steilen Schluchten der Lernkurve wij = oi f‘j (net j) (tj – oj) mitf‘j (net j) sehr groß dadurch große Schrittweite für Änderungen vonwij Abhilfe: kleine Lernrate oder modifiziertes Backpropagation mit Momentum-Term 60 Lernverfahren Backpropagation
Mögliche Probleme (Ver) des Lernverfahrens Backpropagation Verlassen guter Fehlerminima Abhilfe: Kleine Lernrate ohne Momentum-Term 60 Lernverfahren Backpropagation
Beispiel: Gradientenabstieg mit MATLAB 7.1/Demos/toolboxes/nn… 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 60 Lernverfahren Backpropagation
Empfehlungen für ein erfolgreiches Training(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. 60 Lernverfahren Backpropagation
Aufteilung in Trainings-, Validierungs- und Testdaten • 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 Test- aus dem dritten Zeitbereich entnommen werden. 60 Lernverfahren Backpropagation
Ua V Ue V Beispiel: Kennlinie mit Trainings-, Validierungs- und Testdaten Trainingsdaten (hier Anzahl zu niedrig) Testdaten (hier Anzahl zu hoch) Validierungsdaten (hier Anzahl zu hoch) 60 Lernverfahren Backpropagation
Normierung der Trainingsdaten • 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). 60 Lernverfahren Backpropagation
Normierung der Trainingsdaten • 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. 60 Lernverfahren Backpropagation
t1 t2 t3 Normierung Ausgangssignale (Targets) normieren normieren t1 (normiert) Targetsnormiert [-1;+1] t2 (normiert) t3 (normiert) 60 Lernverfahren Backpropagation
in1 in2 in3 Normierung Inputs normieren normieren in1(norm) Inputsnormiert [-1;+1] in2(norm) in3(norm) 60 Lernverfahren Backpropagation
In1 In2 In n T1 T2 Tk IN HL OUT Training mit normierten Daten KNN trainieren mit normierten Trainingsdaten Inputsnormiert Targetsnormiert 60 Lernverfahren Backpropagation
Ablaufdiagramm Backpropagation 60 Lernverfahren Backpropagation
Beispiel: Gradientenabstieg mit MATLAB 7.1/Demos/toolboxes/nn… 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 60 Lernverfahren Backpropagation
Gewichtsänderung und Lernkurve für Beispiel Kennlinie mit 1-3-2-1-MLP • Trainingsfehler • Validierunsfehler 60 Lernverfahren Backpropagation
o1(KNN) o1 o2(KNN) o2 o3(KNN) o3 Denormierung nach erfolgreichem Training Outputs denormieren denormieren Outputsnormiert Outputs [-;+] 60 Lernverfahren Backpropagation
Begrenzung des Dynamikbereiches zur Erhöhung der Empfindlichkeit • 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. 60 Lernverfahren Backpropagation
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 Intelligencehttp://www.iai.fzk.de/medtech/biosignal/gma/tutorial/index.html • JNNS Manual (Stuttgarter Neuronales Netz in Java) Quellenverzeichnis 60 Lernverfahren Backpropagation
Fragen Fragen Sie bitte! 60 Lernverfahren Backpropagation
atanh(tpj-opj) 60 Lernverfahren Backpropagation