Neuronale Netze (neu)

Werbung
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
Output
...
oi = O(ai)
Neuronenfunktion
wni
en
Outputfunktion
oi = s( neti-q )
Gewichte
Input
Stufenfunktion
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Schwellwert
Neuronale Netze
Outputfunktion O
O kann eine Stufenfunktion sein
O
1 wenn x  0
1
Os(x) =
0 wenn x < 0
0
x
{
O kann eine Fermifunktion sein
O
1
Of(x) = 1 / ( 1+exp(-x) )
x
0
© Prof. Dr. H. Gläser, Künstliche Intelligenz
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 ):
Hebbsche Regel:
wij   oi  oi ) e j
Lernrate
0<1
© 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 ? (Fortsetzung)
o = sgn( w1 e1 + w2 e2 - q)
=> Unterscheidung in zwei Klassen möglich:
o = -1
Klasse A
o = +1
Klasse B
Grenze zwischen A und B: sgn „kippt um“
sgn(x) kippt um, wenn x = 0
e2
sgn( w1 e1 + w2 e2 - q) = 0 ergibt Geradengleichung:
e2 = - w1/w2 e1 + q / w2
© Prof. Dr. H. Gläser, Künstliche Intelligenz
e1
Neuronale Netze
Was kann ein Perzeptron ? (Fortsetzung)
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
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
e) Bestimmen der Gewichte zwischen Output Schicht und innerer
Schicht
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
di
Bei der Berechnung der „Deltas“ für jedes Neuron einer Schicht
müssen in einem Iterationsschritt zuerst die neuen Gewichte
berechnet werden, und dann erst mit den neuen Gewichten die Deltas
© Prof. Dr. H. Gläser, Künstliche Intelligenz
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
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
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
 wba11=  * db1*oa1
da1= sFermi‘(neta1) *
(db1 * wba11+ db2 * wba21)
Genetischer Algorithmus
Error
Vermeidung von lokalen Minima
Maximum
lokales Minimum
globales Minimum
Gewicht
© Prof. Dr. H. Gläser, Künstliche Intelligenz
1. Erzeugung einer Population
i
sind die Gewichte
alle Gewichte = Vektor
 1 
 
 2 
 . 
 
 . 
 
 p
1
 1 


 2 
 . 


 . 
 
 p
...
2
 1 
 
 2 
 . 
 
 . 
 
 p
© Prof. Dr. H. Gläser, Künstliche Intelligenz
beliebige, zufällige Werte
N*
2. Selektion
aus dem Pool werden zufällig zwei Paar geholt.
Von jedem Paar wird der Vektor mit dem geringeren error ausgewählt
also bleiben 2 Vektoren übrig = Elternpaar
-“has been proven to be extremly useful for speeding up the convegence
of the genetic search process“
© Prof. Dr. H. Gläser, Künstliche Intelligenz
3. Kreuzung (Crossover)
•2 Elternvektoren brüten 2 Kindvektoren aus
•(bei jeder Kombination findet eine Kreuzung nur mit einer festen
Wahrscheinlichkeit p statt)
•Wenn Kreuzung stattfindet, dann mit einer 1/3 Wahrscheinlichkeit
nach jeweils einer der folgenden 3 Methoden:
© Prof. Dr. H. Gläser, Künstliche Intelligenz
a) Shuffle Crossover:
nach einer Binomialverteilung wird eine Zahl k von zu
vertauschenden Gewichten in dem Vektorenpaar bestimmt.
Dann werden zufällig k Gewichte vertauscht
k
 p k
p k
P(k )    w (1  w)
k
 p
p!
  
 k  k! ( p  k )!
© Prof. Dr. H. Gläser, Künstliche Intelligenz
w = mittlere
Wahrscheinlichkeit
das zwei Gewichte
vertauscht werden
(freier Parameter)
120,i  43,i
i = Index des Gewichts
im Vektor
p = Zahl Gewichte im Vektor
P
p=0,9
p=0,1
p=0,5
Anzahl Täusche
© Prof. Dr. H. Gläser, Künstliche Intelligenz
b) Arithmetic Crossover:
Für das Vektorpaar wird eine Zufallszahl w zwischen 0 und 1
gezogen
Die beiden Kinder sind Linearkombination der Eltern mit w als
Wichtung:
1. Kind: w i,k + (1-w) j,k
2. Kind: (1-w) i,k + w j,k
© Prof. Dr. H. Gläser, Künstliche Intelligenz
c) Single-point Crossover:
Für das Vektorpaar wird ein Integer I gezogen [1, p-1]
die Vektorkoeffizienten unterhalb von I werden getauscht
© Prof. Dr. H. Gläser, Künstliche Intelligenz
3. Mutation
Generationen G = 1,2,..., G*
Wahrscheinlichkeit, das ein Vektor mutiert wird:
0,15 + 0,33/G
Mutation:
© Prof. Dr. H. Gläser, Künstliche Intelligenz

~
i ,k  s (1  r
i ,k  

i ,k  s (1  r
(1G / G *)b
2
(1G / G *)b
2
) wenn r1  0,5


) wenn r1  0,5

G = aktuelle Generation, G* = maximale Generation
r1 und r2 zufällig aus gleichverteiltem Intervall [0,1]
s zufällig von standard normalverteilung
b = 2 steuert den Grad von nicht Uniformität der Mutation
erlaubt stärker lokalisierte Suche bei höheren Generationen
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Demo zur Mutation
s = 0.2
r2 = 0.8
G = FINDGEN(100)
GStern = 100.
s = findgen(100.)/100.
sigma = 0.5
gauss = exp (-s^2/sigma^2)
plot, s, gauss,XTitle =
"s", YTitle =
"wahrscheinlichkeit"
b = 1.
mutation = s * (1.-r2^((1.G/GStern)^b))
plot, G, mutation, XTitle = "
generation", YTitle = "
delta Gewicht "
© Prof. Dr. H. Gläser, Künstliche Intelligenz
4. Auswahlturnier
Innerhalb der „Familie“ (2 Vektoren und 2 Kinder) überleben
die 2 mit dem geringsten Error -> kommen in die nächste Generation
Die Eltern wandern in den Pool zurück
(sie können wieder ausgewählt werden)
Der obige Prozess ab 2. (Selektion) wird wiederholt bis die
neue Generation mit N* Vektoren bevölkert ist
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Vorgehen:
Bilden einer Population
Pärchenbildung / Crossover
Mutation der Kinder
Selektion innerhalb der Familie
Nächste Generation
Elitism
© Prof. Dr. H. Gläser, Künstliche Intelligenz
5. Elitism = Elitedenken
Wenn der beste Vektor der alten Generation besser ist, als
der beste Vektor der neuen Generation, darf er den schlechtesten
Vektor der neuen Generation ersetzen
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Simulated Annealing
Error
Vermeidung von lokalen Minima
Maximum
lokales Minimum
globales Minimum
Gewichte
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Analogie mit Abkühlen
Festkörper
schnelles Abkühlen
lokales Energieminimum
© Prof. Dr. H. Gläser, Künstliche Intelligenz
langsames Abkühlen
globales Energieminimum
„Statt immer bergab zu gehen, versuche den größten Teil der Zeit
bergab zu gehen“
Anzahl der Iterationen:
T
j  1,..., T 
Lösungsvektor und Errormetrik initialisieren:  0 , 0
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Errormetrik
no
  )  
i 1
 yi  yi )
2
no = Zahl der Beispiele
yi = output Vektor von Beobachtung i
yi = Soll - output Vektor von Beobachtung i
© Prof. Dr. H. Gläser, Künstliche Intelligenz
T
1  ln( j )
T(j)
Temperaturbestimmung:
T ( j) 
j
© Prof. Dr. H. Gläser, Künstliche Intelligenz
̂ j
Lösungsvektor zufällig „stören“ (perturbate)
Fehlerwert zu ̂ j
̂ j
Metropolis Verhältnis:
ist KEIN Vektor
sondern ein double

ˆ 
 f 
j
j 1
M ( j )  exp 
T ( j)

f >0
̂ j = nur vorgeschlagen,  =j akzeptiert
© Prof. Dr. H. Gläser, Künstliche Intelligenz
)

Akzeptierte neuen Vektor
- wenn
ˆ
j  
j
ˆ   )  0
j
j 1
- oder wenn P ( j )  M ( j ) P(j) ist gleichverteilte Zufallszahl
zwischen 0 und 1
(mit T ( j ) 
T
ln( 1  j )
mit T quer als „ausreichend“ großer von j unabhängiger Konstante
würde das System sogar mit Sicherheit das globale Minimum
finden – aber zu langsam)
© Prof. Dr. H. Gläser, Künstliche Intelligenz
M(j)
Wahrscheinlichkeit für
Zurückweisung
Wahrscheinlichkeit für
Akzeptieren
j
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Warum Faktor f ?
no
  )  
hängt von Anzahl der Output Knoten ab
M(j)
M(j)
i 1
 yi  yi )
2

)
ˆ    20
f 
j
j 1

)
ˆ    40
f 
j
j 1
j
© Prof. Dr. H. Gläser, Künstliche Intelligenz
mit T ( j ) 
T
ln( 1  j )
mit T quer als „ausreichend“ großer von j unabhängiger Konstante
würde das System sogar mit Sicherheit das globale Minimum
finden – aber zu langsam
© Prof. Dr. H. Gläser, Künstliche Intelligenz
errorMetric = 20
TEK_COLOR
Tquer = 100
M = exp(- errorMetric /T)
j = FINDGEN(100)+1
PLOT, j, M, thick = 4
T = Tquer / (1+ALOG(j))
PLOT, j, T, color = 3, thick=4 errorMetric = 40
Tgg = Tquer / ALOG(1+ j)
OPLOT, j, Tgg, color = 4
errorMetric = 20
M = exp(- errorMetric /T)
PLOT, j, M, thick = 4
Mgg = exp(- errorMetric /Tgg)
OPLOT, j, Mgg, color = 4
© Prof. Dr. H. Gläser, Künstliche Intelligenz
M = exp(- errorMetric /T)
OPLOT, j, M, thick = 4,color =4
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
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
w11
e21
e11
w1
o1
w21
w12
w2
e12
w22
o2
e22
e21= SFermi(nettoInput); nettoInput = e12*w21+e11*w11
wneu= wold + eta * delta * e
delta = osoll-oist
© Prof. Dr. H. Gläser, Künstliche Intelligenz
w12 neu = w12 alt + eta * delta22 *e22
delta22 = (delta1 * w1 +delta2*w2)* S‘(e22)
e1
w1
o
e2
w2
w1 = 0,1; w2 = 0,1
nettoInput = e1w1+e2w2
o = S(nettoInput)
0,07+0,07 = 0,14
S(0,14) = 0
nettoInputNew =
-0,7*0,14+
0,7*0,1=0,028
wneu= wold + eta * delta * e
delta = osoll-oist
e1
e2
o
0,7
0,7
1
0,1
0,3
0
© Prof. Dr. H. Gläser, Künstliche Intelligenz
w1neu =
0,1 + 0,2*1*(-1)*0,7
=
0,1-0, 14=-0, 04
Eingangs
neuron
Ausgangs
neuron
Gewicht w
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Herunterladen