14
MLP — Multi-Layer-Perzeptrone Steffen Bucher 25. Mai 2004 Inhaltsverzeichnis 1 Perzeptrone 2 1.1 XOR-Problem ............................. 2 2 Aufbau eines Multi-Layer-Perzeptrons 2 2.1 Berechnung der Ausgabe ....................... 3 2.2 Lernalgorithmus des Perzeptrons .................. 3 3 Gradientenabstiegsverfahren 4 3.1 Die Fehlerfunktion .......................... 4 3.2 Intuitiver Ansatz ........................... 4 3.3 Der Gradient und das Gewicht ................... 5 3.4 Kettenregel .............................. 7 4 Backpropagation 7 4.1 Zusammenfassen der Ergebnisse ................... 8 4.2 On-Neuron .............................. 8 5 Ablauf des Trainings 8 6 Probleme von Backpropagation 9 6.1 Symmetry breaking .......................... 9 6.2 Lokale Minima der Fehlerfl¨ ache ................... 10 6.3 Flache Plateaus ............................ 10 6.4 Oszillation in steilen Schluchten ................... 10 6.5 Verlassen guter Minima ....................... 10 6.6 Wahl der Schrittweite ........................ 12 7 Verbesserung des Backpropagation Algorithmus 12 7.1 Verwenden einer anderen Aktivierungsfunktion .......... 12 7.2 Momentum term ........................... 12 7.3 Anpassen der Lernrate w¨ ahrend des Trainings ........... 12 8 Spezielle Hardware L¨ osungen 12 1

MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

MLP — Multi-Layer-Perzeptrone

Steffen Bucher

25. Mai 2004

Inhaltsverzeichnis

1 Perzeptrone 21.1 XOR-Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Aufbau eines Multi-Layer-Perzeptrons 22.1 Berechnung der Ausgabe . . . . . . . . . . . . . . . . . . . . . . . 32.2 Lernalgorithmus des Perzeptrons . . . . . . . . . . . . . . . . . . 3

3 Gradientenabstiegsverfahren 43.1 Die Fehlerfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . 43.2 Intuitiver Ansatz . . . . . . . . . . . . . . . . . . . . . . . . . . . 43.3 Der Gradient und das Gewicht . . . . . . . . . . . . . . . . . . . 53.4 Kettenregel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4 Backpropagation 74.1 Zusammenfassen der Ergebnisse . . . . . . . . . . . . . . . . . . . 84.2 On-Neuron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

5 Ablauf des Trainings 8

6 Probleme von Backpropagation 96.1 Symmetry breaking . . . . . . . . . . . . . . . . . . . . . . . . . . 96.2 Lokale Minima der Fehlerflache . . . . . . . . . . . . . . . . . . . 106.3 Flache Plateaus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106.4 Oszillation in steilen Schluchten . . . . . . . . . . . . . . . . . . . 106.5 Verlassen guter Minima . . . . . . . . . . . . . . . . . . . . . . . 106.6 Wahl der Schrittweite . . . . . . . . . . . . . . . . . . . . . . . . 12

7 Verbesserung des Backpropagation Algorithmus 127.1 Verwenden einer anderen Aktivierungsfunktion . . . . . . . . . . 127.2 Momentum term . . . . . . . . . . . . . . . . . . . . . . . . . . . 127.3 Anpassen der Lernrate wahrend des Trainings . . . . . . . . . . . 12

8 Spezielle Hardware Losungen 12

1

Page 2: MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

Abbildung 1: Ein einfaches Beispiel eines Netzes mit einer versteckten Zwi-schenschicht Rot:Eingabe Neuronen, Gelb:Versteckte Neuronen, Blau:AusgabeNeuronen

1 Perzeptrone

Ein Perzeptron ist ein zweischichtiges Netz mit nur einer Schicht trainierbarerGewichte. Zuerst entwickelt von Frank Rosenblatt spater in dem Buch Perzep-trons von Minsky und Papert genau analysiert.

1.1 XOR-Problem

Einem einfachen (einschichtigen) Perzeptron ist es nicht moglich die XOR-Funktion zu reprasentieren. Ein einstufiges Perzeptron (d.h. ein Perzeptron mitnur einer Stufe modifizierbarer Gewichte) kann nur linear separierbare Mengen,d.h. Mengen, die durch deine Hyperebene trennbar sind, klassifizieren. Daherkommt auch die Definition des einfachen Perzeptrons das nur mit den Ausgabe-zustanden 1 oder 0 arbeitet. Um Funktionen hoherer Ordnung zu approximierenwerden mehrere Schichten benotigt, oder es muß auf andere Netzarchitekturenzuruckgegriffen werden.

2 Aufbau eines Multi-Layer-Perzeptrons

Ein Multi-Level-Perzeptron ist ein sogenanntes Feed-Forward Neuronales-Netzmit einer Eingabeschicht, mehreren versteckten Schichten und einer Ausgabe-schicht. Dabei bedeutet Feed-Forward, das die Signale der Neuronen nur in eineRichtung laufen namlich von der Eingabeschicht in Richtung Ausgabeschicht.

Als Eingabe verwendet man reelle Zahlenwerte. Die Ausgabe der Neuronensind auch wieder reelle Zahlenwerte, ebenso wie die Verbindungsgewichte derNeuronen. (siehe Abb.1 und Abb.2)

2

Page 3: MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

Abbildung 2: Ein komplexes Netz mit 5 Schichten Rot:Eingabe Neuronen,Gelb:Versteckte Neuronen, Blau:Ausgabe Neuronen

2.1 Berechnung der Ausgabe

Zur Berechnung der Ausgabe des MLP-Netzes geht man von links nach rechtsvor: Man berechnet die Ausgabe eines Neurons uber:

oj = fout(fact(netj)) (1)

netj =∑

i

oiwij − θ (2)

Als Ausgabefunktion verwendet man meistens die Identitat, sie kann also wegge-lassen werden. Die Aktivierungsfunktion kann eine beliebige Funktion sein. Umaber spater den Backpropagation-Algorithmus zu verwenden muß diese jedochdifferenzierbar sein. Die einfache Schwellenwert-Funktion ist z.B. nicht differen-zierbar. Man verwendet deshalb meistens die logistische Aktivierungsfunktion:

fLogistic =1

1 + e−x(3)

2.2 Lernalgorithmus des Perzeptrons

Der einfache Lernalgorithmus des Perzeptrons funktioniert wie folgt:

wt+1 =

wt + y falls y ∈ Y1 und yw ≤ 0wt − y falls y ∈ Y0 und yw ≥ 0wt sonst

(4)

Er kann aber leider nicht auf mehrschichtige Neuronale Netze angewandt wer-den, da fur die versteckten Neuronen i.a. keine Lehrersignale existieren. Wirbenotigen deshalb einen vollkommen anderen Ansatz.

3

Page 4: MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

3 Gradientenabstiegsverfahren

3.1 Die Fehlerfunktion

Um den Fehler eines Netzes zu beurteilen verwendet man eine sogenante Feh-lerfunktion. Diese Funktion hangt ab von den Gewichten des Netzes. Um denFehler eines MLP’s zu erhalten berechnet man die Summe der quadrierten Feh-ler der Output-Neuronen:

error(wxy) =∑

j∈OutputNeuronen

(tj − oj)2 (5)

Wobei tj der gewunschte Output an Output-Neuron j ist und oj der vom Netzgelieferte. Die Abb. 3 zeigt das Schaubild einer solchen Fehlerfunktion die vonzwei Gewichten abhangt.

Abbildung 3: Die Fehlerfunktion eines Netzes mit zwei Gewichten und vielenlokalen Optima

3.2 Intuitiver Ansatz

Was wir mit einem Lernalgorithmus erreichen wollen ist ein Minima der Feh-lerfunktion, am besten sollte der Fehler nach Abschluss des Lernvorganges 0betragen. Dies kann naturlich nur erreicht werden, wenn das Netz in der Lageist die Funktion ideal zu approximieren. Nehmen wir an, wir befinden uns an derPosition w1 = 1.25 und w2 = −0.2 (siehe Abb.5) dann ware die wunschenswerteFunktionsweise des Lernalgorithmus am Peak der Fehlerfunktion abzusteigen biszum Minima bei w1 = −0.5 und w2 = −0.5 (siehe Abb.6). Was haben wir an

4

Page 5: MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

mathematischen Hilfsmitteln zur Verfugung ? Nun der naheliegendste Weg umden Anstieg oder Abstieg einer Funktion zu berechnen ist ihre Ableitung. Immehrdimensionalen Fall ist die Ableitung der Gradient, dies ist der Vektor derimmer zum Punkt des starksten Anstiegs zeigt. (siehe Abb.3.2)

Abbildung 4: Der Gradient der Fehlerkurve als Vektorfeld von oben betrachtet

3.3 Der Gradient und das Gewicht

Leitet man eine mehrstellige Funktion partiell nach einer Variablen ab, so erhaltman die Projektion des Gradienten auf die Richtung dieser Variablen. Was wirverandern wollen sind die Gewichte des Netzes und zwar nicht in die Rich-tung des Gradienten sondern in die entgegengesetzte Richtung, in Richtung desgroßten Abstiegs. Somit erhalt man eine Formel fur die Anderung eines Ge-wichts:

∆wij = −η · ∂E

∂wij(6)

Um diesen Ausdruck berechnen zu konnen nun ein kleiner Exkurs in die Ma-thematik.

5

Page 6: MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

Abbildung 5: Hochster Punkt der Fehlerkurve (Pfeil)

Abbildung 6: Minimum der Fehlerkurve (Pfeil)

6

Page 7: MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

3.4 Kettenregel

Falls f differenzierbar an der Stelle x0 ist und g differenzierbar an der Stellef(x0) ist dann gilt

(g ◦ f)′(x0) = g′(f(x0)) · f ′(x0) (7)

4 Backpropagation

Mit Hilfe der Kettenregel konnen wir ∆wij nun in folgender Weise schreiben:

∆wij = −η · ∂E

∂oj· ∂oj

∂netj· ∂netj

∂wij(8)

Hierbei ist E die Fehlerfunktion, oj der Output von Neuron j und netj dieNetzeingabe in Neuron j

Um die Gleichung fur ∆wij zu vereinfachen fuhrt man den Begriff des Feh-lersignals δ ein.

δj =∂E

∂oj· ∂oj

∂netj=

∂E

∂netj(9)

Damit kann man ∆wij einfacher schreiben als:

∆wij = −η · δj ·∂netj∂wij

(10)

Nun gehen wir Schritt fur Schritt vor und berechnen die Ableitungen:

1. Abhangigkeit der Netzeingabe von Verbindungsgewicht wij

∂netj∂wij

=∂

∂wij

∑k

ok · wij = oi (11)

2. Abhangigkeit der Ausgabe eines Neurons von der Netzeingabe

∂oj

∂netj=

∂fact(netj)∂netj

= f ′act(netj) (12)

3. Abhangigkeit des Fehlers von der Ausgabe eines Neurons Die Fehlerfunk-tion hatten wir ja weiter oben schon eingefuhrt.

error(wxy) =∑

OutputNeuronen

(tj − oj)2 (13)

Statt dieser kann man aber auch folgende Funktion verwenden:

E =12·

∑OutputNeuronen

(tj − oj)2 (14)

7

Page 8: MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

Der einzige Unterschied besteht im Faktor 12 , dies ist spater gunstig um

die Ableitung zu berechnen. Es ist ja egal ob man die Fehlerfunktion oderdie Halbierte-Fehlerfunktion minimiert.

∂E

∂oj=

∂oj

12·

∑OutputNeuronen

(tj − oj)2 = −(tj − oj) (15)

Dies ist berechenbar fur alle Output-Neuronen da hier ja die gewunschenOutputs tj bekannt sind. Was macht man aber fur die versteckten Neuro-nen ?

∂E

∂oj= −

∑k

∂E

∂netk· ∂netk

∂oj=

∑k

(δk ·∂

∂oj

∑i

oiwik) =∑

k

δkwjk (16)

4.1 Zusammenfassen der Ergebnisse

Nach Berechnung der Ableitungen ergibt sich nun folgende einfache Formel furdie Anderung eines Gewichtes:

∆wij = −η · δj · oj (17)

w′ij = wij − η · δj · oj (18)

Wobei fur das Fehlersignal gilt:

δj ={

f ′act(netj) · (tj − oj) falls j Output-Neuronf ′act(netj) ·

∑k δkwjk falls j Verstecktes-Neuron (19)

Um das Fehlersignal fur alle Neuronen zu berechnen muß zuerst das Fehler-signal fur die Output-Neuronen berechnet werden, dann das Fehlersignal fur dieletzte versteckte Schicht usw. Aus diesem Grund nennt man den Backpropagation-Algorithmus auch “backpropagation of error”-Algorithmus. Es existierenalso zwei Laufrichtungen von Signalen. Zum einen die Eingabesignale die linksangelegt werden und sich dann nach rechts fortsetzen, zum anderen die Fehler-signale die von rechts nach links berechnet werden. (siehe Abb.7)

4.2 On-Neuron

Fasst man den Schwellenwert eines Neurons als zusatzliches Gewicht auf das aneinem sog. On-Neuron hangt, das immer 1 als Output liefert, so kann damit ganznormal wie mit einem normalen Gewicht gerechnet und auch trainiert werden:won = −θ

5 Ablauf des Trainings

1. Initialisieren

2. Auswahl der Trainingssets (Inputs und erwartete Outputs)

8

Page 9: MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

Abbildung 7: Laufrichtung der Signale im MLP

3. Anlegen des ersten Trainingsbeispiels

4. Ausgabe berechnen

5. Fehlersignal berechnen (Vergleich mit gewunschtem Output des Trainings-beispiels)

6. Gewichte andern

7. Anlegen des nachsten Trainingsbeispiels, dann weiter bei Schritt 4 (solangebis der Fehler unter einen Wert gefallen ist oder eine bestimme Anzahl vonIterationen durchlaufen wurde)

6 Probleme von Backpropagation

6.1 Symmetry breaking

Symmetry breaking ist ein Problem bei der Initialisierung der Gewichte einervollstandig verbundenen Schicht. Werden alle Gewichte gleich groß zum Beispielgleich 1 gewahlt, so kann der Backpropagation Algorithmus keine unterschiedli-chen Gewichte auf der Schicht mehr ausbilden. Dies kann man sich sehr schnellan einem kleinen Beispiel klar machen, wir betrachten ein Netz mit nur einerversteckten Schicht. Sind alle Gewichte gleich groß, so hat jedes Neuron in derversteckten Schicht den selben Input und damit auch denselben Output, so-mit auch alle Neuronen in der Ausgabe-Schicht. Die Gewichtsanderung einerVerbindung wird berechnet durch: ∆wij = −η · δj · oj

Da aber die Outputs aller Neuronen einer Schicht immer gleich sind, sinddie Gewichtsanderungen einer Schicht immer gleich. Somit kann das Netz niewieder aus dieser ‘Symetrie-Falle’ entkommen.

9

Page 10: MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

6.2 Lokale Minima der Fehlerflache

Das Problem hinter fast allen Lernalgorithmen ist ein optimales Minimum zufinden, allerdings bleibt das Gradientenverfahren naturlich auch bei lokalen Mi-nima stehen, es findet nur das lokale Minimum in seiner Umgebung. Je großerdie Netze sind und je komplexer die Funktionen die mit ihnen berechnet werdenkonnen umso starker zerkluftet ist die Fehlerfunktion und damit ist die Wahr-scheinlichkeit umso großer in einem suboptimalen Minimum stecken zu bleiben.(siehe Abb.8)

Abbildung 8: Lokale Minima der Fehlerflache

6.3 Flache Plateaus

Das Problem flacher Plateaus der Fehlerfunktion ist, dass der Gradient sehrniedrige Werte annimmt, das Netz also sehr langsam in eine Richtung konver-giert. Im Extremfall, also bei einem vollstandig ebenen Plateau, ist der Gradientsogar gleich Null und damit findet keine Gewichtsanderung mehr im Netz statt.In diesem Fall kann man auch nicht feststellen ob ein Minima erreicht wurdeoder ob man sich nur auf einem Plateau befindet. (siehe Abb.9)

6.4 Oszillation in steilen Schluchten

Besitzt die Fehlerfunktion eine steile Einkerbung, so kann der Fall eintreten,das der Gradient so groß wird, das man direkt an die gegenuberliegende Seitespringt und von dort, wieder zuruck. (siehe Abb.10)

6.5 Verlassen guter Minima

An sehr steilen Abstiegen wird der Gradient naturlich sehr groß. Dies kann dazufuhren, das uber das Minima herausgesprungen wird in ein anderes suboptimalesGebiet hinein. (siehe Abb.11)

10

Page 11: MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

Abbildung 9: Flache Plateaus der Fehlerflache

Abbildung 10: Oszillation in steilen Schluchten

Abbildung 11: Verlassen guter Minima der Fehlerflache

11

Page 12: MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

6.6 Wahl der Schrittweite

Wahlt man die Schrittweite zu klein, so dauert es sehr lange bis der Algo-rithmus konvergiert. Wahlt man sie zu groß, so werden eventuell enge Talerubersprungen.

7 Verbesserung des Backpropagation Algorith-mus

7.1 Verwenden einer anderen Aktivierungsfunktion

Durch eine Ersetzung der logistischen Aktivierungsfunktion durch den TangensHyperbolicus konvergiert der Backpropagation Algorithmus wesentlich schnel-ler.

7.2 Momentum term

Um das Training zu stabilisieren verwendet man den sog. ‘Momentum term’ derzusatzlich in die Berechnung von ∆w mit einfließt

∆wij = β ·∆woldij + η · δj · oj (20)

Das neue ∆w hangt also zusatzlich auch noch vom alten ∆w ab. Der Faktor βwird auch ‘momentum constant’ genannt. Ein typischer Wert fur β ist 0.95

7.3 Anpassen der Lernrate wahrend des Trainings

Eine Anpassung der Lernrate wahrend des Trainingszyklus kann die Geschwin-digkeit des Backpropagation-Algorithmus enorm verbessern.

8 Spezielle Hardware Losungen

Große Firmen wie Siemens oder Intel haben fruher Neurocomputer hergestellt,also spezielle Computer oder Chips in denen schon die Architektur eines Netzesund entsprechende Trainingsfunktionen auf Hardwareebene implementiert wa-ren und die somit sehr schnell im Vergleich zum damaligen PC waren. (sieheAbb.8)

Heutzutage werden die meisten Simulationsaufgaben vom PC ubernommen,fur spezielle, sehr schnelle, Hardwarelosungen existiert aber eventuell noch einkleiner Absatzmarkt, darauf hofft zumindest die Firma “Silicann Technologie’aus Rostock die gerade einen einfachen Chip mit 10 Eingabeneuronen, 6 ver-steckten Neuronen und 10 Ausgabeneuronen auf den Markt bringt. Er ist uberden PC programmierbar und soll z.B. fur schnelle Bildverarbeitung eingesetztwerden. (siehe Abb.8)

12

Page 13: MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

Abbildung 12: Dieses Bild zeigt den Neurocomputer Synapse 2 der von Siemensentwickelt wurde.

Abbildung 13: Simulationschip von Silicann

13

Page 14: MLP — Multi-Layer-Perzeptrone - informatik.uni-ulm.de · Abbildung 7: Laufrichtung der Signale im MLP 3. Anlegen des ersten Trainingsbeispiels 4. Ausgabe berechnen 5. Fehlersignal

Literatur

[1] M. Negevitsky. Artificial Intelligence: A Guide to IntelligentSystems. Addison Wesley, 2002

[2] U.Lammel and J.Cleve. Lehr- und Ubungsbuch KunstlicheIntelligenz. Fachbuchverlag Leipzig, 2001

[3] A.Zell. Simulation neuronaler Netze. Oldenbourg Verlag, 1997

[4] Burkhard Lenze. Einfuhrung in die Mathematik neuronalerNetze. Logos Verlag 1997

[5] Prof. Dr. Uwe Schoning. Theoretische Informatik II. Vorle-sungsscript 2004

[6] Ludwig Tomm. Analysis fur Informatiker. Vorlesungsscript2002

14