170 likes | 266 Views
Wismar Business School. Wissensextraktion mittels künstlicher neuronaler Netze Arbeit mit dem JavaNNS. Uwe Lämmel. www.wi.hs-wismar.de/~laemmel Uwe.Laemmel@hs-wismar.de. Schritte. JavaNNS installieren Erzeugen eines Netzes Anlegen einer Training-Datei .pat Anlegen einer Test-Datei .pat
E N D
Wismar Business School Wissensextraktion mittelskünstlicher neuronaler NetzeArbeit mit dem JavaNNS Uwe Lämmel www.wi.hs-wismar.de/~laemmel Uwe.Laemmel@hs-wismar.de
Schritte • JavaNNS installieren • Erzeugen eines Netzes • Anlegen einer Training-Datei .pat • Anlegen einer Test-Datei .pat • Trainieren des Netzes • Speichern und Auswerten der Ergebnisse
JavaNNS installieren • Herunterladen vonwww.ra.cs.uni-tuebingen.de/software/JavaNNS/welcome_e.html • Java / JRE muss installiert sein • Entpacken • Start mit:>java –jar JavaNNS.jar • besser: anlegen einer .cmd-Datei mit Aufruf-Zeile • Start von JavaNNS und probieren: • Help > Content • falls Fehler, dann Browser-Pfad einstellen unter View > Properties…
Erzeugen eines Netzes • Netz zur Erkennung von Großbuchstaben • 3 Schichten • Eingabe-Schicht 5x7 Neuronen • verdeckte Schicht 10 Neuronen • Ausgabe-Schicht 26 Neuronen • genau ein Neuron aktiv • Neuron ~ Buchstabe
Erzeugen eines Netzes • Vorbereitung: • View > Network • Schichten anlegen: • Tools > Create > Layers… • Maske füllen • Typ der Neuronen festlegen(Input, Hidden, Output) • Create erzeugt Schicht • Schichten in Reihenfolge • Eingabe-Schicht • verdeckte Schicht (hidden) • Ausgabe-Schicht erzeugen erzeugen create layer für Eingabe-Schicht
Erzeugen eines Netzes • Ausgabe-Schicht mit 4x7 Neuronen erzeugen • Die letzten beiden Neuronen (rechts unten) löschen ! 26 Neuronen in Ausgabe-Schicht • Netz-Darstellung anpassen unterView > Display Settings …
Erzeugen eines Netzes – Verbindungen • Tools > Create > Connections … • Auswahl von: Connect feed-forward • Connect – erzeugt die Verbindungen Sichern nicht vergessen!
Erzeugen einer Muster-Datei zum Training • EditorPSPad, Notepad++ … • .pat-Datei erzeugen mit nebenstehender Struktur • # Zeilen = Kommentar • 5x7 Eingabe-Neuronen mit 0-1-Buchstaben-Muster • 26 Ausgabe-Neuronen, 25 davon 0 und eine 1 als Vertreter des Buchstabens • lettertrain.pat
Erzeugen einer pat-Datei zum Testen • Kopie der Trainingsdatei anlegen • Zwei Werte in jedem Eingabemuster zufällig verändern (0->1 oder 1->0) • entspricht ca. 5% Abweichung • lettertest.pat
Trainieren des Netzes • Laden der Muster-Datei zum Trainieren • Bei Fehler: • Netz prüfen: • Anzahl und Typ der Neuronen • Verbindungen • Muster-Datei prüfen • Zahl der Muster • Zahl der Werte 0,1
Trainieren des Netzes – Vorarbeiten • Öffnen • Tools > Control Panel • View > Error Graph • Probieren: • Control Panel > Updating • Muster durchklicken • Eingabe-Muster == Buchstabe • andere Schichten ohne erkennbare Struktur,verschiedene Grüntöne
Trainieren des Netzes • Control Panel > Learning • Init • Learn All (für etwa 100 Zyklen) • Error Graph beobachten! • ev. weiter Learn All • Fehler-Kurve beobachten • Qualität prüfen (siehe nächste Folie)
Trainieren des Netzes – Qualität prüfen • Control Panel > Updating • Muster durchklicken • Ausgabe-Schicht beobachten • Werden alle Buchstaben erkannt? • Falls nein, zurück zur vorherigen Folie Learning
Speichern und Bewerten der Ergebnisse • Test-Datei laden • KEIN Training! • File > Save Data … • Dateiname ändern in .res-Datei,z.b. test1.res • Erscheint Fenster „Saving details“ • include ouput patterns aktivieren • speichern
Speichern und Bewerten der Ergebnisse • .res-Datei enthält: • gewünschtes Output je Muster • berechneter Output je Muster (real-Werte) • res-Datei muss ausgewertet werden • EXCEL / eigenes Programm
2 Muster-Dateien parallel • Laden der Trainingsdatei • Laden der Test-Datei • im Control Panel unter Patterns • Training set • validation set (Test) • einstellen • Trainieren wie beschrieben • im Error graph Fenster 2 Kurven: • Fehler Trainingsmenge • Fehler Testmenge