Simulation Rekursiver Auto-Assoziativer Speicher (RAAM) durch Erweiterung eines klassischen Backpropagation-Simulators Jan Parthey, Christin Seifert jpar@hrz.tu-chemnitz.de, sech@hrz.tu-chemnitz.de 22. Mai 2003 http://archiv.tu-chemnitz.de/pub/2003/0053 Zusammenfassung Überblick über RAAMs Probleme und Lösungen für Implementierung von RAAMs
Überblick über den Vortrag Motivation für die Verwendung von RAAMs Funktionsweise Kodierung Dekodierung Besonderheiten beim Lernen Problemstellung Lösungsansatz implementierte Lernvariante Anwendung Klassifikation Transformation Bewertung Ausblick
Motivation RAAMs spezielle NN NNs ursprünglich zur Mustererkennung entwickelt Problem: Sprachverarbeitung NNs für Bäume anwendbar (Syntax-Bäume)? MICHAEL IS LOVE NIL BY JOHN NIL [nach Chalmers 1992] Kritik: keine adäquate Modellierung kognitiver Aufgaben
NN-Ansatz für Bäume wünschenswert: beliebige Bäume mit NNs 1. ungünstig: jede Position im Baum hat ihren Teil vom Vektor
NN-Ansatz für Bäume wünschenswert: beliebige Bäume mit NNs 1. ungünstig: jede Position im Baum hat ihren Teil vom Vektor Y X Z A B C D A X B Y C Z D
NN-Ansatz für Bäume wünschenswert: beliebige Bäume mit NNs 1. ungünstig: jede Position im Baum hat ihren Teil vom Vektor Y X Z A B C D A X B Y C Z D Baumtiefe- und Verzweigung ist begrenzt oder Vektoren unterschiedliche Breite
NN-Ansatz für Bäume wünschenswert: beliebige Bäume mit NNs 1. ungünstig: jede Position im Baum hat ihren Teil vom Vektor Baumtiefe- und Verzweigung ist begrenzt oder Vektoren unterschiedliche Breite 2. besser: Teilbäume werden durch das NN kombiniert jeder Teilbaum hat gleich breite Repräsentation ähnliche Strukturen bekommen ähnliche Repräsentationen
NN-Ansatz für Bäume wünschenswert: beliebige Bäume mit NNs 1. ungünstig: jede Position im Baum hat ihren Teil vom Vektor Baumtiefe- und Verzweigung ist begrenzt oder Vektoren unterschiedliche Breite 2. besser: Teilbäume werden durch das NN kombiniert jeder Teilbaum hat gleich breite Repräsentation ähnliche Strukturen bekommen ähnliche Repräsentationen RAAMs sind normale NNs Vorteil: normal mit Backpropagation trainierbar realisieren den 2. Ansatz
NN-Ansatz für Bäume wünschenswert: beliebige Bäume mit NNs 1. ungünstig: jede Position im Baum hat ihren Teil vom Vektor Baumtiefe- und Verzweigung ist begrenzt oder Vektoren unterschiedliche Breite 2. besser: Teilbäume werden durch das NN kombiniert jeder Teilbaum hat gleich breite Repräsentation ähnliche Strukturen bekommen ähnliche Repräsentationen RAAMs sind normale NNs Vorteil: normal mit Backpropagation trainierbar realisieren den 2. Ansatz Wie?
RAAMs spezielle Topologie binärer RAAM
RAAMs spezielle Topologie binärer RAAM Kodierung und Dekodierung von ((A B) C) (rekursiv) C A B
Kodierung
Kodierung [[AB]C] [AB] C A B
Kodierung [[AB]C] [AB] C A B 1. Anlegen von (A B)
Kodierung [[AB]C] [AB] C A B 1. Anlegen von (A B) [AB]
Kodierung [[AB]C] [AB] C A B 1. Anlegen von (A B) [AB] 2. Anlegen von ([AB] C)
Kodierung [[AB]C] [AB] C A B 1. Anlegen von (A B) [AB] 2. Anlegen von ([AB] C) [[AB] C]
Dekodierung
Dekodierung [[AB]C] [AB] C A B
Dekodierung [[AB]C] [AB] C A B 1. Anlegen von [[AB] C]
Dekodierung [[AB]C] [AB] C A B 1. Anlegen von [[AB] C] ([AB] C)
Dekodierung [[AB]C] [AB] C A B 1. Anlegen von [[AB] C] ([AB] C) 2. Anlegen von [AB]
Dekodierung [[AB]C] [AB] C A B 1. Anlegen von [[AB] C] ([AB] C) 2. Anlegen von [AB] (A B)
Dekodierung [[AB]C] [AB] C A B 1. Anlegen von [[AB] C] ([AB] C) 2. Anlegen von [AB] (A B) [AB] C C A B
Training Wie kann RAAM auf Autoassoziativität trainiert werden?
Training Wie kann RAAM auf Autoassoziativität trainiert werden? Problem ist vom Typ moving target Netz mit (A B) für [AB] trainiert reicht nicht, da Gewichtsänderungen im weiteren Trainingsverlauf mit Gewichten ändert sich auch [AB] dynamische Trainingsmenge
Training Wie kann RAAM auf Autoassoziativität trainiert werden? Problem ist vom Typ moving target Netz mit (A B) für [AB] trainiert reicht nicht, da Gewichtsänderungen im weiteren Trainingsverlauf mit Gewichten ändert sich auch [AB] dynamische Trainingsmenge Beispiel Input Target Hidden 1 (A B) (A B) [AB] 2 ([AB] C) ([AB] C) [[AB]C]
Training Wie kann RAAM auf Autoassoziativität trainiert werden? einfach BackProp mit statischer Trainingsmenge funktioniert nicht BackProp (mit eigenem Abbruchkriterium) Update-Mechanismus für die Trainingsmenge übergeordnetes Abbruchkriterium
Überblick über den Vortrag Motivation für die Verwendung von RAAMs Funktionsweise Besonderheiten beim Lernen Problemstellung Lösungsansatz implementierte Lernvariante Anwendung Klassifikation Transformation Bewertung Ausblick
Training mit Update-Mechanismus Update Level 1: [AB] A B
Training mit Update-Mechanismus Update Level 1: [AB] A [[AB]C] B Update Level 2: [AB] C
Training mit Update-Mechanismus Update Level 1: [AB] A [[AB]C] B Update Level 2: [AB] C do 1. Backpropagation (mit statischer Trainingsmenge) 2. Update der Trainingsmenge (nach aufsteigenden Levels) while (r i r i ) 2 > ɛ
Gleiche Gewichtung aller Knoten Problem: tiefere Bäume mehr Fehler bei Dekodierung
Gleiche Gewichtung aller Knoten Problem: tiefere Bäume mehr Fehler bei Dekodierung Ursachen: jeder Dekodierungsschritt zusätzlicher Fehler (exponentiell) Wurzelknoten werden nicht anders behandelt als blattnahe Knoten [[AB]C] [AB] C A B
Gleiche Gewichtung aller Knoten Problem: tiefere Bäume mehr Fehler bei Dekodierung Ursachen: jeder Dekodierungsschritt zusätzlicher Fehler (exponentiell) Wurzelknoten werden nicht anders behandelt als blattnahe Knoten [[AB]C] [AB] C A B Lösungsansatz: Knoten auf höheren Levels genauer lernen lassen
Spezielle Gewichtung höherer Knoten 1. Variante: 2 Level -faches Einfügen in Trainingsmenge wurzelnahe Knoten stärker bewerten tragen zunächst mehr zum Fehler bei werden dadurch aber genauer gelernt Nachteil: Performance bei tiefen Bäumen
Spezielle Gewichtung höherer Knoten 1. Variante: 2 Level -faches Einfügen in Trainingsmenge wurzelnahe Knoten stärker bewerten tragen zunächst mehr zum Fehler bei werden dadurch aber genauer gelernt Nachteil: Performance bei tiefen Bäumen 2. Variante: Kostenfunktion individueller Fehlerfaktor für jeden Knoten Nachteil: muss vom NN-Simulator unterstützt werden
Spezielle Gewichtung höherer Knoten 1. Variante: 2 Level -faches Einfügen in Trainingsmenge wurzelnahe Knoten stärker bewerten tragen zunächst mehr zum Fehler bei werden dadurch aber genauer gelernt Nachteil: Performance bei tiefen Bäumen 2. Variante: Kostenfunktion individueller Fehlerfaktor für jeden Knoten Nachteil: muss vom NN-Simulator unterstützt werden in unserer Arbeit nicht implementiert
RAAMs Einsatzgebiete 1. Klassifikation (z.b. bezüglich Baumtiefe) Eingabe: Baumrepräsentation [[AB] C] Ausgabe: Klasse des Baumes
RAAMs Einsatzgebiete 1. Klassifikation (z.b. bezüglich Baumtiefe) Eingabe: Baumrepräsentation [[AB] C] Ausgabe: Klasse des Baumes 2. Transformation Eingabe: Baumrepräsentation [[AB] C] Ausgabe: transformierte Baumrepräsentation [A [BC]]
RAAMs Einsatzgebiete 1. Klassifikation (z.b. bezüglich Baumtiefe) Eingabe: Baumrepräsentation [[AB] C] Ausgabe: Klasse des Baumes 2. Transformation Eingabe: Baumrepräsentation [[AB] C] Ausgabe: transformierte Baumrepräsentation [A [BC]] Wie kann das erreicht werden?
Klassifikation Realisierung Ziel: Baum Klasse
Klassifikation Realisierung Ziel: Baum Klasse zwei Verfahren zur Realisierung der Abbildung: entkoppeltes Lernen gekoppeltes Lernen
Entkoppeltes Lernen Perzeptron Perzeptron getrennt vom RAAM-Netz Abbildung Baum Klasse
Entkoppeltes Lernen Perzeptron Perzeptron getrennt vom RAAM-Netz Abbildung Baum Klasse Training in zwei Phasen: RAAM Bäume autoassoziativ abbilden Perzeptron Input: RAAM-Bäume, Target: Klassenrepr.
Gekoppeltes Lernen Perzeptron Teil der gekoppelten Architektur Perzeptron im RAAM-Netz integriert Implementierung der Beispielerzeugung etwas komplexer
Vergleich ge- und entkoppeltes Lernen (G)ekoppelt: Perzeptron Teil der gekoppelten Architektur (E)ntkoppelt: Perzeptron
Vergleich ge- und entkoppeltes Lernen (G)ekoppelt: Perzeptron Teil der gekoppelten Architektur (E)ntkoppelt: Perzeptron (G) besser im Klassifizieren (E) besser im Baum-Dekodieren
Klassifikation kein Geschwindigkeitsgewinn ursprüngliches Ziel: Zeitersparnis durch holistische Verarbeitung für Kodierung eines Baumes wird seine hierarchische Struktur benötigt holistische Klassifikation nicht schneller als Baum-Durchmusterung! für Transformation ist Gewinn denkbar, aber Repräsentationen müssten dann schon vorliegen
Grenzen von RAAMs bedingte Baumtransformationen holistisch schwer implementierbar Bsp.: B umhängen, aber nur wenn in der Wurzel kein A
Grenzen von RAAMs bedingte Baumtransformationen holistisch schwer implementierbar Bsp.: B umhängen, aber nur wenn in der Wurzel kein A nutzbare Baumtiefe ist in der Praxis begrenzt
Grenzen von RAAMs bedingte Baumtransformationen holistisch schwer implementierbar Bsp.: B umhängen, aber nur wenn in der Wurzel kein A nutzbare Baumtiefe ist in der Praxis begrenzt Bsp. Sprachverarbeitung: Derjenige, der denjenigen, der den Pfahl, der an der Brücke, die auf dem Weg, der nach Furth führt, liegt, stand, umgeworfen hat, anzeigt, erhält eine reichliche Belohnung. für Sprache weniger praxisrelevant, aber z.b. für Compiler
Ausblick Was hätte noch behandelt werden können?
Ausblick Was hätte noch behandelt werden können? komplexere Datenerhebung implementieren zur besseren Ursachenforschung bei Dekodierungsfehlern, z.b. zur Beantwortung der Frage: Wo im Baum häufen sich Fehler?
Ausblick Was hätte noch behandelt werden können? komplexere Datenerhebung implementieren zur besseren Ursachenforschung bei Dekodierungsfehlern, z.b. zur Beantwortung der Frage: Wo im Baum häufen sich Fehler? Overfitting-Vermeidung durch Nutzung einer Testmenge
Ausblick Was hätte noch behandelt werden können? komplexere Datenerhebung implementieren zur besseren Ursachenforschung bei Dekodierungsfehlern, z.b. zur Beantwortung der Frage: Wo im Baum häufen sich Fehler? Overfitting-Vermeidung durch Nutzung einer Testmenge Tests unserer Bibliotheken mit größeren Bäumen
Abschluss Vielen Dank für die Aufmerksamkeit! Gibt es Fragen?