MehrschichtigeNetze - Wie funktionieren neuronale Netze

10

Click here to load reader

description

a multilayer perceptron (MLP) is a feedforward artificial neural network model

Transcript of MehrschichtigeNetze - Wie funktionieren neuronale Netze

Page 1: MehrschichtigeNetze - Wie funktionieren neuronale Netze

Thema: Mehrschichtige Netze 5. Dezember 2007 Hauptseminar: Logik, Gehirn, Information Prof. Dr. Lauth, Dr. Brückner Referent: Franz Hell Mehrschichtige Netze – Multi-Layer Perceptron Gliederung:

1. Einführung 2. Das Multi-Layer Perceptron 3. Ein einfaches XOR-Netzwerk 4. Lernverfahren bei MLPs – Backpropagation of Error 5. Anwendungsbeispiele 6. Literatur

Page 2: MehrschichtigeNetze - Wie funktionieren neuronale Netze

1.Einführung - Historisches Wichtige Publikationen, Phasen der Forschung: Die Anfänge: (1943) W. McCulloch und W. Pitts : A logical calculus of the ideas immanent in nervous activity. (1949) Hebb, Donald : The Organization of Behavior: a neuropsychological approach (Hebbsche Lernregel) Hochphase: (1958) Rosenblatt, Frank : The perceptron : a probabilistic model for information storage and organization in the brain. Depression: Kritik an Perceptronen, Keine Lösung von XOR (1969) M. L. Minsky und S. A. Papert : Perceptrons. Rennaissance: Entdeckung des Backpropagation Algorithmus, MLPs (1974) P. J. Werbos, Beyond Regression (1986) David E. Rumelhart, Geoffrey E. Hinton und Ronald J. Williams : Learning representations by back-propagating errors. 1.Einführung – Rückblick: Das McCulloch Pitts Neuron Modell: Aktivierungsfunktion:

y = 1, falls (x1+x2+…xn) > Θ y = 0, falls (x1+x2+…xn) < Θ Eigenschaften: - McCulloch-Pitts-Zellen können ausschließlich binäre Signale verarbeiten - Jedes einzelne Neuron kann als Ausgabe nur eine 1 oder 0 erzeugen - Durch McCulloch-Pitts-Netze lassen sich sowohl AND-, OR- als auch NOT-Gatter simulieren >> sie bilden so eine vollständige Basis der einfachen boolschen Algebra Aber: keine Abbildung von nicht linear seperierbarer Funktionen wie XOR möglich

Page 3: MehrschichtigeNetze - Wie funktionieren neuronale Netze

Einführung – Rückblick: Das Perceptron - Modell und Aktivierungsfunktionen Eigenschaften: - Ein- und Ausgaben reellwertig und Eingabe wird gewichtet - Schwellenwert Θ als konstante, aber auch gewichtete Eingabe - Simulation von AND-, OR- und NOT-Gatter >> keine Abbildung von XOR möglich Einführung – Rückblick: Das Perceptron Lernverfahren „mit Lehrer“ Outputfunktion: Oj = Lernen durch Anpassen der Gewichte: Notationen: Δwij die Änderung des Gewichts wij für die Verbindung zwischen der Eingabezelle i und Ausgabezelle j, tj die gewünschte Ausgabe des Neurons j, oj die tatsächliche Ausgabe, xi die Eingabe des Neurons i und η > 0 der Lerngeschwindigkeits-Koeffizient.

Page 4: MehrschichtigeNetze - Wie funktionieren neuronale Netze

2. Das MultiLayer Perceptron - Ein mehrschichtiges Netz Topologie eines vollständig verbundenen Feedforward Netzes: - Ein- und Ausgaben in jeder Schicht reellwertig und Eingabe reell gewichtet - Alle Neuronen der n-ten Schicht sind vollständig mit den Neuronen der n+1ten Schicht verknüpft - Neuronen-Schichten zwischen Ein- und Ausgabeschicht werden als verdeckte Schichten (engl. hidden layer) bezeichnet. - Signale werden streng in Richtung von der Ein- zur Ausgabeschicht geleitet - Meist werden nur die inneren Schichten und die Ausgangsschicht gezählt >> Beispielnetz hier also ein drei-schichtiges Netz 3. Das MLP - Ein zwei-schichtiges MLP zur Berechnung von XOR x,y sind Inputs (zur Einfachheit binär: {0,1}) feuert bei Erreichen von Θ = 1 feuert bei Erreichen von Θ = 2 z = XOR(x,y) Beispiel: Ein Kind isst aus dem idealtypischen Gummibärchen Mix alle Bärchen außer Lakritze (eckig, schwarz) und Mäusen (Mäuseform >> „nicht eckig“, weiß >> „nicht schwarz“), alle anderen Gummibärchen sind entweder „schwarz“ und „nicht eckig“ oder „nicht schwarz“ und „eckig“.

Page 5: MehrschichtigeNetze - Wie funktionieren neuronale Netze

Vorhergehende Netze liefern nun dem Entscheidungsnetz den Input x=1 für schwarz (x= 0 für „nicht schwarz“) und y=1 für eckig (y=0 für „nicht eckig“). Schwarz

(x) Eckig (y) Essen?

z = XOR(x,y) Lakritze 1 1 0

Mäuse 0 0 0

(eckige) Frösche

0 1 1

(schwarze) Ufos

1 0 1

Bsp: Lakritze (x,y) = 1,1; z (1,1) = 0 Bsp: (eckiger) Frosch (x,y) = (1,0) z (1,0) = 1 4. Lernverfahren bei Neuronalen Netzen - Entwicklung neuer Verbindungen - Löschen existierender Verbindungen - Modifikation der Gewichtung wij von Verbindungen - Modifikation des Schwellenwertes von Neuronen - Modifikation der Aktivierungs-, Propagierungs- oder Ausgabefunktion 4. Lernverfahren bei MLPs – Backpropagation of Error Beschreibung des Algorithmus: Präsentation des Eingabemusters p durch entsprechende Aktivierung der Eingabeneuronen (Daten, Input) >> Vorwärtspropagierung des angelegten Eingabe p durch das Netz; Ausgabemuster für die aktuelle Eingabe erzeugen; >> Vergleich der Ausgabe (o) mit der erwünschten Ausgabe (t) liefert einen Fehlervektor; >> Rückwärtspropagierung der Fehler von der Ausgabeschicht zur Eingabe führt zu Änderungen der Verbindungsgewichte, um den Fehlervektor zu verringern, >> Anpassung der Gewichte aller Neuronen entsprechend der berechneten Änderungen, bis der Fehler minimiert ist. Beispiel eines zweischichtigen Multi Layer Perzeptrons mit ni Eingangsneuronen,

Page 6: MehrschichtigeNetze - Wie funktionieren neuronale Netze

nj Neuronen in der Internen Schicht und nk Neuronen in der Ausgangsschicht. Abbildung: für w1 = a und w2 = b ist der Fehler minimiert Back-Propagation Learning basiert auf einem Gradientenabsteigsverfahren auf der Fehleroberfläche über der Menge aller Gewichtungen. >> Die Gewichtsänderungen werden dabei so berechnet, dass sich der quadratische Fehler E für den aktuellen Input x verringert. Dafür wird der Gradient, d.h. der Anstieg der Fehlerfunktion an der durch das Gewicht w definierten Stelle genutzt. >> Das Gewicht wird dann in Richtung des negativen Gradienten der Fehlerfunktion verändert, wobei die Lernrate η die Schrittweite angibt. Mathematische Herleitung des Backpropagation Algorithmus: Notationen: xi Eingangssignal am Eingang ( = Ouput von oi im Beispiel) wij Gewichte zwischen der Eingangsschicht und der inneren Schicht netj Netto-Input des Neurons der inneren Schicht oj Output des Neurons j der inneren Schicht und zugleich Eingangssignal für die Neuronen der Ausgangssicht Wjk Gewichte zwischen der inneren Schicht und der Ausgangssicht netk Netto-Input des Neurons k der Ausgangssicht ok tatsächlicher Output des Neurons k der Ausgangsschicht tk gewünschter Output des Neurons k für das konkrete Trainingsbeispiel Wir benötigen dabei eine ableitbare Funktion: Bsp: Sigmoidfunktion Mathematische Herleitung des Backpropagation Algorithmus: Am Beginn der Trainingsphase werden alle Gewichte zufällig initialisiert. Im Feedforward Schritt wird ein Eingangsmuster am Eingang des Multilayer Perzeptrons angelegt und der

Page 7: MehrschichtigeNetze - Wie funktionieren neuronale Netze

Output des Netzes berechnet. Dazu wird zuerst der Netto-Input der Neuronen im Layer j berechnet. (1) Der Output der Neuronen im Layer j ist somit (2) Wobei f(net) die Aktivierungsfunktion (hier die Sigmoide-Funktion) darstellt. Im nächsten Schritt wird der Output des Layers k , der dem Output des Multilayer Perzeptrons entspricht, berechnet. Der Netto-Input der Neuronen im Layer k entspricht (3) und der korrespondierende Output lautet (4) Im Backpropagation Schritt wird nun mit Hilfe der Fehlerfunktion der quadratische Fehler berechnet. (5) Eine Strategie zur Korrektur der Gewichte und somit zur Reduzierung des Fehlers ist (6) wobei η für die Lernrate steht. Mit Hilfe der Kettenregel kann die partielle Ableitung von (6) ausgedrückt werden durch (7) Setzt man in den Ausdruck Gleichung (3) ein, so erhält man (8) Da die partielle Ableitung nur nach einer Komponente der Summe gebildet wird, kann man schreiben (9) Definiert man nun als (10) und setzt man dann in (10) in (6) ein, so erhält man (11) Um die Gleichung (6) zu berechnen, verwendet man wieder die Kettenregel. (12) Wobei man für den ersten Faktor (13) schreiben kann, wenn man die Definition der Fehlerfunktion aus Gleichung (5) einsetzt. Auch hier wird die partielle Ableitung nur nach einer Komponente der Summen gebildet. Darum kann man vereinfacht schreiben: (14) Für den zweiten Faktor aus Gleichung (12) gilt (15)

Page 8: MehrschichtigeNetze - Wie funktionieren neuronale Netze

Als Aktivierungsfunktion wird die Sigmoidfunktion verwendet, deren Ableitung lautet: (18) Unter Verwendung von (18) kann man daher schreiben (19) Somit erhält man für (20) Eingesetzt in Gleichung (11) erhält man für die Änderung der Gewichte (21) Diese Formel gilt allerdings nur für die Gewichte der Neuronen in der Ausgangsschicht! Für die Gewichte der Internen Neuronen setzt man analog an. (22) Für den Fall, daß nur eine Interne Schicht vorhanden ist, entspricht in obiger Gleichung oi = xi. Da sich der Faktor nicht direkt berechnen läßt, schreibt man ihn unter Zuhilfenahme von bekannten oder berechenbaren Ausdrücken an. (23) Aus Gleichung (22) und (23) folgt nun somit (24) Somit kann für , unter Verwendung der Ableitung der Sigmoidfkt. (18) geschrieben werden (25) Für die Änderung der Gewichte in der Inneren Schicht ergibt sich somit (26) Wobei für ein Netzwerk mit nur einer Inneren Schicht, welches wir hier exemplarisch behandelt haben, oi = xi gilt. Zusammenfassend erfolgt die Gewichtsänderung während des Lernprozesses eines Multi Layer Perzeptrons mit Hilfe des Backpropagation Algorithmus nach folgenden Formeln: für die Ausgangsschicht

Page 9: MehrschichtigeNetze - Wie funktionieren neuronale Netze

für innere Schichten 4. Lernverfahren bei MLPs – Backpropagation of Error: (Konvergenz)Probleme Beim Gradientenabstieg werden nur lokale Informationen berücksichtigt. >> lokales Minimum muss nicht das globale Minimum sein (Bild2) >> auf flachen Plateaus mit sehr geringer Steigung ist die Anpassung der Gewichte sehr langsam (sehr lange Trainingsdauer) (Bild3) >> In engen Schluchten der Fehlerfunktion, kann es passieren, dass der Fehler von einer zur andren Seitenwand des Graphen springt und nicht zum Minimum absteigt (Bild4) >> bei einer zu großen Lernrate können Minima auch wieder verlassen werden 5. Anwendungsbeispiele Perceptron MLP Beispiele: - Text vorlesen (NETtalk,1987) - Erkennung handschriftlich verfasster Zahlen (1989) - Auto fahren (ALVINN,1993) - Spracherkennung Literatur: Haykin, Simon: Neural Networks. A Comprehensive Foundation Pearson Education, Delhi, 2nd Edition, 1999

Page 10: MehrschichtigeNetze - Wie funktionieren neuronale Netze

Rojas, Raul: Theorie der neuronalen Netze. Springer, Berlin, 1993. http://page.mi.fu-berlin.de/rojas/neural/neuron.pdf Minsky, Marvin and Seymour Papert: Perceptrons. The MIT Press, Cambridge, expanded edition, 1988. David E. Rumelhart, Geoffrey E. Hinton und Ronald J. Williams : Learning representations by back-propagating errors. Nature, 1986 Wikipedia www.wikipedia.org MultiLayer Perceptron, Backpropagation… Interaktive MLP Demo http://www.freeisms.org/MLPApplet.html Google www.google.de MultiLayer Perceptron, Backpropagation, XOR…