870 likes | 1.1k Views
Wismar Business School. Wissensextraktion mittels künstlicher neuronaler Netze Vorwärts gerichtete NN. Uwe Lämmel. www.wi.hs-wismar.de/~laemmel Uwe.Laemmel@hs-wismar.de. Künstliche Neuronale Netze: Idee und Umsetzung Vorwärts gerichtete neuronale Netze Perzeptron Backpropagation–Netz
E N D
Wismar Business School Wissensextraktion mittelskünstlicher neuronaler NetzeVorwärts gerichtete NN Uwe Lämmel www.wi.hs-wismar.de/~laemmel Uwe.Laemmel@hs-wismar.de
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 Inhalt
... Adaline – LTU – Perzeptron Eine trainierbare Verbindungsschicht • Adaptive linear element • Linear Threshold Unit • Perzeptron
Abbildungsschicht Ausgabe-schicht Bild trainierbare vollständige Verbindung Feste 1-1- Verbindungen Perzeption PerzeptionWahrnehmung als erste Stufe der Erkenntnisin der Psychologie der Vorgang der (sinnl.) Wahrnehmung eines Gegenstandes ohne bewusstes Erfassen und Identifizieren des Wahrgenommenen Meyers Neues Lexikon
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)
j 1 2 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 + 1w2jj 1w1j + 0w2jj 1w1j + 1w2j<j ?
o2 (1,1) 1 o1 (0,0) 1 o1*w1 +o2*w2=q Lineare Trennbarkeit • netj = o1w1j + o2w2j Gerade im 2-dim. Raum • Gerade teilt Ebene so, dass (0,1) und (1,0) stets in unterschiedlichen Teilebenen liegen. 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.
Lernverfahren while Eingabemusterdobegin nächstes Eingabemuster Iund berechne Ausgabemuster O foreachj in AusgabeNeuronen do ifojtjthen ifoj=0 then {Ausgabe=0, aber 1 erwartet} for eachi in EingabeNeuron dowij:=wij+oi elseifoj=1 then {Ausgabe=1, aber 0 erwartet} foreachi in EingabeNeuron dowij:=wij-oi ; end Wiederhole bis gewünschtes Verhalten erreicht
Mustererkennung • Dekodierung • Eingabe: Binärcode einer Ziffer • Ausgabe: Unärcode: soviel Einsen, wie Ziffer angibt 5 : 1 1 1 1 1 • Architektur:
Mustererkennung - Klassifikation • Dekodierung • Eingabe: Binärcode einer Ziffer • Ausgabe: Zuordnung zu einer Klasse:0~ 1.Neuron, 1~ 2. Neuron, ... 5~ 6. Neuron, ... • Architektur:
Aufgaben • Machen Sie sich mit der EXCEL-Lösung des Problems vertraut. • 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. • Welche Modifizierung muss der Lernalgorithmus erfahren, damit ein Lerneffekt eintritt? • Welche Ausgabe (Unäre Darstellung oder Klassifikation) lässt sich schneller lernen?
Aufgaben • Entwickeln Sie ein Perzeptron zur Erkennung von Ziffern 0..9. Eingabe-Schicht: 3x7-Eingabe-NeuronenNutzen Sie den SNNS oder JavaNNS • Wie können mehrstellige Zahlen erkannt werden? • Entwickeln Sie ein Perzeptron zur Erkennung von Großbuchstaben.Eingabeschicht 5x7
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
Künstliche Neuronale Netze: Idee und Umsetzung Vorwärts gerichtete neuronale Netze Perzeptron Backpropagation–Netz Partiell rückgekoppelte Netze Einsatz Wettbewerbslernen Zusammenfassung Inhalt
Trainings-muster p Oi=pi Ni netj Oj=actj Nj netk Ok=actk Nk Eingabe-Schicht verdeckte Schicht(en) Ausgabe-Schicht Berechnung einer Ausgabe
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
Problem • Fehler in Ausgabeschicht = Differenz Ausgabe – Trainingsausgabe • Fehler in verdeckter Schicht? Eingabe-Schicht Ausgabe Trainings-ausgabe verdeckte Schicht
Ansatz: Gradientenabstieg 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
tan = f‘(x) = 2x tan = f(x) / (x-x‘) x‘ =½(x + a/x) f(x)= x²-a x x‘ Beispiel Newton-Verfahren • Näherungsrechnung zur Bestimmung der Wurzel einer Zahl • f(x) = x² – 5 • x = 2 • x‘ = ½(x + 5/x) = 2.25 • X“= ½(x‘ + 5/x‘) = 2.2361
-1 -0,6 -0,2 0,2 0,6 1 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 * Lernfaktor: im Buch, im JavaNNS
Die Mathematik Hier: Änderung der Gewichte um einen Bruchteil des negativen Gradienten: W‘ = – E(W) • E(W): Gradient • Proportionalitätsfaktor zum Gewichtsvektor W, : der Lernfaktor E(Wj) = E(w1j,w2j, ..., wnj)
Fehlerfunktionquadratische Abstand zwischen realer und erwarteter Ausgabe über alle Muster p: tj - Lerneingabe (teaching input) oj - tatsächliche Ausgabe hier Fehler für EIN Muster (ohne Muster-Index p): Die Fehlerfunktion • Veränderung eines Gewichtes: (1) (2)
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
Backpropagation–Lernregel • Ausgangspunkt: (6.1) • Zusammenhang: (6.2) fout = Id • 6.1 konkreter: (6.3)
Der 3. und 2. Faktor • dritter Faktor:Abhängigkeit Netzeingabe – Verbindungsgewichte (6.4) • zweite Faktor: erste Ableitung der Aktivierungsfunktion: (6.5) (6.7)
Der 1. Faktor • erster Faktor: Abhängigkeit Fehler – Ausgabe • Fehlersignal Ausgabe-Neuron j: (6.8) (6.9) • Fehlersignal inneres Neuron j: (6.10) j : Fehlersignal
Das Fehlersignal (6.11) j = f’act(netj)·(tj – oj) • Ausgabe-Neuron j: (6.12) j = f’act(netj) ·kwjk • inneres Neuron j:
Standard–Backpropagation–Regel • Für die logistische Aktivierungsfunktion gilt:f ´act(netj ) = fact(netj )(1 – fact(netj )) = oj (1 –oj) • damit: • somit:
Fehlersignal bei fact =tanh • Für die Aktivierungsfunktion tanh erhält man:f´act(netj )= (1 – f ²act(netj ))= (1 – tanh² oj ) • damit:
Ausgabe des Netzes berechnen Netzarchitektur aufbauen Vergleich mit Trainings-ausgabe gewünschte Qualität erreicht Trainingsmuster anlegen Testdaten anlegen Gewichte anpassen Fehler zu hoch Ausgabe berechnen Netzparameter ändern Netzfehler durch Vergleich mit erwarteter Ausgabe ermitteln Fehler zu hoch gewünschte Qualität erreicht Entwicklung neuronaler Netze
Entwicklung neuronaler Netze Vergleich mit Trainingsausgabe Ausgabe des Netzes berechnen gewünschte Qualität erreicht Netzarchitektur aufbauen Fehler zu groß Test-Datenanlegen Trainingsmuster anlegen Gewichte anpassen Ausgabe des Netzes berechnen Netzparameter ändern Fehler zu hoch Vergleich mit erwarteter Ausgabe Einsatzfähiges NN gewünschte Qualität erreicht
B A C Backpropagation – Probleme • 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
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]
Lösungsmöglichkeit: Manhattan – Training • Betrag des Fehlers spielt keine Rolle • Nur das Vorzeichen betrachten • entspricht einer Normierung der Werte:
Lösungsmöglichkeit: Quickprop • Annahme, dass Fehlerfunktion quadratisch ist; • Sprung direkt in den Scheitelpunkt der Kurve; S: Steigung der Fehlerfunktion:
Resilient Propagation (RPROP) Richtung und Betrag der Gewichtsänderung werden getrennt festgelegt: bij(t) – Betrag der Änderung bij(t-1) + falls S(t-1)S(t) > 0 bij(t) = bij(t-1) - falls S(t-1)S(t) < 0 bij(t-1) sonst +>1 : beide Anstiege gleich „großen“ Schritt0<-<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
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
Künstliche Neuronale Netze: Idee und Umsetzung Vorwärts gerichtete neuronale Netze Perzeptron Backpropagation–Netz Partiell rückgekoppelte Netze Einsatz Wettbewerbslernen Zusammenfassung Inhalt
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?
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
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
Lösung: partielle rekurrente Netze enthalten spezielle verdeckte Zellen Kontextzellen: • definierte Rückkopplung von Ausgabe- oder verdeckten Zellen in die innere Schicht
Ausgabezellen 1:1-Verbindungen mit Gewicht (=1) verdeckte Zellen Kontextzellenmit direkter Rückkopplung Eingabezellen Jordan-Netze
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
Jordan–Netz: „Erinnerung“ • S(t) - zeitabhängiger Zustandsvektor • O(t) – Ausgabe • mit der Vereinfachung S(0) = Nullvektor und =1 ergibt sich: • 0 1 steuert Erinnerungsvermögen • nahe 1: alte Zustände stärker berücksichtigt, das Netz ist träge; • Kompromiss: = 0.5
Elman–Netze Ausgabezellen 1:1-Verbindungen mit Gewicht 1 verdeckte Zellen Kontextzellen Eingabezellen
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