Document

Werbung
Terminänderungen / Festlegungen WI
Bekanntgabe der Seminartermine !
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Folien, Aufgaben sind unter
www.computer-networking.de\~glaeser
zu finden.
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Neuronale Netze
A
Nachbildung des Gehirns
Gehirn = Viele Knoten, von denen viele
untereinander verbunden / vernetzt sind
durch elektrische Signale erregen sich die Knoten gegenseitig
Erregungsstärke von A durch die anderen Knoten durch die Stärke
der Verbindungen bestimmt
Stärke der Verbindung = gespeicherte Information !
Oft genutzte Verbindungen werden starke Verbindungen = Lernen
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Verwendung : Mustererkennung / Klassifikation
Muster A
Muster B
Neuronales Netz
verrauschtes Muster
(Aktienkurs)
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Muster C
...
Neuronale Netze
Nettoinput
e1
n
neti   w ji e j
w1i
j 1
e2
oi
w2i
Aktivierung
Output
...
Transferfkt.
wni
en
ai = s(neti)
Gewichte
Input
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Outputfunktion
oi = O(ai)
Neuronenfunktion
oi = s( neti-q ) Schwellwert
Neuronale Netze
Transferfunktion S
s kann eine Stufenfunktion sein
1
0
ss(x) =
{
1 wenn x  0
0 wenn x < 0
s kann eine Fermifunktion sein
1
sf(x) = 1 / ( 1+exp(-x) )
0
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
„Winner takes all“
Ansätze für die Output Funktion:
oi = O(ai)
einfach: oi = s( neti -q )
Winner takes it all:
oi =
© Prof. Dr. H. Gläser, Künstliche Intelligenz
{
O‘(ai) wenn ai = max(...,ak ,...)
0 sonst
Neuronale Netze
Beschreibung von Netzwerktypen
Topologie
Lernregel
Neuronenfunktion
„Betriebsweisen“ der Netze
Lernphase
überwachtes Lernen e und o vorgegeben
nicht - überwachtes Lernen nur e
Ausführungsphase
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Perzeptron
Topologie:
e1
o1
e2
o2
e3
einlagig = nur eine Neuronenschicht
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Perzeptron
Outputfunktion ist die Signumsfunktion:
sgn(x) =
{
+1 wenn x  0
-1 sonst
Outputfunktion:
oi = sgn(neti - q)
Lernregel ( = wie komm‘ ich an die Gewichte ):
w j   a e j
Hebbsche Regel:
wij   oi  oi ) e j
0<1
Lernrate
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Soll Wert
Neuronale Netze
Was kann ein Perzeptron ?
Klassifizierung anhand von Merkmalen
Beispiel: Perzeptron mit zwei Eingängen (Merkmalen)
e1
w1
o
e2
© Prof. Dr. H. Gläser, Künstliche Intelligenz
w2
Neuronale Netze
Was kann ein Perzeptron ?
o = sgn( w1 e1 + w2 e2 - q)
=> Unterscheidung in zwei Klassen möglich:
o = -1
Klasse A
o = +1
Klasse B
e2
sgn Inhalt = 0 ergibt Geradengleichung:
e2 = - w1/w2 e1 + q / w2
© Prof. Dr. H. Gläser, Künstliche Intelligenz
e1
Neuronale Netze
Was kann ein Perzeptron ?
sgn = 0 ergibt Geradengleichung:
e2 = - w1/w2 e1 + q / w2
Für alle Punkte (e1 ,e2) mit e2 kleiner als das e2 wie oben ausgerechnet,
wird das Argument von sgn negativ, d.h. o = -1, d.h. Klasse A
e2
B
B
B
BB B B
B B
A A
A
B
A
A A A
© Prof. Dr. H. Gläser, Künstliche Intelligenz
e1
Neuronale Netze
Was kann ein Perzeptron ?
Das Perzeptron kann anhand von Merkmalen eine Unterscheidung
in Klassen vornehmen
Mit m Ausgangselementen können 2m Klassen unterschieden werden
Was kann ein Perzeptron nicht ?
n Merkmale bilden im n - dimensionalen Merkmalsraum eine
n-1 dimensionale Ebene, die eine Zuordnung der Merkmalsteilräume zu Klassen erlaubt.
Da es sich immer um Ebenen handelt, spricht man von
linear separierbaren Klassen, wenn sich die zugehörigen Merkmalsteilräume durch die Ebenen trennen lassen
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Was kann ein einlagiges Perzeptron nicht ?
e2
B
A
B
B
e1
linear separierbar
A
e1
nicht
linear separierbar
© Prof. Dr. H. Gläser, Künstliche Intelligenz
A
e2
e2
A
e1
nicht
linear separierbar
Neuronale Netze
Was kann ein Perzeptron nicht ?
XOR Problem
e2
(0,1) F
T (1,1)
nicht
linear separierbar
T
(0,0)
© Prof. Dr. H. Gläser, Künstliche Intelligenz
F
(1,0)
e1
Neuronale Netze
Adaline
(adaptive linear neuron)
Abwandlung der Perzeptron Lernregel:
wij   oi  oi ) e j
wij 

n
oi  ai ) e j
n ist die Anzahl Eingänge (und Gewichte) des iten Neurons
statt (ist - output) wird (ist - Aktivierung) benutzt:
(Delta Regel:  i  oi  ai )
Lineare Transferfunktion: s = 1
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Adaline
Vorteile:
es lernen auch jene Elemente weiter, deren Output
schon den richtigen Wert liefern =>
„Festigung“ der erworbenen Fähigkeiten, denn Elemente
mit Aktivitäten dicht am Schwellwert werden so verändert,
daß sie stabilere Entscheidungen liefern (d.h. weiter vom
Schwellwert entfernt).
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Mehrlagige neuronale Netze
wkl
e1
wij
wjk
o1
e2
o2
...
...
eN
oN
l
Neuronenfunktion:
k
j


ym  sFermi   wmn xn 
 n

© Prof. Dr. H. Gläser, Künstliche Intelligenz
i
Neuronale Netze
Mehrlagige Perzeptrons
Mehrlagige Perzeptrons sind in der Lage hinreichend
komplexe Merkmalsregionen zu bilden, mit denen
beliebige Klassen von Eingabemustern klassifiziert werden
können.
Problem beim Lernen:
für innere Lagen (hidden layers) kann kein
Fehler zwischen gewünschtem und tatsächlichem Output
angegeben werden
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Mehrlagige Perzeptrons
Lösung
Backpropagation Algorithmus
Lernregel:
Outputfehler des mten Neurons
wmn(t + 1) = wmn(t) +  dm xn
m liegt weiter zum Ausgang hin !
>0
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Backpropagation Algorithmus
a) Alle Gewichte = zufällige Werte: -0.1 < wmn < 0.1
b) Anlegen Musterinput e, Messen von
(oi  oi )  d i
c) Bestimmen Fehler di der Output Schicht
Ableitung von sF !
d i  sF' neti )d i
Rekursive Berechnung der Fehler dn der nächst inneren Schichten
d n  sF' net n )  d m wmn
m
© Prof. Dr. H. Gläser, Künstliche Intelligenz
m läuft in der
Schicht näher am Ausgang
Neuronale Netze
Fermi Funktion
1
sF neti )
1  exp( neti )
Ableitung der Fermi Funktion
exp( neti )
s neti )
2
1  exp( neti ))
'
F
© Prof. Dr. H. Gläser, Künstliche Intelligenz
a
b
wba11
1
1
c
wcb11
wba21
wba
1
wcb12
12
2
2
wba22
ob1=sFermi(oa1 * wba11 + oa2 * wba12)
ob2=sFermi(oa1 * wba21 + oa2 * wba22)
oc1= sFermi( ob1* wcb11+ ob2* wcb12)
© Prof. Dr. H. Gläser, Künstliche Intelligenz
netc1 = ob1* wcb11+ ob2* wcb12
dc1 = sFermi‘(netc1) *(osoll- oc1)
 wcb11=  * dc1 * ob1
 wcb12=  * dc1 * ob2
db1= sFermi‘(netb1) *dc1 * wcb11
db2= sFermi‘(netb2) *dc1 * wcb12
 wba11=  * db1*oa1
da1= sFermi‘(neta1) *
(db1 * wba11+ db1 * wba21)
Herunterladen