820 likes | 1.04k Views
Lernen und Klassifizieren AS1-2. Lernen in Multilayer -Netzen. Assoziatives Lernen. Lineare Klassifikation. Lernen linearer Klassifikation. Anwendungen. Adresse Inhalt. 1004. Text3. 1003. Daten. 1002. Text2. 1001. Text1. 1000. Text1. Assoziatives Lernen. Informationssystem:
E N D
Lernen in Multilayer-Netzen Assoziatives Lernen Lineare Klassifikation Lernen linearer Klassifikation Anwendungen Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Adresse Inhalt 1004 Text3 1003 Daten 1002 Text2 1001 Text1 1000 Text1 Assoziatives Lernen • Informationssystem: Speichern und Abrufen von Information • RAM-Speicher Speichern: Adresse A Speicherinhalt Abrufen:Adresse A Speicherinhalt • Assoziativspeicher Speichern: (Adresse A, Speicherinhalt) Assoziatives Lernen Abrufen: ( ? , Speicherinhalt) Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Konventionelle Assoziativspeicher Eingabe: Suchwort, Ausgabe: Treffer in Daten (auch mehrere!) Problem: Teile des Suchworts unbekannt oder falsch (unbekannte Maske) Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Neuro-Modell des Assoziativspeichers Funktion: Jede Komp.ist lin. Summe zi = wix Nichtlin. Ausgabe: yi = SB(zi) = Lernen von W ? Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Lernen: Hebbsche Regel Beobachtung des Physiologen Hebb (1949): "Wenn ein Axon der Zelle A nahe genug ist, um eine Zelle B zu erregen und wiederholt oder dauerhaft sich am Feuern beteiligt, geschieht ein Wachstumsprozess oder metabolische Änderung in einer oder beiden Zellen dergestalt, dass A's Effizienz, als eine der auf B feuernden Zellen, anwächst." Also: wAB(t) – wAB(t-1) =: w ~ xAyB oder wij(t) = wij(t-1) + i(t)yixj Vektor:wi(t)=wi(t-1) + i(t)yixIterative Hebb'sche Lernregel Matrix:W(t) = W(t-1) +(t) yxTSpeichern eines Tupels (x,y) Frage: Ist auch eine andere Form der Hebb‘schen Lernregel denkbar? Rüdiger Brause: Adaptive Systeme AS-1, WS 2013 Rüdiger Brause: Adaptive Systeme, Institut für Informatik, WS 2007
y = Wxr = z =rLr(xr)Txr + Lernen im Assoziativspeicher • Speichern aller N Muster • Auslesen eines Musters r assoziierte Antwort + Übersprechen von anderen Mustern • Orthogonale Muster xr: Übersprechen = 0, exakte Reproduktion. • Nicht-orthogonale Muster: Schwellwerte nötig zum Unterdrücken des Übersprechens. Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Code eines Assoziativspeichers AMEM: (* Implementiert einen Korrelationsspeicher *)VAR (* Datenstrukturen *) x:ARRAY[1..n] OF REAL; (* Eingabe *) y,L: ARRAY[1..m] OF REAL; (* Ausgaben *) w: ARRAY[1..m,1..n] OF REAL; (* Gewichte *) : REAL; (* Lernrate *); Auslesen : BOOLEAN; BEGIN := 0.1; (* Lernratefestlegen: |x|2=10 *) initWeights( w,0.0); (* Gewichte initialisieren *) AlleMusterSpeichern( ); SpeicherAuslesen( ); ENDAMEM. Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Code eines Assoziativspeichers REPEATAlle Muster speichern Read(PatternFile, x, L) (* Eingabeschlüssel, gewünschte Ausgabe *) FOR i:=1 TO m DO(* FüralleNeuronen *) FOR j:=1 TO n DO (* ihre Gewichte verändern *) w[i,j] := w[i,j] + *L[i]*x[j] ENDFOR; ENDFOR; UNTILEndOf( PatternFile) Speicher auslesen (* zu Schlüssel x das gespeicherte y assoziieren *) Input (x) FOR i:=1 TO m DO (* Ausgabe für alle Neuronen *) y[i] := S(z(w[i],x)) ENDFOR; Print (y) Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Speicherarten W W • Heteroassoziativer Speicher Inhalt L(Lehrervorgabe) Schlüssel = x Assoziation („Adresse“) y = L • Autoassoziativer Speicher Inhalt L = x Schlüssel = x Assoziation y = x Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Beispiel Autoassoziative Ergänzung Beispiel: N =3 gespeicherte, orthogonaleMuster Ausgabe bei Eingabe der Muster =? Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Beispiel Autoassoziative Ergänzung Mit der Hebb’schen Regel wird die Gewichtsmatrix W == x1x1T + x2x2T + x3x3T und die Ausgabe z == x1(x1Tx) +x2(x2Tx)+x3(x3Tx) Testmuster 1: = x10 + x2 2+ x3 0 Testmuster 2: = x10 + x2 0+ x3 3 Testmuster 3: = x11 + x2 1+ x3 1 Ergänzung Grenzbereich Korrektur Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Beispiel Autoassoziative Ergänzung Setze L(x) = x, lerne alle Muster ( symm. Matrix W). Beispiel: Buchstaben, kodiert mit 0 und 1 xA = (0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 ....) Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Beispiel Autoassoziative Ergänzung Gebe Teilmuster von x ein erhalte Gesamtmuster L=x Teil von A G Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Beispiel Autoassoziative Ergänzung Kohonen et al. 1977 3024 pixel je 3 Bit, 100 Prototypen, orthogonali-siert Gebe Teilmuster von x ein erhalte Gesamtmuster L=x Gebe gestörtes Muster von x ein erhalte Gesamtmuster L=x Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Lernen in Multilayer-Netzen Assoziatives Lernen Lineare Klassifikation Lernen linearer Klassifikation Anwendungen Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Klassenbildung Erfahrung:Es gibtähnliche Dinge, „Arten“, „Klassen“, z.B. Buchstabe A ?Woher kommt das ? Rüdiger Brause: Adaptive Systeme, Institut für Informatik
Klassenbildung: Beispiel Iris Klasse1: Iris SetosaKlasse 2: Iris Virginica Rüdiger Brause: Adaptive Systeme, Institut für Informatik
Trennung von Klassen Blütensorte 1 Blütensorte 2 Muster eines Objekts (Breite, Höhe) = x Höhe Klassenprototyp c 1 c 2 Breite Klassenbildung heute Objekte werden durch Merkmale beschrieben z.B. qualitativ Mensch = (groß, braune Augen, dunkle Haare, nett, ...) quantitativMensch = (Größe=1,80m, Augenfarbe=2, Haarfarbe=7, ...) Idee = Form = „Klassenprototyp“ Klassifizierung = Ermitteln der Geradengleichung bzw Parameter c1,c2. Rüdiger Brause: Adaptive Systeme, Institut für Informatik
Höhe x2 Mit z = = wTx c 1 c 2 Klassenentscheidung y = S(z) = Breite x1 Klassentrennung Klassentrennung durch Trenngerade mit f(x1) = x2= w1x1+w3 z<0 z=0 bzw. z := w1x1+w2x2+w3x3 = 0 z>0 mit w2 :=-1, x3 := 1 Rüdiger Brause: Adaptive Systeme, Institut für Informatik
Beispiel Gegeben: Klassengrenze. Gewichte? y = ax + b = y/x x + b = -7/5 x +7 g(x,y) = 0 = -7/5 x -1y +7 = (-7/5, -1, 7) (x, y, 1)T = (7, 5, -35) (x, y, 1)T wTx 7 6 0 8 5 Gegeben: Gewichte. Klassengrenze? w = (6, 8, -48) g(x1,x2) = 0 = 6x1 + 8x2 – 48 = -6/8 x1 -1x2 + 6 a=-6/8, b=6 Klassengrenze Gewichtsvektor Rüdiger Brause: Adaptive Systeme, Institut für Informatik
x1 x2 SB(z) y = 0: Klasse 1 y = 1: Klasse 2 x3 ... xn-1 Klassenentscheidung y = SB(z) = 1 z = = wTx Klassentrennung durch formales Neuron Klassentrennung durch binäres Neuron z =wTx Rüdiger Brause: Adaptive Systeme, Institut für Informatik
Trennung mehrerer Klassen • DEF Lineare Separierung Seien Muster x und Parameter w gegeben. Zwei Klassen 1 und 2 des Musterraums = 12 mit 12 = heißen linear separierbar, fallseine Hyperebene {x*} existiert mit g(x*) = wTx* = 0, so dass für alle x1 gilt g(x)<0 und für alle x2 gilt g(x)>0. Frage: Und welche Klasse haben die x* ? Rüdiger Brause: Adaptive Systeme, Institut für Informatik
ABER: WIE erhalten wir die richtigen Gewichte, d.h. die richtige Klassifizierung ? Lernen ! Rüdiger Brause: Adaptive Systeme, Institut für Informatik
Lernen in Multilayer-Netzen Assoziatives Lernen Lineare Klassifikation Lernen linearer Klassifikation Anwendungen Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Perzeptron Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Das Perzeptron Idee: Reize wiedererkennen Rosenblatt 1958 • Künstliche Retina • Assoziations-Schicht • Response-Schicht j X · · · y · · · R A S • Verbindungen zu A fix (zufällig): x = (x1,...,xn)T = (1(S),...,n(S))T • Stärke der Verbindungen zu R veränderbar: w = (w1,...,wn)T Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Das Perzeptron Entscheiden • := {x} alle Muster,= 1 + 2 1 : Menge aller x aus Klasse 1 2 : Menge aller x aus Klasse 2 Schwelle DEF Log. Prädikat Mit den Erweiterungen x = (x1,...,xn,1)T w = (w1,...,wn,s)T wird Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Das Perzeptron Lernen Ziel: Wähle w so, dass für alle x gilt Methode: Für alle x aus 1 und wTx < 0 w(t) = w(t–1) + xPerzeptron-Lernregel wTx ! Erhöhung von Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Das Perzeptron: Pseudo-code 1 PERCEPT1: Wähle zufällige Gewichte w zum Zeitpunkt t:=0. REPEAT Wähle zufällig ein Muster x aus 12; t:= t+1; IF (xausKlasse 1) THENIFwTx< 0 THENw = w+x ELSEw = w END ELSEIFwTx > 0 THENw = w-x ELSEw = w END ENDIF UNTIL (alle x richtig klassifiziert) Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Das Perzeptron: Pseudo-code 2 DEF–-:= {x | –x aus Klasse2} stattwTx < 0 giltfür–die RelationwTx > 0 PERCEPT2: Wähle zufällige Gewichte w zum Zeitpunkt t:=0. REPEAT Wähle zufällig ein Muster x aus1U–; t:= t+1; IFwTx 0 THENw(t) = w(t–1) +x ELSEw(t) = w(t–1) END UNTIL(alle x richtig klassifiziert) Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Das Perzeptron: Pseudo-code 3 DEF numerische Werte PERCEPT3: Wähle zufällige Gewichte w zum Zeitpunkt t:=0. REPEAT t:= t+1; w(t) = w(t–1) +(L(x) – y(x))x(t)Fehler-Lernregel UNTIL (alle x richtig klassifiziert) Sogar ohne Umdefinition der Muster aus 2! Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Das Perzeptron Satz: Ein Perzeptron kann nur Klassen trennen, wenn sie linear separierbar sind. Warum? Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Adaline Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Adaline ADAptiveLINearElementWidrow und Hoff (1960) Diskrete „Lernmaschine“ aus Widerständen und Leitungen Fehlerangabe T G F Gewichte Eingabe Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Adaline: Aktivität Schwellwert - regler w 0 Quantisierer S(z) Ausgabe y d Summierer Regler Fehleranzeige Schalterfeld für Eingabemuster Lehrer - Schalter für gewünschte Ausgabe Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Adaline: Lernalgorithmus • Minimierung des erwartetenFehlersdurch • Anpassung der Parameter (Drehwiderstände): • Wenn der Fehler größer wird, drehe Knopf zurück und in die entgegengesetzte Richtung • Wenn der Fehler am kleinsten ist, wende dich nächstem Knopf zu Automatische Anpassung: Lerngleichung w(t) = w(t–1)+(t)(L(x)–wTx) Widrow-Hoff Lernregel F e h l e r Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Adaline: Aktivität Verlauf des Klassifizierungsfehlers für „Klasse T liegt vor“ bei Präsentationen von T,G,F und sofortiger Nachregelung Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Adaline: Pseudocode VAR (* Datenstrukturen *) x: ARRAY[1..n] OF REAL; (* Eingabe *) z,y,L: ARRAY[1..m] OF REAL; (* IST und SOLL-Ausgaben *) w: ARRAY[1..m,1..n] OF REAL; (* Gewichte *) : REAL (* Lernrate *); x2: REAL; BEGIN := 0.1; (* Lernratefestlegen *) initWeights(w,0.0); (* Gewichte initialisieren *) Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Adaline: Pseudocode REPEAT Read( PatternFile,x,L) (* Eingabe *) x2 := Z(xx) (* |x|2*) (* Aktivität bilden im Netz *) FORi:=1 TO m DO (* Ausgabe für alle Neuronen *) z[i] := Z(w[i],x) (* Aktivität errechnen*) y[i] := S(z[i]) (* Nicht-lin. Ausgabe *) END; (* Lernen der Gewichte *) FORi:=1 TO m DO (* Für alle Neuronen *) FORj:=1 TO n DO (* und alle Dimensionen *) w[i,j] := w[i,j]-*(z[i]-L[i])*x[j]/x2 (* Gewichte verändern *) END; END; UNTILEndOf(PatternFile) Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
x(t) Verzö-gerung Verzö-gerung Verzö-gerung verzerrtes Signal beim Empfang w1 verbessertes Signal w2 y(t) w3 – + Lernen gewünsch-tesSignal L(t) beim Training Adaline: Anwendung Aufgabe: Korrektur des Signals bei Transatlantik-Kommunikation tappeddelayline Erfolg: Fehler von 10% auf 0,0001% reduziert bzw. 4-fache Geschwindigkeit möglich Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Gradientenabstieg Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
w * w ) Lernen durch Iteration Gradientenabstieg R ( w ) - ¶ R ( w ) ¶ W ( t w ( t - 1 ) w Ñw:=(¶/¶w1,...,¶/¶wn)T w := (w(t-1) – w(t)) ~ – wR(w(t–1)) multi-dim. Ableitung w(t) = w(t–1) – (t) wR(w(t–1)) Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Problem: stochastischer Gradientenabstieg Zielfunktion abhängig von stochastischer Beobachtung x(t) z.B. Fehler (L – y(x))2 Lernen durch Iteration w * w ) R ( w ) - ¶ R ( w ) ¶ W ( t w ( t - 1 ) w - 45 - Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Stochastisches Lernen Lernen mit Zielfunktion R(w) =r(w,x)x w(t) = w(t-1) – (t) w R(w(t-1)) z.B. w(t) = w(t-1) – (t) (L – y(x)) x x • wird ersetzt durch • Lernen mit stochast. Zielfunktion r(w,x) • w(t) = w(t-1) - (t) w r(w(t-1),x(t))stochastisches Lernen • z.B. w(t) = w(t-1) - (t) (L – y(x)) x Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
d d 1 2 x* { } Stochastisches Lernen Beispiel Klassentrennung Zielfunktion r(w,x) := ½(w-x)2, (t) := 1/ t Klassifizierung r(w1,x) < r(w2,x) x aus Klasse 1 r(w1,x) > r(w2,x) x aus Klasse 2 x Klassengrenze {x*} r(w1,x*) = r(w2,x*) |w1-x*| = d1 = d2 = |w2-x*| w w 2 1 Lernen für x aus Klasse i wi(t) = wi(t-1) - (t)(wi(t-1)-x(t)) Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Codebeispiel Klassentrennung float w[ ][ ] = newfloat[2][2]; floatx[2]; float ; int t, k; t = 1; (* erster Zeitschritt *) do { (* Eingabe oder Generation des Trainingsmusters *) read(PatternFile, x); = 1/t;(* zeitabh. Lernrate *) (*sucheKlasse mit minimalem Abstand *) if (Abstand(x,w[0]) > Abstand(x,w[1])) k= 1; else k= 0; (* verändere den Gewichtsvektor *) for(inti=0; i<=1; i++)(* Approximation des Mittelwerts *) w[k,i]= w[k,i] - *(w[k,i]-x[i]); t = t+1; (* nächster Zeitschritt, nächstes Muster *) } while( !EndOf (PatternFile) ); Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Lernen in Multilayer-Netzen Assoziatives Lernen Lineare Klassifikation Lernen linearer Klassifikation Anwendungen Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
Das XOR-Problem Aufgabe Trennung zweier Klassen durch eine Gerade – wie ? x 0 ={ } = {(0,0), (1,1)} 2 1 1 ={ } = {(1,0), (0,1)} Klassen nicht linear separierbar! 0 0 x 1 1 Rüdiger Brause: Adaptive Systeme AS-1, WS 2013
_ x y := x OR 1 1 2 _ x 1 y := OR x 2 2 y := y ANDy XOR 1 2 Þ w = w = w = w = 1/3 1 4 5 6 w = - =w 1/3 2 3 s1=s2=0, s = 1/2 Das XOR-Problem Lösung Trennung durch zweiSchichten x y= (x1 x2) negiertes XOR = (x1ORx2) AND (x1OR x2) 2 1 0 0 x 1 1 z.B. formalebinäreNeuronen • S(z>s) = 1, S(z<s) = 0 Rüdiger Brause: Adaptive Systeme AS-1, WS 2013