Wismar Business School Wissensextraktion mittels künstlicher neuronaler Netze Vorwärts gerichtete NN Uwe Lämmel www.wi.hs-wismar.de/~laemmel [email protected] Vorwärts gerichtete Neuronale Netze Folie 1 Inhalt Künstliche Neuronale Netze: Idee und Umsetzung Vorwärts gerichtete neuronale Netze – Perzeptron – Backpropagation–Netz – Partiell rückgekoppelte Netze Einsatz – Mustererkennung – Data Mining – Prognose – Datenvorverarbeitung – Optimierung Wettbewerbslernen Zusammenfassung Vorwärts gerichtete Neuronale Netze Folie 2 Adaline – LTU – Perzeptron Eine trainierbare Verbindungsschicht – Adaptive linear element – Linear Threshold Unit – Perzeptron ... Vorwärts gerichtete Neuronale Netze Folie 3 Perzeption Abbildungsschicht Perzeption Wahrnehmung als erste Stufe der Erkenntnis in der Psychologie der Vorgang der (sinnl.) Wahrnehmung eines Gegenstandes ohne bewusstes Erfassen und Identifizieren des Wahrgenommenen Ausgabeschicht Bild Meyers Neues Lexikon Feste 1-1Verbindungen trainierbare vollständige Verbindung Vorwärts gerichtete Neuronale Netze Folie 4 Perzeptron s.a. Minsky,Papert: Perceptrons,1969 entwickelt von Rosenblatt (um 1960) Bild: – binäre Eingaben, werden weitergereicht, – keine trainierbaren Verbindungen Abbildungsschicht = Eingabeschicht Propagierungsfunktion netj = oiwij Aktivierungsfunktion Ausgabefunktion = Identität, somit: oj = aj = 1 falls netj j , 0 sonst Lernen: Das Perzeptron kann in endlicher Zeit alles lernen, was es repräsentieren kann. (perceptron convergence theorem, F. Rosenblatt) Vorwärts gerichtete Neuronale Netze Folie 5 Lineare Trennbarkeit Das Neuron j soll 0 liefern, falls beide Neuronen 1und 2 gleiche Werte liefern(o1=o2), ansonsten 1: netj = o1w1j + o2w2j 0 w1j + 0w2j < j 0 w1j + 1w2j j 1 w1j + 0w2j j 1 w1j + 1w2j < j j ? 1 2 Vorwärts gerichtete Neuronale Netze Folie 6 Lineare Trennbarkeit o2 netj = o1w1j + o2w2j Gerade im 2-dim. Raum Gerade teilt Ebene so, dass (0,1) und (1,0) stets in unterschiedlichen Teilebenen liegen. (1,1) 1 (0,0) 1 o1 o1*w1 +o2*w2=q Netz kann die geforderte Aufgabe nicht lösen: Ein Neuronales Netz zur Realisierung der XOR-Funktion benötigt weitere, verdeckte Zellen. Ein Perzeptron kann nur sehr wenige Funktionen repräsentieren. Vorwärts gerichtete Neuronale Netze Folie 7 Lernverfahren while Eingabemuster do begin nächstes Eingabemuster I und berechne Ausgabemuster O for each j in AusgabeNeuronen do if ojtj then if oj=0 then {Ausgabe=0, aber 1 erwartet} for each i in EingabeNeuron do wij:=wij+oi else if oj=1 then {Ausgabe=1, aber 0 erwartet} for each i in EingabeNeuron do wij:=wij-oi ; end Wiederhole bis gewünschtes Verhalten erreicht Vorwärts gerichtete Neuronale Netze Folie 8 Mustererkennung Dekodierung – Eingabe: Binärcode einer Ziffer – Ausgabe: Unärcode: soviel Einsen, wie Ziffer angibt 5:11111 – Architektur: Vorwärts gerichtete Neuronale Netze Folie 9 Mustererkennung - Klassifikation Dekodierung – Eingabe: Binärcode einer Ziffer – Ausgabe: Zuordnung zu einer Klasse: 0~ 1.Neuron, 1~ 2. Neuron, ... 5~ 6. Neuron, ... – Architektur: Vorwärts gerichtete Neuronale Netze Folie 10 Aufgaben 1. Machen Sie sich mit der EXCEL-Lösung des Problems vertraut. 2. Implementieren Sie (in PASCAL/Java) ein 4-10-Perzeptron zum umwandeln von Binärzahlen (0..9) in eine Dezimalzahl. Implementieren Sie den Lernalgorithmus und trainieren Sie das Netz. 3. Welche Modifizierung muss der Lernalgorithmus erfahren, damit ein Lerneffekt eintritt? 4. Welche Ausgabe (Unäre Darstellung oder Klassifikation) lässt sich schneller lernen? Vorwärts gerichtete Neuronale Netze Folie 11 Aufgaben 5. Entwickeln Sie ein Perzeptron zur Erkennung von Ziffern 0..9. Eingabe-Schicht: 3x7-Eingabe-Neuronen Nutzen Sie den SNNS oder JavaNNS 6. Wie können mehrstellige Zahlen erkannt werden? 7. Entwickeln Sie ein Perzeptron zur Erkennung von Großbuchstaben. Eingabeschicht 5x7 Vorwärts gerichtete Neuronale Netze Folie 12 Mehrstufiges Perzeptron Hebt Beschränkungen des einfachen Perzeptrons auf mehrere trainierbare Schichten Zweistufige Perzeptrons können konvexe Polygone klassifizieren. Dreistufige Perzeptrons können beliebige Mengen erkennen (durch Überlagerung konvexer Polygone). Mehrstufiges Perzeptron (multi layer percetron) = vorwärts gerichtetes Netz = Backpropagation – Netz Vorwärts gerichtete Neuronale Netze Folie 13 Inhalt Künstliche Neuronale Netze: Idee und Umsetzung Vorwärts gerichtete neuronale Netze – Perzeptron – Backpropagation–Netz – Partiell rückgekoppelte Netze Einsatz Wettbewerbslernen Zusammenfassung Vorwärts gerichtete Neuronale Netze Folie 14 Backpropagation – Netze Vorwärts gerichtete Neuronale Netze Folie 15 Vorwärts gerichtetes Netz Vorwärts gerichtete Neuronale Netze Folie 16 Trainings -muster p Berechnung einer Ausgabe Ni Oi=pi netj Nj Oj=actj netk Eingabe-Schicht verdeckte Schicht(en) Nk Ok=act k Ausgabe-Schicht Vorwärts gerichtete Neuronale Netze Folie 17 Backpropagation – Lernverfahren Form des überwachten Lernens Fehler des Netzes über alle Trainingsmuster in Abhängigkeit der Gewichte wi : E(W) = E(w1,w2, ... , wn) Gesucht ist minimaler Fehler minimaler Fehler = Tal der Fehlerkurve(-fläche) Backpropagation ist ein Gradientenabstiegsverfahren Vorwärts gerichtete Neuronale Netze Folie 18 Fehlerkurve Vorwärts gerichtete Neuronale Netze Folie 19 Problem EingabeSchicht Ausgabe verdeckte Schicht Trainings -ausgabe Fehler in Ausgabeschicht = Differenz Ausgabe – Trainingsausgabe Fehler in verdeckter Schicht? Vorwärts gerichtete Neuronale Netze Folie 20 Ansatz: Gradientenabstieg 0,80 0,40 -1 -0,6 0,00 -0,2 0,2 0,6 1 Gradient: – Vektor orthogonal zu einer Fläche in Richtung des stärksten Anstiegs – Ableitung einer Funktion: Projektion des Gradienten auf diese Richtung möglicher Fehlerverlauf eines Gewichtes wi Vorwärts gerichtete Neuronale Netze Folie 21 Beispiel Newton-Verfahren Näherungsrechnung zur Bestimmung der Wurzel einer Zahl f(x) = x² – 5 tan = f‘(x) = 2x tan = f(x) / (x-x‘) x‘ =½(x + a/x) f(x)= x²-a x =2 x‘ = ½(x + 5/x) = 2.25 X“= ½(x‘ + 5/x‘) = 2.2361 x‘ x Vorwärts gerichtete Neuronale Netze Folie 22 Die Mathematik Hier: Änderung der Gewichte um einen Bruchteil des negativen Gradienten: W = – E(W) – E(W) ist dabei der Gradient – der Proportionalitätsfaktor* zum Gewichtsvektor W, der Lernfaktor -1 -0,6 -0,2 0,2 0,6 1 * Lernfaktor: im Buch, im JavaNNS Vorwärts gerichtete Neuronale Netze Folie 23 Die Mathematik Hier: Änderung der Gewichte um einen Bruchteil des negativen Gradienten: W‘ = – E(W) E(W): Gradient E(Wj) = E(w1j,w2j, ..., wnj) Proportionalitätsfaktor zum Gewichtsvektor W, : der Lernfaktor Vorwärts gerichtete Neuronale Netze Folie 24 Die Fehlerfunktion Veränderung eines Gewichtes: E wij wij Fehlerfunktion quadratische Abstand zwischen realer und erwarteter Ausgabe über alle Muster p: E E (1) p p – tj - Lerneingabe (teaching input) – oj - tatsächliche Ausgabe – hier Fehler für EIN Muster (ohne Muster-Index p): 1 E (t j o j ) 2 (2) 2 j Vorwärts gerichtete Neuronale Netze Folie 25 Backpropagation – Regel Verallgemeinerung der Delta–Regel: – mehrstufige Netze – semilineare Aktivierungsfunktionen (monoton, differenzierbar, z.B. logistische Funktion) Problem: keine Trainingsvorgaben für die Ausgabe der Neuronen der inneren Schichten Vorwärts gerichtete Neuronale Netze Folie 26 Backpropagation–Lernregel Ausgangspunkt: Zusammenhang: E wij wij (6.1) o j f out ( f act (net j )) net j (6.2) o w i ij i fout = Id 1 E (t j o j ) 2 2 j 6.1 konkreter: E o j net j wij o j net j wij (6.3) Vorwärts gerichtete Neuronale Netze Folie 27 E o j net j wij o j net j wij Der 3. und 2. Faktor dritter Faktor: Abhängigkeit Netzeingabe – Verbindungsgewichte net j wij wij zweite Faktor: erste Ableitung der Aktivierungsfunktion: o j net j o k wkj oi (6.4) k oj (net j ) f act net j f Logistic(net j ) (1 f Logistic(net j )) o j (1 o j ) (6.5) (6.7) Vorwärts gerichtete Neuronale Netze Folie 28 E o j net j wij o j net j wij Der 1. Faktor erster Faktor: Abhängigkeit Fehler – Ausgabe Fehlersignal Ausgabe-Neuron j: E o j E 1 (t j o j ) 2 2 j 1 t k ok 2 (t j o j ) o 2 k j (6.8) (6.9) Fehlersignal inneres Neuron j: E o j k E netk netk o j w k k k k o j i oi wik (6.10 ) jk j : Fehlersignal Vorwärts gerichtete Neuronale Netze Folie 29 Das Fehlersignal j E net j E o j (6.11) o j net j Ausgabe-Neuron j: j = f’act(netj)·(tj – oj) inneres Neuron j: j = f’act(netj) · w k (6.12) jk Vorwärts gerichtete Neuronale Netze Folie 30 Standard–Backpropagation–Regel Für die logistische Aktivierungsfunktion gilt: f ´act(netj ) = fact(netj )(1 – fact(netj )) = oj (1 –oj) damit: o j (1 o j ) k w jk falls j inneres Neuron k j o j (1 o j ) (t j o j ) falls j Ausgabe Neuron somit: wij oi j wij' wij oi j Vorwärts gerichtete Neuronale Netze Folie 31 Fehlersignal bei fact = tanh Für die Aktivierungsfunktion tanh erhält man: f´act(netj ) = (1 – f ²act(netj )) = (1 – tanh² netj ) Unter Beachtung, dass oj =tanh(netj ) erhält man: (1 o 2j ) k w jk , falls j inneres Neuron k j 2 ( 1 o falls j Ausgabe Neuron j ) (t j o j ) , Vorwärts gerichtete Neuronale Netze Folie 32 Entwicklung neuronaler Netze Netzarchitektur aufbauen Trainingsmuster anlegen Ausgabe des Netzes berechnen Gewichte anpassen Vergleich mit Trainingsausgabe gewünschte Qualität erreicht Testdaten anlegen Fehler zu hoch Netzparameter ändern Ausgabe berechnen Netzfehler durch Vergleich mit erwarteter Fehler zu hoch Ausgabe ermitteln gewünschte Qualität erreicht Vorwärts gerichtete Neuronale Netze Folie 33 Entwicklung neuronaler Netze Netzarchitektur aufbauen Ausgabe des Netzes berechnen Vergleich mit Trainingsausgabe Fehler zu groß Trainingsmuster anlegen Gewichte anpassen Netzparameter ändern Fehler zu hoch Einsatzfähiges NN gewünschte Qualität erreicht Test-Daten anlegen Ausgabe des Netzes berechnen Vergleich mit erwarteter Ausgabe gewünschte Qualität erreicht Vorwärts gerichtete Neuronale Netze Folie 34 Backpropagation – Probleme A B C A: Flaches Plateau – Backpropagation stagniert auf Plateauflächen – Minima wird nicht (spät) gefunden B: Oszillation in steilen Schluchten – Durch Schrittweite wird stets über Minimum gesprungen C: Verlassen guter Minima – Durch Schrittweite wird das Minimum übersprungen Vorwärts gerichtete Neuronale Netze Folie 35 Lösungsmöglichkeit – Wertebereich Wahl des Dynamikbereiches der logistischen Aktivierungsfunktion Gewichtsänderung ist abhängig von Ausgabe; Bei oi=0 wird keine Änderung wirksam. binäre Eingabe [0..1] häufig Null ändern in z.B. [-½ .. ½] Aktivierungsfunktion tanh wählen Bereich [ –1..1] Vorwärts gerichtete Neuronale Netze Folie 36 Lösungsmöglichkeit: Manhattan – Training Betrag des Fehlers spielt keine Rolle Nur das Vorzeichen betrachten – entspricht einer Normierung der Werte: wij oi sgn( j ) Vorwärts gerichtete Neuronale Netze Folie 37 Lösungsmöglichkeit: Quickprop Annahme, dass Fehlerfunktion quadratisch ist; Sprung direkt in den Scheitelpunkt der Kurve; wij (t ) -2 2 6 S (t ) wij (t 1) S (t 1) S (t ) S: Steigung der Fehlerfunktion: E S (t ) wij (t ) Vorwärts gerichtete Neuronale Netze Folie 38 Resilient Propagation (RPROP) Richtung und Betrag der Gewichtsänderung werden getrennt festgelegt: bij(t) – Betrag der Änderung bij(t) = bij(t-1) + bij(t-1) bij(t-1) falls S(t-1)S(t) > 0 falls S(t-1)S(t) < 0 sonst +>1 : beide Anstiege gleich „großen“ Schritt 0<-<1 : Anstiege verschieden „kleineren“ Schritt -bij(t) falls S(t-1)>0 S(t) > 0 wij(t) = bij(t) falls S(t-1)<0 S(t) < 0 -wij(t-1) falls S(t-1)S(t) < 0 (*) -sgn(S(t))bij(t) sonst (*) S(t):=0 gesetzt; damit tritt im Schritt (t+1) der vierte Fall ein. +, - : Parameter der Lernfunktion Vorwärts gerichtete Neuronale Netze Folie 39 Grenzen des Lernverfahrens kein Modell für das biologische Lernen: – richtige Antworten im Lernprozess natürlicher neuronaler Netze nicht gegeben; – es gibt keine bisher bekannten Rückkopplungen, die Fehler im Netz rückwärts leiten können; – Trainingszeiten vergleichsweise sehr hoch Vorwärts gerichtete Neuronale Netze Folie 40 Inhalt Künstliche Neuronale Netze: Idee und Umsetzung Vorwärts gerichtete neuronale Netze – Perzeptron – Backpropagation–Netz – Partiell rückgekoppelte Netze Einsatz Wettbewerbslernen Zusammenfassung Vorwärts gerichtete Neuronale Netze Folie 41 Aufgaben Implementieren Sie ein vorwärts gerichtetes Netz mit 2 Eingabe- und einem Ausgabe–Neuron, welches eine verdeckte Schicht aus zwei Neuronen besitzt. Trainieren Sie das Netz, so dass es die XOR–Funktion realisiert. Nutzen Sie den JavaNNS Implementieren Sie ein 4-2-4-Netz, welches die identische Funktion realisiert. (Encoder–Decoder–Netzwerk). Probieren Sie auch andere Varianten: 4-3-4, 8-4-8, ... Welche Aussagen über das Lernverhalten lassen sich treffen? Vorwärts gerichtete Neuronale Netze Folie 42 Partiell rekurrente Netze – Motivation Vorwärts gerichtete Netze: – ein und dasselbe Eingabemuster stets dieselbe Ausgabe – unabhängig vom Kontext schlecht z.B. für Prognose von Zeitreihen. Problem: Repräsentation von Zeit Vorwärts gerichtete Neuronale Netze Folie 43 Repräsentation von Zeit in vorwärts gerichteten Netzen: – “sliding window”: n Muster (Teilfolge) gleichzeitig als Eingabe anlegen – aber: – Netztopologie feste Größe des Eingabefenster – gleiche Teilfolgen produzieren dieselbe Ausgabe unabhängig vom Kontext Vorwärts gerichtete Neuronale Netze Folie 44 Lösung: partielle rekurrente Netze enthalten spezielle verdeckte Zellen Kontextzellen: – definierte Rückkopplung von Ausgabe- oder verdeckten Zellen in die innere Schicht Vorwärts gerichtete Neuronale Netze Folie 45 Jordan-Netze Ausgabezellen verdeckte Zellen Eingabezellen 1:1-Verbindungen mit Gewicht (=1) Kontextzellen mit direkter Rückkopplung Vorwärts gerichtete Neuronale Netze Folie 46 Jordan–Netze Anzahl Kontextzellen = Anzahl Ausgabezellen Kontextzellen speichern Ausgabezustand feste Verbindungen zu Kontextzellen, feste direkte Rückkopplungen Nachteilig: – Anzahl Kontextzellen durch Ausgabe fixiert, – keine Zustände der inneren Schicht speicherbar Vorwärts gerichtete Neuronale Netze Folie 47 Jordan–Netz: „Erinnerung“ – S(t) - zeitabhängiger Zustandsvektor – O(t) – Ausgabe S0 , falls t 1 S (t ) S (t 1) O(t 1), falls t 1 – mit der Vereinfachung t 1 S(0) = Nullvektor n 1 S ( t ) O(t n) und =1 ergibt sich: n 1 – 0 1 steuert Erinnerungsvermögen – nahe 1: alte Zustände stärker berücksichtigt, das Netz ist träge; – Kompromiss: = 0.5 Vorwärts gerichtete Neuronale Netze Folie 48 Elman–Netze Ausgabezellen 1:1-Verbindungen mit Gewicht 1 verdeckte Zellen Kontextzellen Eingabezellen Vorwärts gerichtete Neuronale Netze Folie 49 Elman–Netze Modifikation der Jordan –Netze Rückkopplung von verdeckter zur Kontextschicht (normalerweise) keine direkten Rückkopplungen Zustand Kontextzellen = Kopie Ausgabe verdeckter Zellen verdeckte Zellen entwickeln interne Repräsentation der Eingabemuster Zeit codiert Vorteil gegenüber Jordan–Netze: – Anzahl Kontextzellen unabhängig von Anzahl Ausgabeneuronen Vorwärts gerichtete Neuronale Netze Folie 50 Lernverfahren für rekurrente Netze Backpropagation, Quickprop, ... anwendbar, da rekurrenten Verbindungen feste Gewichte besitzen : Elman/Jordan-Netze als reine feed-forward Netze betrachtet, Kontextzellen als Eingabezellen betrachten Vorwärts gerichtete Neuronale Netze Folie 51 Beispiel Netz soll aus vorangegangenen Punktkoordinaten die Koordinaten des nächsten Punktes ermitteln, so dass die Verbindung dieser Punkte eine liegende Acht ergeben. Aufgabe 1. Trainieren Sie die beiden Netze eight_jordan_untrained sowie eight_elman_untrained mit dem entsprechenden Musterfile eight_016.pat 2. Lesen Sie die Readme-Dateien für diese Beispiele. 3. Veranschaulichen Sie sich das Ergebnis mit dem ANALYSER-Tool. Setzen Sie dazu im Setup die Werte für axis,min,max,uni,grid auf die Werte x: (0.0, 1.0, 11, 10) sowie y: (0.0, 1.0, 12, 10) Vorwärts gerichtete Neuronale Netze Folie 52 SNNS: Beispiel Elman Vorwärts gerichtete Neuronale Netze Folie 53 Inhalt Künstliche Neuronale Netze: Idee und Umsetzung Vorwärts gerichtete neuronale Netze Einsatz – Mustererkennung – Data Mining – Prognose – Datenvorverarbeitung – Optimierung Wettbewerbslernen Zusammenfassung Vorwärts gerichtete Neuronale Netze Folie 54 Entwicklung neuronaler Netze Netzarchitektur aufbauen Trainingsmuster anlegen Ausgabe des Netzes berechnen Gewichte anpassen Vergleich mit Trainingsausgabe gewünschte Qualität erreicht Testdaten anlegen Fehler zu hoch Ausgabe berechnen Netzparameter ändern Netzfehler durch Vergleich mit erwarteter Fehler zu hoch Ausgabe ermitteln gewünschte Qualität erreicht Vorwärts gerichtete Neuronale Netze Folie 55 Zeichenerkennnung Eingabeschicht 1. verdeckte Schicht 2. verdeckte schicht Ausgabeschicht Zeichenerkennung mit vorwärts gerichteten Netzen und dem Lernverfahren Backpropagation Vorwärts gerichtete Neuronale Netze Folie 56 SNNS: Das Beispiel „font“ Vorwärts gerichtete Neuronale Netze Folie 57 Das Beispiel „font“ Eingabe ist ein 24x24 Pixelfeld Zwei innere Schichten mit jeweils 4x6 Neuronen; Ausgabeschicht mit 75 Neuronen, für jedes Zeichen (Ziffern, KleinGroßbuchstaben sowie einige Sonderzeichen) jeweils ein Neuron, welches erregt ist, wenn das entsprechende Zeichen als Eingabe anliegt. Alle Neuronen einer Zeile der Eingabeschicht sind mit einem Neuron der ersten inneren Schicht verbunden. Alle Neuron einer Spalte entsprechend mit einem Neuron der zweiten inneren Schicht. Vorwärts gerichtete Neuronale Netze Folie 58 Aufgabe Starten Sie mit dem Netz “font_untrained” Trainieren Sie es mit verschiedenen Lernverfahren: (Zu den Parametern siehe auch SNNS-Dokumentation) – Backpropagation – Backpropagation with momentum – Quickprop – Rprop =2.0 =0.8 =0.1 =0.6 mu=0.6 c=0.1 mg=2.0 n0.0001 Trainieren Sie das Netz mit unterschiedlichen Werten für die Lernrate, das Momentum und den Störfaktor (prozentuale Verrauschung): Lernrate 0.2 0.3 0.5 1.0 Momentum 0.9 0.7 0.5 0.0 Störfaktor 0.0 0.1 0.2 Vorwärts gerichtete Neuronale Netze Folie 59 Erkennung KFZ–Kennzeichen Vorwärts gerichtete Neuronale Netze Folie 60 Inhalt Künstliche Neuronale Netze: Idee und Umsetzung Vorwärts gerichtete neuronale Netze Einsatz – Mustererkennung – Data Mining – Prognose – Datenvorverarbeitung – Optimierung Wettbewerbslernen Zusammenfassung Vorwärts gerichtete Neuronale Netze Folie 61 Inhalt Künstliche Neuronale Netze: Idee und Umsetzung Vorwärts gerichtete neuronale Netze Einsatz – Mustererkennung – Data Mining – Prognose – Datenvorverarbeitung – Optimierung Wettbewerbslernen Zusammenfassung Vorwärts gerichtete Neuronale Netze Folie 62 Prognose Aktienwerte (Diplomarbeit Werschmöller 2001) Energieverbrauch (Dachs GmbH Schwerin) Tagestemperatur (Bachelor-Arbeit, Kroll 2008) WDP-Heft 2009, www.wi.hs-wismar.de/wdp Vorwärts gerichtete Neuronale Netze Folie 63 Inhalt Künstliche Neuronale Netze: Idee und Umsetzung Vorwärts gerichtete neuronale Netze Einsatz – Mustererkennung – Data Mining – Prognose – Datenvorverarbeitung – Optimierung Wettbewerbslernen Zusammenfassung Vorwärts gerichtete Neuronale Netze Folie 64 Pre-Processing Data Types Distance, Similarity, Error Why pre-processing? Cleaning Integration Transformation Reduction Vorwärts gerichtete Neuronale Netze Folie 65 Data Types Nominal: no ordering no distance measure compare function: equal Example Attributes: – colour – occupation – marital status – nationality – … Ordinal: ordering exists no distance measure compare functions: equal, less example attributes: – shoe size – marks (grades) – scales like: bad, average, good – … Metric: ordering exists distance measure exists example attributes: – space – speed – height – energy – … Vorwärts gerichtete Neuronale Netze Folie 66 similarity: sim(u,v) often expressed by distance: sim(u,v) = f(dist(u,v)) Distance – Similarity distance: dist(u,v) properties: – dist(x,x) = 0 – dist(x,y) = dist(y,x) – dist(x,y) ≤ dist(x,z)+dist(z,y) 10 8 q 6 4 p 2 0 0 distance function – Hamming – Euclidian – Manhattan – Maximum 2 dist(u,v) = = counti(ui≠vi) = i (ui²-vi ²) = i |ui -vi | = maxi |ui -vi | 4 6 8 10 Example: dist(p,q) = 2 dist(p,q) = 5,83 dist(p,q) = 8 dist(p,q) = 5 Vorwärts gerichtete Neuronale Netze Folie 67 Objectives & Methods Objectives prospects of better results adaptation to algorithms data reduction trouble shooting Methods Cleaning Integration Transformation – normalization – coding – filter Reduction Vorwärts gerichtete Neuronale Netze Folie 68 Selection and Integration unification of data (different sources) selection of attributes/features reduction – omit obviously non-relevant data – all values are equal – key values – meaning not relevant – omit data for data protection reasons – use a subset only (random selection) for efficiency reasons Vorwärts gerichtete Neuronale Netze Folie 69 Cleaning – missing value / noisy data Missing value ignore the tuple ignore / omit attribute add values – manual – global constant („unknown“) – average – highly probable value Noisy data check for inconsistency finding outliers Vorwärts gerichtete Neuronale Netze Folie 70 Transformation Normalization Coding Filter Vorwärts gerichtete Neuronale Netze Folie 71 Normalization of values normalization – equally distributed – in the range [0,1] – e.g. for the logistic function x’ = (x – minValue) / (maxValue – minValue) – in the range [-1,+1] – e.g. for activation function tanh x’ = (x – minValue) / (maxValue – minValue)*2 – 1 logarithmic normalization – x’= (ln(x) – ln(minValue)) / (ln(maxValue) – ln(minValue)) Vorwärts gerichtete Neuronale Netze Folie 72 Binary Coding of nominal values I no order relation, n-values n neurons each neuron represents one and only one value: – example: red, blue, yellow, white, black 1,0,0,0,0 0,1,0,0,0 0,0,1,0,0 ... – disadvantage: n neurons necessary, but only one of them is activated lots of zeros in the input Vorwärts gerichtete Neuronale Netze Folie 73 Binary Coding of nominal values II no order-relation, n values m neurons, of it k neurons switched on for one single value requirement: (m choose k) n (m choose k): number of possibilities to choose k elements out of m. – example: red, blue, yellow, white, black 1,1,0,0 1,0,1,0 1,0,0,1 0,1,1,0 0,1,0,1 4 neuron, 2 of it switched on, (4 choose 2) > 5 – advantage: – fewer neurons – balanced ratio of 0 and 1 Vorwärts gerichtete Neuronale Netze Folie 74 Example Credit Scoring A1: Credit history A2: debt A3: collateral A4: income neural network architecture depends on the coding of input and output neural networks need input values {0,1}, or {–1,1}, or [–1,+1] How can we code values like good, bad, 1, 2, 3, ...? Vorwärts gerichtete Neuronale Netze Folie 75 To play or not to play ... Suggest a coding for the values rainy, sunny, true, 81, 90, 70, ... Vorwärts gerichtete Neuronale Netze Folie 76 Inhalt Künstliche Neuronale Netze: Idee und Umsetzung Vorwärts gerichtete neuronale Netze Einsatz – Mustererkennung – Data Mining – Prognose – Datenvorverarbeitung – Optimierung Wettbewerbslernen Zusammenfassung Vorwärts gerichtete Neuronale Netze Folie 77 Optimierung Neuronaler Netze Ziele Gute Ergebnisse im Einsatz: Erhöhung der Generalisierungsfähigkeit (Verbesserung der Korrektheit) Schnellere Bearbeitung der Muster (Verbesserung der Effizienz) Gute Darstellung der Ergebnisse (Erhöhung der Verständlichkeit) Vorwärts gerichtete Neuronale Netze Folie 78 Generalisierungsfähigkeit Fähigkeit des Netzes auch bisher unbekannte Eingaben richtig verarbeiten zu können Ziel jeder Netz-Entwicklung Netz zu groß: – Alle Trainingsmuster exakt gelernt – Keine Generalisierungsfähigkeit Netz zu klein: – Regeln der Mustererkennung können nicht gelernt werden (Triviales Beispiel: Perzeptron und XOR) Vorwärts gerichtete Neuronale Netze Folie 79 Mögliche Veränderungen Architektur NN – Netzgröße – Abkürzende Verbindungen – Partiell vernetzte Schichten – Entfernen/Hinzufügen von Verbindungen – Rezeptive Felder Genetische Algorithmen – Ermittlung geeigneter Parameterwerte für: Architektur Lernparameter Vorwärts gerichtete Neuronale Netze Folie 80 Speicherkapazität Anzahl der Muster, die ein Netz ohne zu generalisieren speichern kann Bestimmung der Speicherkapazität Ausgabe–Schicht modifizieren: Ausgabe–Schicht Eingabe–Schicht Netz mit Zufallsmuster trainieren – Fehler wird klein:Netz speichert alle Muster – Fehler bleibt: Netz kann Muster nicht mehr speichern – Grenzfall : Speicherkapazität Vorwärts gerichtete Neuronale Netze Folie 81 Ermittlung der Speicherkapazität Ausgabe – Schicht = Kopie der Eingabe – Schicht Trainingsmenge aus n Zufallsmustern Ermittlung des Fehlers: Fehler = 0 Netz kann mehr als n Muster speichern Fehler >> 0 Netz kann nicht n Muster speichern Speicherkapazität=n: Fehler > 0 und Fehler für n – 1 Muster ist null und Fehler für n+1 deutlich größer 0 Vorwärts gerichtete Neuronale Netze Folie 82 Unvollständig vernetzte Schichten Verbindungen: neue entfernte beibehaltene Prozentuale Vernetzung (z.B. 75%) Entfernen von Verbindungen, deren Gewichte im Training längere Zeit nahe 0 Bildung neuer Verbindungen (Zufall) Vorwärts gerichtete Neuronale Netze Folie 83 Inhalt Künstliche Neuronale Netze: Idee und Umsetzung Vorwärts gerichtete neuronale Netze Einsatz Wettbewerbslernen – Selbstorganisierende Karte (SOM) – Neuronales Gas – Adaptive Resonanz Theorie (ART) Zusammenfassung Vorwärts gerichtete Neuronale Netze Folie 84 weiter mit Wettbewerbslernen Vorwärts gerichtete Neuronale Netze Folie 85