Upload
ute-bleyer
View
110
Download
4
Embed Size (px)
Citation preview
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Folien, Aufgaben sind unterwww.computer-networking.de\~glaeserzu finden.
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Neuronale Netze
Oft genutzte Verbindungen werden starke Verbindungen = Lernen
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
A
Stärke der Verbindung = gespeicherte Information !
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Verwendung : Mustererkennung / Klassifikation
Muster A Muster B
verrauschtes Muster(Aktienkurs)
Neuronales Netz
Muster C ...
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
e1
e2
en
...
oi
w1i
w2i
wni
GewichteInput
Output
Nettoinput
n
jjjii ewnet
1
Outputfunktionoi = O(ai
Schwellwert
Neuronenfunktion
oi = s( neti-)
Stufenfunktion
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Outputfunktion O
O kann eine Stufenfunktion sein
1
0{Os(x) =
1 wenn x 0
0 wenn x < 0
O kann eine Fermifunktion sein
1
0Of(x) = 1 / ( 1+exp(-x) )
x
x
O
O
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Beschreibung von Netzwerktypen
Topologie
Lernregel
Neuronenfunktion
„Betriebsweisen“ der Netze
Lernphase
Ausführungsphase
überwachtes Lernen e und o vorgegebennicht - überwachtes Lernen nur e
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Perzeptron
Topologie: e1
e2
e3
o1
o2
einlagig = nur eine Neuronenschicht
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
PerzeptronOutputfunktion ist die Signumsfunktion:
sgn(x) = { +1 wenn x 0
-1 sonst
Outputfunktion: oi = sgn(neti - )
Lernregel ( = wie komm‘ ich an die Gewichte ):
jiiij eoow
Soll WertLernrate
0 <
Hebbsche Regel:
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Was kann ein Perzeptron ?
Beispiel: Perzeptron mit zwei Eingängen (Merkmalen)
Klassifizierung anhand von Merkmalen
e1
e2
o
w1
w2
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
o = sgn( w1 e1 + w2 e2 - )
=> Unterscheidung in zwei Klassen möglich:o = -1 Klasse Ao = +1 Klasse B
sgn( w1 e1 + w2 e2 - ) = 0 ergibt Geradengleichung:e2 = - w1/w2 e1 + / w2
e1
e2
Grenze zwischen A und B: sgn „kippt um“sgn(x) kippt um, wenn x = 0
Was kann ein Perzeptron ? (Fortsetzung)
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Was kann ein Perzeptron ? (Fortsetzung)
ergibt Geradengleichung:e2 = - w1/w2 e1 + / 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
AAA
A AA
A
BB BB BB B
B
B
B
e1
e2
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Was kann ein Perzeptron ?
Das Perzeptron kann anhand von Merkmalen eine Unterscheidungin Klassen vornehmen
Was kann ein Perzeptron nicht ?n Merkmale bilden im n - dimensionalen Merkmalsraum einen-1 dimensionale Ebene, die eine Zuordnung der Merkmalsteil-räume zu Klassen erlaubt.
Da es sich immer um Ebenen handelt, spricht man von linear separierbaren Klassen, wenn sich die zugehörigen Merkmals-teilräume durch die Ebenen trennen lassen
Mit m Ausgangselementen können 2m Klassen unterschieden werden
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Was kann ein einlagiges Perzeptron nicht ?
e1
e2
B
A
linear separierbar
e1
e2
B
A
nichtlinear separierbar
e1
e2
B
A
nichtlinear separierbar
A
© Prof. Dr. H. Gläser, Künstliche Intelligenz
F
Neuronale Netze
Was kann ein Perzeptron nicht ?
e1
e2
nichtlinear separierbar
XOR Problem
(0,0) (1,0)
(0,1) T
T
(1,1)
F
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Mehrlagige neuronale Netze
e1
e2
eN
...
o1
o2
oN
...
wkl wjkwij
Neuronenfunktion:
nnmnFermim xwsy
kl j i
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Mehrlagige Perzeptrons
Mehrlagige Perzeptrons sind in der Lage hinreichendkomplexe Merkmalsregionen zu bilden, mit denen beliebige Klassen von Eingabemustern klassifiziert werdenkönnen.
für innere Lagen (hidden layers) kann kein Fehler zwischen gewünschtem und tatsächlichem Outputangegeben werden
Problem beim Lernen:
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Mehrlagige Perzeptrons
Lernregel:
wmn(t + 1) = wmn(t) + m xn
Lösung
Backpropagation Algorithmus
Outputfehler des mten Neurons
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 iii doo )(
c) Bestimmen Fehler der Output Schicht
iiFi dnets 'Ableitung von sF !
Rekursive Berechnung der Fehler nder nächst inneren Schichten
mnm
mnFn wnets 'm läuft in derSchicht näher am Ausgang
e) Bestimmen der Gewichte zwischen Output Schicht und innerer Schicht
© Prof. Dr. H. Gläser, Künstliche Intelligenz
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
i
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
2
'
)exp(1
)exp(
i
iiF
net
netnets
Ableitung der Fermi Funktion
)exp(1
1
iiF net
nets
Fermi Funktion
© Prof. Dr. H. Gläser, Künstliche Intelligenz
a b cwba
11
1
2
1
2
1wba21
wba12
wcb11
wcb12
wba22
ob1=sFermi(oa
1 * wba11 + oa
2 * wba12)
ob2=sFermi(oa
1 * wba21 + oa
2 * wba22)
oc1= sFermi( ob
1* wcb11+ ob
2* wcb12)
c1 = sFermi‘(netc
1) *(osoll- oc1)
netc1 = ob
1* wcb11+ ob
2* wcb12
wcb11= * c
1 * ob1
wcb12= * c
1 * ob2
b1= sFermi‘(netb
1) *c1 * wcb
11
b2= sFermi‘(netb
2) *c1 * wcb
12
wba11= * b
1*oa1
a1= sFermi‘(neta
1) *(b
1 * wba11+ b
2 * wba21)
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Genetischer Algorithmus
Vermeidung von lokalen MinimaError
Gewicht
Maximum
lokales Minimum
globales Minimum
© Prof. Dr. H. Gläser, Künstliche Intelligenz
1. Erzeugung einer Population
i sind die Gewichtealle Gewichte = Vektor
1
2
1
.
.
p 2
2
1
.
.
p *
2
1
.
.
Np
...
beliebige, zufällige Werte
© Prof. Dr. H. Gläser, Künstliche Intelligenz
2. Selektion
aus dem Pool werden zufällig zwei Paar geholt.Von jedem Paar wird der Vektor mit dem geringeren error ausgewähltalso bleiben 2 Vektoren übrig = Elternpaar-“has been proven to be extremly useful for speeding up the convegenceof 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
Häu
figk
eit
von
k
kpk wwk
pkP
)1()(
w = mittlere Wahrscheinlichkeit das zwei Gewichte vertauscht werden (freier Parameter)
i,120i,43
)!(!
!
kpk
p
k
p
i = Index des Gewichts im Vektor
p = Zahl Gewichte im Vektor
© Prof. Dr. H. Gläser, Künstliche Intelligenz
p=0,1
p=0,5
p=0,9P
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 gezogenDie 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
5,0)1(
5,0)1(~
1*)/1(
2,
1*)/1(
2,,
rwennrs
rwennrsb
b
GGki
GGki
ki
G = aktuelle Generation, G* = maximale Generation
r1 und r2 zufällig aus gleichverteiltem Intervall [0,1]s zufällig von standard normalverteilungb = 2 steuert den Grad von nicht Uniformität der Mutationerlaubt stärker lokalisierte Suche bei höheren Generationen
© Prof. Dr. H. Gläser, Künstliche Intelligenz
s = 0.2
r2 = 0.8
G = FINDGEN(100)
GStern = 100.
b = 1.
mutation = s * (1.-r2^((1.-G/GStern)^b))
plot, G, mutation, XTitle = " generation", YTitle = " delta Gewicht "
Demo zur Mutation
s = findgen(100.)/100.sigma = 0.5gauss = exp (-s^2/sigma^2)plot, s, gauss,XTitle = "s", YTitle = "wahrscheinlichkeit"
© Prof. Dr. H. Gläser, Künstliche Intelligenz
4. Auswahlturnier
Innerhalb der „Familie“ (2 Vektoren und 2 Kinder) überlebendie 2 mit dem geringsten Error -> kommen in die nächste Generation
Der obige Prozess ab 2. (Selektion) wird wiederholt bis die neue Generation mit N* Vektoren bevölkert ist
Die Eltern wandern in den Pool zurück (sie können wieder ausgewählt werden)
© 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, alsder beste Vektor der neuen Generation, darf er den schlechtestenVektor der neuen Generation ersetzen
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Simulated Annealing
Vermeidung von lokalen Minima
Error
Gewichte
Maximum
lokales Minimum
globales Minimum
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Analogie mit Abkühlen
schnelles Abkühlen langsames Abkühlen
lokales Energieminimum globales Energieminimum
Festkörper
© Prof. Dr. H. Gläser, Künstliche Intelligenz
TAnzahl der Iterationen: Tj ,...,1
Lösungsvektor und Errormetrik initialisieren: 00 ,
„Statt immer bergab zu gehen, versuche den größten Teil der Zeit bergab zu gehen“
© Prof. Dr. H. Gläser, Künstliche Intelligenz
no
iii yy
1
2
Errormetrik
= Zahl der Beispieleno
iy = output Vektor von Beobachtung i
iy = Soll - output Vektor von Beobachtung i
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Temperaturbestimmung:)ln(1
)(j
TjT
j
T(j
)
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Lösungsvektor zufällig „stören“ (perturbate) j
Metropolis Verhältnis:
)(
ˆexp)( 1
jT
fjM jj
= nur vorgeschlagen, = akzeptiertj j
jFehlerwert zu j ist KEIN Vektor sondern ein double
f > 0
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Akzeptierte neuen Vektor jj ˆ
- wenn 0ˆ1 jj
- oder wenn )()( jMjP P(j) ist gleichverteilte Zufallszahlzwischen 0 und 1
(mit mit T quer als „ausreichend“ großer von j unabhängiger Konstantewürde das System sogar mit Sicherheit das globale Minimumfinden – aber zu langsam)
)1ln()(
j
TjT
© Prof. Dr. H. Gläser, Künstliche Intelligenz
j
M(j
)Wahrscheinlichkeit für Zurückweisung
Wahrscheinlichkeit für Akzeptieren
© Prof. Dr. H. Gläser, Künstliche Intelligenz
j
M(j
)
20ˆ1 jjf
40ˆ1 jjf
M(j
)
Warum Faktor f ?
hängt von Anzahl der Output Knoten ab
no
iii yy
1
2
© Prof. Dr. H. Gläser, Künstliche Intelligenz
mit mit T quer als „ausreichend“ großer von j unabhängiger Konstantewürde das System sogar mit Sicherheit das globale Minimumfinden – aber zu langsam
)1ln()(
j
TjT
© Prof. Dr. H. Gläser, Künstliche Intelligenz
TEK_COLORTquer = 100j = FINDGEN(100)+1T = Tquer / (1+ALOG(j))PLOT, j, T, color = 3, thick=4
Tgg = Tquer / ALOG(1+ j)OPLOT, j, Tgg, color = 4
errorMetric = 20M = exp(- errorMetric /T)PLOT, j, M, thick = 4
Mgg = exp(- errorMetric /Tgg)OPLOT, j, Mgg, color = 4
errorMetric = 20
M = exp(- errorMetric /T)
PLOT, j, M, thick = 4
errorMetric = 40
M = exp(- errorMetric /T)
OPLOT, j, M, thick = 4,color =4
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
„Winner takes all“
Ansätze für die Output Funktion:
einfach: oi = s( neti -)
oi = O(ai
Winner takes it all: oi ={ O‘(ai) wenn ai = max(...,ak ,...)
0 sonst
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Neuronale Netze
Adaline
(adaptive linear neuron)
Abwandlung der Perzeptron Lernregel:
jiiij eoow jiiij eaon
w
n ist die Anzahl Eingänge (und Gewichte) des iten Neuronsstatt (ist - output) wird (ist - Aktivierung) benutzt:
(Delta Regel: )Lineare Transferfunktion: s = 1
iii ao
© 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 Elementemit Aktivitäten dicht am Schwellwert werden so verändert,daß sie stabilere Entscheidungen liefern (d.h. weiter vomSchwellwert entfernt).
© Prof. Dr. H. Gläser, Künstliche Intelligenz
e21
e12
e11
e22
w11
w22
w12
w21
o1
e21= SFermi(nettoInput); nettoInput = e12*w21+e11*w11
w1
w2
wneu= wold + eta * delta * edelta = osoll-oist
w12 neu = w12 alt + eta * delta22 *e22
delta22 = (delta1 * w1 +delta2*w2)* S‘(e22)
o2
© Prof. Dr. H. Gläser, Künstliche Intelligenz
w1
w2e2
e1
o
nettoInput = e1w1+e2w2
o = S(nettoInput)0,07+0,07 = 0,14S(0,14) = 0
e1 e2 o
0,7 0,7 1
0,1 0,3 0
w1 = 0,1; w2 = 0,1
wneu= wold + eta * delta * edelta = osoll-oist
w1neu = 0,1 + 0,2*1*(-1)*0,7=0,1-0, 14=-0, 04
nettoInputNew = -0,7*0,14+0,7*0,1=0,028
© Prof. Dr. H. Gläser, Künstliche Intelligenz
Eingangsneuron
Ausgangsneuron
Gewicht w