03.11.2013 Aufrufe

Künstliche Neuronale Netze

Künstliche Neuronale Netze

Künstliche Neuronale Netze

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

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!