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 (1G / G *)b 2 (1G / 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