Künstliche Neuronale Netze
Künstliche Neuronale Netze
Künstliche Neuronale Netze
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