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)