03.11.2013 Aufrufe

Künstliche Neuronale Netze

Künstliche Neuronale Netze

Künstliche Neuronale Netze

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

12.05.2009<br />

www.is.cs.uni-fra ankfurt.de<br />

Einführung in die Methoden der<br />

<strong>Künstliche</strong>n Intelligenz<br />

Vorlesung 7 – <strong>Künstliche</strong> <strong>Neuronale</strong> <strong>Netze</strong><br />

12. Mai 2009<br />

Andreas D. Lattner,<br />

Ingo J. Timm, René Schumann<br />

?<br />

Aldebaran Robotics<br />

Aldebaran Robotics<br />

Aldebaran Robotics<br />

2<br />

1


12.05.2009<br />

Inhalt der Vorlesung<br />

1. Wie arbeitet unser Gehirn?<br />

2. <strong>Neuronale</strong> Netzwerke (Idealisiertes Modell)<br />

3. Perzeptron (single-layer Netzwerke)<br />

4. Multilayer Netzwerke<br />

5. Einsatz von neuronalen <strong>Netze</strong>n<br />

6. Zusammenfassung<br />

3<br />

Funktionsweise unseres Gehirns<br />

93, S. 11, nach Lassen et al., 1988<br />

• Menschlicher Kortex<br />

(Großhirnrinde) läßt<br />

verschiedene Neuronentypen<br />

erkennen<br />

• Eine hierarchische Struktur<br />

ist zu erkennen<br />

• Unterschiedliche Aufgaben<br />

(z. B. vierte Schicht zuständig<br />

für Sinneswahrnehmungen)<br />

Quelle: Rojas, 19<br />

Wie arbeitet unser Gehirn?<br />

4<br />

2


12.05.2009<br />

Motorische Zelle<br />

Quelle: Rojas, 1993, S. 11, nach Stevens, 1992<br />

Wie arbeitet unser Gehirn?<br />

• Neuron wird auch Soma oder<br />

Zellkörper genannt.<br />

• Sie enthält Zellkern oder Nucleus.<br />

• Neuron besteht aus Zelleib mit<br />

dickem Zellfortsatz (Axon,<br />

Nervenfaser).<br />

• Dendriten (astartige<br />

Wucherungen) leiten elektrische<br />

Impulse an den Zellkörper weiter.<br />

• Aufbau einer elektrischen<br />

Spannung im Zellkern.<br />

• Entladung bei Überschreitung<br />

einer Schwelle.<br />

• Weiterleitung dieses Potentials an<br />

andere Zellen über Synapsen.<br />

• Zellkern-Axon-Synapsen-<br />

Dendriten der anderen Zellen.<br />

• Informationsweitergabe an 10 2 bis<br />

10 4 Zellen.<br />

5<br />

Aktionspotential<br />

Quelle: Köhler, 1990, nach Schmidt & Tewes, 1987<br />

• Phase 1: Ruhepotential<br />

• Phase 2: von außen, d. h.<br />

entweder von anderen Zellen<br />

oder von einem Rezeptor<br />

(z. B. Augen) kommt ein<br />

elektrischer Impuls. Der<br />

Schwellenwert wird überstiegen,<br />

die Zelle “feuert” von -90 mV auf<br />

einen positiven Wert innerhalb<br />

eines Bruchteils einer<br />

Millisekunde<br />

• Phase 3: Repolarisierung<br />

• Phase 4: Ruhepotential<br />

• Synapsen exitatorisch (erregend)<br />

oder inhibitorisch (hemmend).<br />

• Die Übertragung eines Potentials<br />

durch Synapsen sind entweder<br />

chemisch oder elektrisch.<br />

Wie arbeitet unser Gehirn?<br />

6<br />

3


12.05.2009<br />

Vergleich Gehirn-Computer<br />

• Eine Kollektion von einfachen Zellen führt uns zum<br />

Denken, Agieren und Bewußtsein<br />

• Vergleich zwischen Gehirnen und digitalen Computern<br />

• Speicher, Verarbeitungsgeschwindigkeit, Parallelität, Fehlertoleranz<br />

• Obwohl ein Computer millionenfach schneller bei Rechenoperationen<br />

ist als das Gehirn, ist das Gehirn schneller bei der<br />

Verarbeitung einer Aufgabe (z. B. Erkennung eines Gesichts)<br />

Wie arbeitet unser Gehirn?<br />

7<br />

2. <strong>Neuronale</strong> Netzwerke<br />

• <strong>Neuronale</strong> <strong>Netze</strong> (auch künstliche neuronale <strong>Netze</strong>, KNN)<br />

• Design ideal für induktives Lernen, können Generalisieren und<br />

sind deshalb für die Modellierung von Wert.<br />

• Breite Einsatzfelder<br />

• Ein neuronales Netz wird aus einer Anzahl von<br />

Units/Neuronen, zusammengesetzt, die durch Links<br />

verbunden sind.<br />

• Jeder Link hat ein numerisches Gewicht. Sie stellen das<br />

‘Gedächtnis’ in einem neuronalen Netz dar. Sie werden<br />

während des Lernvorgangs verändert.<br />

<strong>Neuronale</strong> Netzwerke<br />

8<br />

4


12.05.2009<br />

2. <strong>Neuronale</strong> Netzwerke<br />

• Einige Neuronen sind mit der<br />

Außenwelt verbunden und<br />

heißen Input- oder<br />

Outputneuronen.<br />

• Jedes Neuron hat einen Satz<br />

von Eingabelinks von anderen<br />

Neuronen, ein<br />

Aktivierungslevel und einen<br />

Satz von Ausgabe-Links zu<br />

anderen Neuronen.<br />

<strong>Neuronale</strong> Netzwerke<br />

• Die Idee ist: jedes Neuron<br />

berechnet sein eigenes<br />

Aktivierungslevel (abhängig<br />

von Gewichten und Eingaben<br />

der Nachbarn). Dabei gibt es<br />

keine ‘globale’ Kontrolle über<br />

die Neuronen.<br />

• Aufbau eines Netzwerkes:<br />

• Wieviele Neuronen braucht<br />

man?<br />

• Welche Art von Neuronen<br />

braucht man?<br />

• Wie sollen die Neuronen<br />

miteinander vernetzt sein?<br />

9<br />

Notation<br />

<strong>Neuronale</strong> Netzwerke<br />

10<br />

5


12.05.2009<br />

Typisches Neuron<br />

• Typisches Neuron<br />

• lineare Komponente Inputfunktion<br />

• nicht lineare Komponente Aktivierungsfunktion<br />

• elementarer Verarbeitungsschritt ist die Aktivierungsfunktion g, ein<br />

Beispiel:<br />

⎛ ⎞<br />

a ⎜ ⎟<br />

i<br />

= g(<br />

ini<br />

) = g<br />

∑w<br />

j,<br />

ia<br />

j<br />

⎝ j ⎠<br />

<strong>Neuronale</strong> Netzwerke<br />

11<br />

Aktivierungsfunktion<br />

⎧1,if<br />

x ≥ t<br />

⎧+<br />

1,if<br />

x ≥ 0<br />

step t<br />

(<br />

x<br />

)<br />

=<br />

⎨<br />

sign<br />

(<br />

x<br />

)<br />

=<br />

⎩0,<br />

if x < t<br />

⎩ ⎨ −1,if<br />

x < 0<br />

1<br />

sigmoid(<br />

x)<br />

= 1 + e<br />

−x<br />

<strong>Neuronale</strong> Netzwerke<br />

12<br />

6


12.05.2009<br />

Logische Gatter<br />

• Neuronen mit einer Step-Funktion sind wie logische Gatter,<br />

wenn die Eingabewerte und die Schwellenwerte in einer<br />

bestimmten Art gesetzt sind.<br />

<strong>Neuronale</strong> Netzwerke<br />

13<br />

Feed-Forward Netzwerke<br />

• Links sind unidirektional, keine<br />

Zyklen<br />

• Technisch gesehen sind sie<br />

gerichtete azyklische Graphen<br />

• Meistens in Schichten geordnet<br />

• Jedes Neuron der einen Schicht ist<br />

mit jedem Neuron der nächsten<br />

Schicht verlinkt (vollständig vernetzt)<br />

• Keine Links innerhalb einer Schicht,<br />

keine zurück zur letzten Schicht und<br />

keine, die Schichten überspringen<br />

Netzwerkstrukturen<br />

14<br />

7


12.05.2009<br />

Bemerkungen<br />

• Feed-Forward <strong>Netze</strong> haben keine<br />

internen Zustände außer deren<br />

Gewichte, die Aktivierung vom<br />

letzten Schritt (zeitmäßig) spielt<br />

keine Rolle.<br />

• Derartige Netzwerke können<br />

adaptive Versionen eines<br />

einfachen Reflex-Agenten<br />

implementieren.<br />

• Gut verständlich, deswegen in der<br />

weiteren Betrachtung.<br />

• Input-, Output- und<br />

Hiddenneuronen.<br />

• Perzeptrons sind Netzwerke<br />

ohne Hiddenschicht. Das macht<br />

das Lernen einfacher, sie sind<br />

aber limitiert, was die<br />

Repräsentation angeht.<br />

• Netzwerke mit ein oder mehreren<br />

Hiddenschichten werden<br />

Multilayer-Netzwerke genannt.<br />

• Mit einer Hiddenschicht kann man<br />

jede kontinuierliche Funktion der<br />

Eingaben repräsentieren, mit zwei<br />

Schichten sogar nicht<br />

kontinuierliche Funktionen.<br />

• Lernen als nichtlineare<br />

Regression.<br />

Netzwerkstrukturen<br />

15<br />

Recurrent Netzwerke<br />

• Links können beliebig geformt<br />

werden.<br />

• Haben interne Zustände<br />

wegen Feedback. Sie sind in<br />

den Aktivierungsleveln<br />

gespeichert.<br />

• Das bedeutet auch, dass<br />

derartige Netzwerke weniger<br />

geordnet sind und deshalb<br />

“unstabil” werden können.<br />

• Lernen ist schwieriger aber sie<br />

können kompliziertere<br />

Agenten implementieren.<br />

• Hopfield <strong>Netze</strong> und Boltzmann<br />

Maschine<br />

Netzwerkstrukturen<br />

16<br />

8


12.05.2009<br />

Hopfield Netzwerke<br />

• Wahrscheinlich die am besten<br />

verstandenen Recurrent-<br />

Netzwerke.<br />

• Sie benutzen bidirektionale<br />

Verbindungen mit<br />

symmetrischen Gewichten.<br />

• Alle Neuronen sind<br />

gleichzeitig Input- und<br />

Outputneuronen.<br />

• Aktivierungsfunktion ist Sign.<br />

• Aktivierungslevel können nur<br />

+-1 sein.<br />

• Es funktioniert wie ein<br />

Assoziativspeicher, nach dem<br />

Training versetzt ein neuer<br />

Stimulus das Netzwerk in ein<br />

stabiles Aktivierungsmuster.<br />

Dieses korrespondiert zu den<br />

Beispielen und zwar so, dass<br />

es möglichst ähnlich dem<br />

Stimulus ist.<br />

• Interessantes theoretisches<br />

Ergebnis: Hopfield <strong>Netze</strong><br />

können bis zu 0.138n<br />

Trainingsbeispiele speichern,<br />

n ist die Anzahl der units.<br />

Netzwerkstrukturen<br />

17<br />

Boltzmann Maschine<br />

• Benutzen auch symmetrische<br />

Gewichte, haben aber auch<br />

Neuronen, die weder Inputnoch<br />

Outputneuronen sind.<br />

• Sie unterliegen deshalb<br />

Zustandsveränderungen wie<br />

sie bei der Simulated<br />

Annealing Suche vorkommt.<br />

• Sie benutzen auch eine<br />

stochastische<br />

Aktivierungsfunktion, so dass<br />

die Wahrscheinlichkeit der<br />

Ausgabe 1 eine Funktion des<br />

totalen gewichteten Inputs ist.<br />

Netzwerkstrukturen<br />

18<br />

9


12.05.2009<br />

Assoziative Netzwerke – Beispiel<br />

[Rojas, 1996]<br />

19<br />

Optimale Netzwerkstrukturen<br />

• Richtige Struktur ist entscheidend für Lernverlauf<br />

• Ist Struktur zu klein, kann man die gewünschte Funktion nicht<br />

repräsentieren.<br />

• Ist sie zu groß, dann haben wir eine Art große lookup table ohne<br />

Generalisierung.<br />

• Overfitting ist ein Problem.<br />

Netzwerkstrukturen<br />

20<br />

10


12.05.2009<br />

Optimale Netzwerkstrukturen<br />

• Feed-forward <strong>Netze</strong> mit einer<br />

Hiddenschicht können jede<br />

kontinuierliche Funktion<br />

lernen, mit zwei<br />

Hiddenschichten sogar jede<br />

Funktion.<br />

• Die Anzahl der benötigten<br />

Neuronen ist allerdings ein<br />

Problem, sie kann exponentiell<br />

wachsen.<br />

• Keine gute Theorie<br />

vorhanden, um NERFs<br />

(Network Efficiently<br />

Representable Functions) zu<br />

repräsentieren.<br />

Netzwerkstrukturen<br />

• Man kann das Finden einer<br />

guten Netzwerkstruktur als ein<br />

Suchproblem definieren. Man<br />

hat versucht, es mit<br />

genetischen Algorithmen zu<br />

lösen, aber der Suchraum ist<br />

zu groß.<br />

• Die meisten Netzwerke<br />

verfeinern eine einmal<br />

gesetzte Struktur (z. B.<br />

Cascade Correlation).<br />

• Cross-Validation und<br />

Bootstrap-Methoden zum<br />

Testen.<br />

21<br />

Perzeptrons<br />

• Eigenschaften<br />

• Einschicht Feed-<br />

forward Netzwerk<br />

• Jedes<br />

Ouptutneuron ist<br />

unabhängig,<br />

deshalb kann nur<br />

ein Perzeptron<br />

betrachtet werden.<br />

Perzeptron<br />

22<br />

11


12.05.2009<br />

Ausdrucksfähigkeit von Perzeptrons<br />

• Neuronen können AND, OR<br />

und NOT repräsentieren,<br />

• also kann ein feed-forward<br />

Netzwerk jede Boolsche<br />

Funktion repräsentieren.<br />

• Gilt das auch für single-layer<br />

perceptrons?<br />

• Einige Boolsche Funktionen<br />

können repräsentiert werden:<br />

• Majority<br />

• Ein Entscheidungsbaum<br />

braucht O(2 n ), ein Perzeptron<br />

1 Neuron mit n Gewichten,<br />

also einfacher.<br />

• Allerdings sind einfache<br />

Perzeptrons limitiert in ihrer<br />

Repräsentationsfähigkeit<br />

• Sie können z. B. das<br />

Restaurantproblem nicht<br />

lösen, weil jeder Inputwert nur<br />

jeden Outputwert in eine<br />

Richtung beeinflussen kann,<br />

egal, was die anderen<br />

Inputwerte haben.<br />

Perzeptron<br />

23<br />

Ausdrucksfähigkeit von Perzeptrons<br />

I 1 I 2 O<br />

0 0 0<br />

0 1 1<br />

1 0 1<br />

1 1 0<br />

• Was können sie repräsentieren?<br />

• Probleme bei nicht linear separierbaren Funktionen.<br />

• Aber: ein Perzeptron kann alle linear separierbaren Funktionen<br />

lernen, wenn genug Beispiele vorhanden sind.<br />

Perzeptron<br />

24<br />

12


12.05.2009<br />

Lineare Separierbarkeit<br />

• Drei Eingaben<br />

• Ebene noch visualisierbar<br />

• I 1 +I 2 +I 3 =1.5<br />

Perzeptron<br />

• Neuron<br />

• Positive unter der Ebene<br />

• (-I 1 )+(-I 2 )+(-I 3 ) > -1.5<br />

• implementiert die Funktion<br />

25<br />

Lernen von linear separierbaren Funktionen<br />

• Die meisten Netzwerke folgen<br />

dem current-best-hypothesis<br />

Ansatz.<br />

• Hier ist die Hypothese ein<br />

Netzwerk, das durch die<br />

Gewichte bestimmt ist. Das<br />

Netzwerk wird dann<br />

aktualisiert, um es an die<br />

Beispiele anzupassen.<br />

• Die Gewichte werden<br />

sukzessive und in kleinen<br />

Schritten verändert.<br />

• Der einzige Unterschied zu<br />

logischen Algorithmen ist,<br />

dass der Lernprozess ein<br />

Beispiel mehrere Male<br />

benutzt.<br />

• Der Updateprozess ist<br />

typischerweise in Epochen<br />

unterteilt. Nach jeder Epoche<br />

werden die Gewichte neu<br />

geformt.<br />

Perzeptron<br />

26<br />

13


12.05.2009<br />

Generelles Schema<br />

• Generelle generische Methode des Lernens in neuronalen <strong>Netze</strong>n<br />

• O = Output, T = Target, Error = T - O<br />

• Gewichtsveränderung:<br />

• W j = W j + α × I j × Error, α ist die Lernrate<br />

Perzeptron<br />

27<br />

Perzeptrons und Entscheidungsbäume<br />

• Lokales und verteiltes Kodieren<br />

• Diskret und reell<br />

• Lernkurve für zwei Probleme: Majority, WillWait-Problem<br />

• Perzeptron gut für Majority, weil linear separabel, Entscheidungsbaum<br />

hat Probleme<br />

• WillWait gut für Entscheidungsbaum aber nicht linear separabel, auch<br />

hart für Perzeptron (65% Genauigkeit)<br />

Perzeptron<br />

28<br />

14


12.05.2009<br />

Multilayer Feed-forward Netzwerke<br />

• Rosenblatt Ende der 50er Jahre mit single-layer<br />

Perzeptrons.<br />

• Lernalgorithmen in Multilayer Netzwerken nicht effizient.<br />

Keine Garantie für das Finden eines globalen<br />

Minimums.<br />

• Backpropagation als häufigste Lernmethode (Bryson &<br />

Ho, 1969), aber erst Mitte der 80er gab es Rückenwind.<br />

Multilayer Netzwerke<br />

29<br />

Back-Propagation Lernen<br />

• Annahme: Konstruktion eines Netzwerkes zur Lösung des<br />

Restaurant-Problems. Ein Perzeptron ist nicht mächtig genug, aber<br />

versuchen wir es mit einem Zweischicht-Netzwerk.<br />

• 10 Attribute = 10 Inputneuronen, wieviel Hiddenunits?<br />

Multilayer Netzwerke<br />

30<br />

15


12.05.2009<br />

Back-Propagation Lernen<br />

• Lernen bei Perzeptrons einfach<br />

• Nur ein Gewicht zwischen Input<br />

und Output<br />

• Wenn Fehler vorhanden<br />

(Target, Output), t) dann werden<br />

die Gewichte verändert.<br />

• Bei Multilayer Netzwerken<br />

schwieriger<br />

• Viele Gewichte zwischen jedem<br />

Input und Output vorhanden<br />

• Back-Propagation Algorithmus<br />

• Verteilt die Gewichtsveränderungen<br />

‘vernünftig’<br />

• Auch hier wird versucht, den<br />

Fehler zwischen Ziel und<br />

aktuellem Output zu minimieren<br />

Multilayer Netzwerke<br />

• Outputschicht<br />

• Gewichtsveränderung ähnlich<br />

der des Perzeptrons. Zwei<br />

Unterschiede gibt es:<br />

• Aktivierung der<br />

Hiddenneuronen statt<br />

Inputneuronen.<br />

• Regel enthält einen Term für<br />

den Gradienten der<br />

Aktivierungsfunktion. Wenn<br />

Err i = (T - O) der Fehler des<br />

Outputneurons ist, dann ist die<br />

Gewichtsveränderung zwischen<br />

Neuron i und j<br />

w = w + α × a × Err × g´(<br />

in )<br />

j, i j,<br />

i<br />

j i<br />

i<br />

31<br />

Back-Propagation Lernen<br />

W j,i = W j,i + α ×a j × Err i × g’(in i )<br />

• g’(in g( i i) ist die Ableitung der Aktivierungsfunktion g. Wir defineren einen neuen<br />

Fehlerterm Δ i , der für Outputneuronen als Δ i = Err i g’(in i ) definiert ist.<br />

W j,i = W j,i + α ×a j ×Δ i<br />

• Für die Veränderungen der Gewichte zwischen zwischen den Hidden- und<br />

den Inputneuronen wird Error-Back-Propagation eingesetzt. Die Idee ist, daß<br />

das Hiddenneuron j für einen Teil des Δ i -Fehlers eines jeden Outputneurons,<br />

mit dem es verbunden ist, verantwortlich ist. Also werden die Δ i -Werte<br />

abhängig von der Stärke der Verbindung aufgeteilt und zu den Δ j -Werten für<br />

die Hiddenschicht zurückpropagiert.<br />

Δ j = g’(in j ) ∑ i W j,i Δ i<br />

Multilayer Netzwerke<br />

32<br />

16


12.05.2009<br />

Back-Propagation Lernen<br />

Δ j = g’(in j ) ∑ i W j,i Δ i<br />

• Jetzt kann die Regel der Gewichtsveränderung zwischen der Hidden- und der<br />

Inputschicht folgendermaßen beschrieben werden:<br />

W k,,j = W k,,j + α ×I k ×Δ j<br />

• Der Algorithmus funktioniert folgendermaßen:<br />

• Errechne die Δ-Werte für die Outputunits, verwende den beobachteten<br />

Fehler.<br />

• Starte mit der Outputschicht, wiederhole das Folgende für jede Schicht<br />

des Netzwerks, bis die erste Hiddenschicht erreicht ist.<br />

• Propagiere die Δ-Werte zurück zur vorhergehenden Schicht.<br />

• Update der Gewichte zwischen den beiden Schichten.<br />

Multilayer Netzwerke<br />

33<br />

Backpropagation Algorithmus<br />

Feed forward<br />

Error computation<br />

Backpropagation<br />

[Russell & Norvig, 2003]<br />

34<br />

17


12.05.2009<br />

Backpropagation – Illustration<br />

• Feedforward network with<br />

a 1 a 3 a 5<br />

initial weights<br />

w 13<br />

w 35<br />

• Lerning rate α<br />

1 1<br />

3<br />

5<br />

w 14<br />

w 36<br />

• Two inputs and outputs<br />

a 2 a<br />

w 4 a<br />

23<br />

w 6<br />

45<br />

• Compute output for first 1 2<br />

4<br />

6<br />

w 24 w 46<br />

examples<br />

• Compare to desired target<br />

value<br />

1<br />

1<br />

I1 I2 T1 T2<br />

1 1 1 0<br />

0 0 0 1<br />

...<br />

35<br />

Backpropagation – Illustration (2)<br />

• Compute error: Err=T-O<br />

a 1 a 3 a 5 Δ w 5<br />

13<br />

w 35<br />

1 1<br />

3<br />

5<br />

• W j,i = W j,i + α ×a j × Err i × g’(in i )<br />

w 14<br />

w 36<br />

• Error term Δ i = Err i g’(in i )<br />

a 2 a<br />

w 4 a<br />

23<br />

w 6<br />

45<br />

1 2<br />

• W j,i = W j,i + α ×a j ×Δ<br />

4<br />

6<br />

i<br />

w 24 w 46<br />

Δ 6<br />

• Compute error terms for output<br />

units Δ 5 and Δ 6<br />

I1 I2 T1 T2<br />

• Adaptation of weights for<br />

• w 36 and w 46<br />

0 0 0 1<br />

• w 35 and w 45<br />

1 1 1 0<br />

...<br />

36<br />

1<br />

1<br />

18


12.05.2009<br />

Backpropagation – Illustration (3)<br />

• Process hidden units<br />

• Compute error terms Δ 3 and Δ 4<br />

• Δ j = g’(in j ) ∑ i W j,i Δ i<br />

• W j,i = W j,i + α ×a j ×Δ i<br />

• Here: W k,j = W k,j + α ×I k ×Δ j<br />

1<br />

1<br />

a 1 a 3 Δ 3<br />

a 5 Δ<br />

w 5<br />

13<br />

w 35<br />

1<br />

3<br />

5<br />

w 14<br />

w 36<br />

2<br />

w 24<br />

4<br />

w 46<br />

6<br />

a 2<br />

w 23<br />

a 4<br />

w 45<br />

a 6<br />

Δ 4 Δ 6<br />

1<br />

1<br />

• Adaptation of weights for<br />

• w 13 and w 23<br />

I1 I2 T1 T2<br />

• w 14 and w 24<br />

1 1 1 0<br />

0 0 0 1<br />

...<br />

37<br />

Backpropagation – Illustration (4)<br />

• Compute output for second<br />

a 1 a 3 a 5<br />

example<br />

w 13<br />

w 35<br />

• Compare to desired target 0 1<br />

3<br />

5<br />

w 14<br />

w 36<br />

value<br />

a<br />

• ...<br />

2 a<br />

w 4 a<br />

23<br />

w 6<br />

45<br />

0 2<br />

4<br />

6<br />

w 24<br />

w 46<br />

1<br />

0<br />

I1 I2 T1 T2<br />

1 1 1 0<br />

0 0 0 1<br />

...<br />

38<br />

19


12.05.2009<br />

Trainingskurve<br />

• Trainingskurve mit einem Multilayer<br />

Netzwerk<br />

• Standard Lernkurve,<br />

Entscheidungsbaumlernen vs.<br />

neuronale <strong>Netze</strong><br />

Multilayer Netzwerke<br />

39<br />

Back-Propagation als Gradientenabstieg<br />

• BackProp-Lernen in Multilayer<br />

Netzwerken ist eine einfache<br />

Interpretation des Gradientenabstiegs<br />

im Gewichtsraum.<br />

• Der Gradient ist hier auf der<br />

Fehleroberfläche.<br />

• Back-Propagation erlaubt es uns, die<br />

Errechnung des Gradienten zwischen<br />

den Units so zu teilen, dass die<br />

Veränderung jeden Gewichts durch die<br />

Neuronen errechnet werden können<br />

(lokale Information).<br />

Multilayer Netzwerke<br />

40<br />

20


12.05.2009<br />

Diskussion: ist BackProp-Lernen in Multilayer<br />

Netzwerken eine gute Methode für das maschinelle<br />

Lernen?<br />

• Ausdrucksfähigkeit<br />

• Rechenpower, -effizienz<br />

• Attribut-orientierte<br />

Repräsentation, haben nicht<br />

die Ausdrucksfähigkeit von<br />

generellen logischen<br />

Repräsentationen.<br />

• Sind gut geeignet für<br />

kontinuierliche Funktionen (im<br />

Gegensatz zu<br />

Entscheidungsbäumen).<br />

• 2 n /n Hiddenunits werden<br />

benötigt, um alle Boolschen<br />

Funktionen mit n Inputs zu<br />

repräsentieren.<br />

Multilayer Netzwerke<br />

• Die Effizienz hängt von der<br />

Trainingsphase ab. Wenn<br />

man m Beispiele und |W|<br />

Gewichte hat, dann benötigt<br />

jede Epoche O(m |W|) Zeit.<br />

• Aber: Man hat gezeigt, dass<br />

im schlimmsten Fall die<br />

Anzahl der Epochen<br />

exponentiell in n sein kann<br />

(Anzahl der Inputs).<br />

• Lokale Minima sind ein<br />

Problem, Simulated<br />

Annealing kann zum<br />

Verlassen lokaler Optima<br />

eingesetzt werden.<br />

41<br />

Diskussion: ist BackProp-Lernen in Multilayer<br />

Netzwerken eine gute Methode für das maschinelle<br />

Lernen?<br />

• Generalisierung<br />

• Transparenz<br />

• Gut geeignet für<br />

Generalisierung und für reale<br />

Anwendungen.<br />

• Aber: keine Theorie dafür<br />

vorhanden.<br />

• Sensitivität zu Noise<br />

• Sehr fehlertolerant, weil nicht<br />

lineare Regression durchgeführt<br />

wird.<br />

• <strong>Neuronale</strong> <strong>Netze</strong> sind<br />

universelle Approximatoren und<br />

finden die beste Lösung, die zu<br />

den Beispielen und den<br />

Constraints passt.<br />

• Black Box, aber:<br />

Regelextraktion aus NN schafft<br />

Abhilfe<br />

• A priori Wissen<br />

• Gut, wenn vorhanden, <br />

KBANN, SHRUTI.<br />

Multilayer Netzwerke<br />

42<br />

21


12.05.2009<br />

Diskussion: ist BackProp-Lernen in Multilayer<br />

Netzwerken eine gute Methode für das maschinelle<br />

Lernen?<br />

• Insgesamt: einfache Feed-forward-Netzwerke erfüllen<br />

nicht unsere Wünsche für eine verständliche<br />

Lerntheorie, zumindest nicht in der gegenwärtigen<br />

Form.<br />

Multilayer Netzwerke<br />

43<br />

Anwendungen mit neuronalen <strong>Netze</strong>n<br />

• Sprache<br />

• Lernen von Text zu Phonemen,<br />

Sprachgenerator anschließend<br />

• NETtalk von Sejnowski und<br />

Rosenberg, 1987<br />

• Erkennung von<br />

handgeschriebenen Buchstaben<br />

• Cun et al. 1989<br />

Anwendungen<br />

44<br />

22


12.05.2009<br />

Anwendungen mit neuronalen <strong>Netze</strong>n<br />

• Fahren eines Fahrzeuges<br />

• ALVINN (Autonomous Land Vehicle<br />

In a Neural Network), Pomerleau<br />

1993<br />

• 30x32 input units (Kamera)<br />

• 1 hidden layer mit 4 units<br />

• 30 output units (Lenkrichtung)<br />

• Backpropagation learning<br />

• Bis zu 55 miles per hour (~88 km/h)<br />

Anwendungen<br />

D. Pomerleau: Neural Network Vision for Robot<br />

Driving. In: The Handbook of Brain Theory and<br />

Neural Networks, M. Arbib, ed., 1995.<br />

45<br />

Zusammenfassung<br />

• Ein <strong>Neuronale</strong>s Netz ist ein Rechenmodell, das durch Funktionsweise eines<br />

Gehirns motiviert ist. Es besteht aus vielen kleinen Einheiten, die parallel und<br />

ohne zentrale Kontrolle arbeiten.<br />

• Das Verhalten eines neuronalen <strong>Netze</strong>s wird durch die Topologie und die<br />

Neuronen bestimmt. Feed-forward Netzwerke (Verbindungen sind azyklische<br />

Graphen) sind einfach zu analysieren. Sie sind zustandsfreie Funktionen.<br />

• Ein Perzeptron ist ein Feed-forward Netzwerk mit einer Neuronenschicht und<br />

kann nur linear separable Funktionen repräsentieren. Wenn die Daten linear<br />

separabel sind, kann die Perzeptron Lernregel auf die Gewichte angewandt<br />

werden und die Daten werden exakt repräsentiert.<br />

• Multilayer feed-forward forward Netzwerke können jede Funktion repräsentieren,<br />

genug Neuronen vorausgesetzt.<br />

• Der Back-Propagation-Lernalgorithmus wird für Multilayer Feed-forward-<br />

Netzwerke verwendet. Hier wird das Gradientenabstiegsverfahren durchgeführt,<br />

um den Gesamtfehler zu minimieren. Es konvergiert in ein lokales Optimum,<br />

hat aber viel Erfolg in realen Anwendungen. Keine Garantie für das Finden<br />

eines globalen Optimums (wie hill-climbing).<br />

46<br />

23

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!