300 likes | 485 Views
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
E N D
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 • Es muß noch erörtert werden, wie dies im Einzelnen geschehen kann
Ein neuronales Netz, mit dem man XOR lösen könnte: …fehlen nur noch die richtigen Gewichte.
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? 1) 2) Backward Propagation of Errors Forward Propagation of Input Signals
Was passiert im Netz? (6.1) (6.2) (6.3) (6.4)
Berechnungen im 1. Layer (6.1) (6.2)
Berechnungen im 2. Layer (6.3) (6.4)
Eine neue Fehler-Funktion (6.5) wird zu: (6.6)
Gradienten-Berechnung (1) (6.7) (6.8)
Gradienten-Berechnung (2) (6.9) (6.10)
Die allgemeine Back-Propagation Update-Regel (6.11) Delta für Hidden-to-output Neuronen: (6.8) Delta für Input/Hidden-to-hidden Neuronen (6.10)
Vorgehensweise für Back-Propagation • Wir initialisieren die Gewichte mit kleinen Zufallszahlen…. • …wählen ein Muster als Eingabe…. • …berechnen die Auswirkungen der Eingabe auf das Netz… • …und erhalten schließlich die Abweichung der Ausgabe vom gewünschten Wert (im Idealfall natürlich = 0 !)
Der eigentliche Clou: • Wir berechnen die Fehler der anderen Gewichte (z.B. input-to-hidden), indem wir sie von dem Fehler der Ausgabe ableiten! • Nachdem wir alle Fehler berechnet haben, updaten wir alle Gewichte…. • …und machen mit dem nächsten Pattern bei Step 2 weiter. :-)
Genaueres zu den Steps 4) und 5) : “Backward propagation of errors”
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: Der Output ist uns bekannt und die Delta-Regel ebenso: Wir verwenden eine sigmoide Funktion, deren Ableitung g’ man wieder mit g beschreiben kann: Mit b=1/2 wird aus
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
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: t = 4 t = 3 t = 2 t = 1
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