Sie sind auf Seite 1von 10

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
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
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.
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“.
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 Eckig (y) Essen?


(x) z = XOR(x,y)
Lakritze 1 1 0
Mäuse 0 0 0
(eckige) 0 1 1
Frösche
(schwarze) 1 0 1
Ufos

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,
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
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)
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


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
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…