Neuronale Netze

Post on 11-Jan-2016

45 views 0 download

description

Neuronale Netze. Folien, Aufgaben sind unter www.computer-networking.de\~glaeser zu finden. A. Neuronale Netze. Neuronale Netze. Nachbildung des Gehirns. Gehirn = Viele Knoten, von denen viele untereinander verbunden / vernetzt sind. - PowerPoint PPT Presentation

Transcript of Neuronale Netze

© 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