aufbau, training, test und visualisierung des backpropagation-algorithmus auf der stuttgarter...
TRANSCRIPT
Aufbau, Training, Test und Visualisierung des Backpropagation-Algorithmus
auf der Stuttgarter Simulationsplattform SNNS v4.1
Martin Hardes, Ulrich Lehmann
1. Beispiel: 2-Bit Decoder mit Analogausgang
Forschungsverbund Neuronale Fuzzy-Logik
Künstlich Neuronale Netze
Validierungsdaten: Werden nicht für das Training, sondern für die Validierung des KNN während des Trainings nach jeder Epoche verwendet, um das Verhalten und den Fehler des KNN für unbekannte Datensätze während des Trainings zu validieren.
2-Bit Decoder
0
0,25
0,50
0,751
0
0
1
2
3Z0
Z1
Input
Output
Z0 Z1 n
0 0 0
0 1 0,25
1 0 0,50
1 1 0,75
Trainingsdaten Testdaten
Testdaten: Werden nicht für das Training, sondern für den späteren Test des trainierten KNN verwendet, um das Verhalten und den Fehler des KNN für unbekannte Datensätze zu testen.
Technologieschema
Trainings-, Valid- und Testdaten werden in PATTERN-Dateien abgelegt
Decoder_train.pat
SNNS pattern definition file V3.2generated at Thu Jun 08 18:53:43 2000
No. of patterns : 3No. of input units : 2No. of output units : 1
# Input 1:0 0# target 1:0# Input 2:0 1# target 2:0.25# Input 3:1 1# target 3:0.75
Trainingsdaten
Trainings-, Validierungs- und Testdaten werden in PATTERN-Dateien abgelegt
Decoder_valid.pat
SNNS pattern definition file V3.2generated at Thu Jun 08 18:53:43 2000
No. of patterns : 1No. of input units : 2No. of output units : 1
# Input 1:1 0# target 1:0.5
Validierungsdaten
Trainings-, Valid- und Testdaten werden in PATTERN-Dateien abgelegt
Decoder_test.pat
SNNS pattern definition file V3.2generated at Thu Jun 08 19:50:56 2000
No. of patterns : 1No. of input units : 2
# Input 1:1 0
Testdaten
Bignet
Erstellen eines Feedforward Netzes
für das Decoder Beispiel
Decoder.net
Darstellung der Netzstrukturen mit DISPLAY
Display
Aktivierung des Neurons siehe nächste Folie
Aufbau des Neurons mit Aktivierungs- bzw. Ausgangsfunktion a = f (net)
= net3
Neuron 3
w13
w23
x1 = a1= o1
x2 = a2 = o2
a = f (net3 +Bias)
3 bias 3
y3 = a3
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
1,1
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
net
out
Aktivierung:0,144
-4,952
Aktivierung:0,144
-4,9521
2
3
Aktivierung:0,502Bias:1,437
Ausgabewerte Neuronen 1 und 2 (linear): oi = ai = 0,144
Netzeingabe: net3 = (w13 * o1) + (w23 * o2)net3 = (-4,952*0,144)+(-4,952*0,144) = -1,426
Aktivierungsfunktion (sigmoid): aj = 1/(1+e-(netj + bias))a3= 1/(1+e-(-1,426 + 1,437)) = 0,502
netj (t) = ( wij · oi )
aj(t) = (1+e - ( net j (t) + ) ) -1
mit bias
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
1,1
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
net
out
Aktivierung:0,144
-4,952
Aktivierung:0,144
-4,9521
2
3
Aktivierung:0,502Bias:1,437
Ausgabefunktion (linear) : oi = ai = 0,144
Netzeingabe: net3 = (w13 * o1) + (w23 * o2)net3 = (-4,952*0,144)+(-4,952*0,144) = -1,426
Aktivierungsfunktion (sigmoid) : aj = 1/(1+e-(netj + bias))a3= 1/(1+e-(-1,426 + 1,437)) = 0,502
Darstellung der Aktivierungs- bzw. Ausgangsfunktion
3 bias 3
net3 (t) = ( wij · oi )
SNNS network definition file V1.4-3Dgenerated at Thu Aug 12 16:15:18 1999
network name : dec_testd_xsource files :no. of units : 5no. of connections : 6no. of unit types : 0no. of site types : 0
learning function : Rpropupdate function : Topological_Order
unit default section :
act | bias | st | subnet | layer | act func | out func-----------|-----------|----|----------|------- |------------------|------------- 0.00000| 0.00000| h | 0| 1 | Act_Logistic | Out_Identity -----------|-----------|----|----------|--------|------------------|-------------
unit definition section :
no. | typeName | unitName | act | bias | st | position | act func | out func |----|--------------|---------------|------------|------------|----|------------|----------|------------|- 1 | | in1 | 0.00000 | 0.00000 | i | 2,2,-4349 | | | 2 | | in2 | 0.00000 | 0.00000 | i | 2,3,-4349 | | | 3 | | h1 | 0.00000 | 0.00000 | h | 5,2,-4349 | | | 4 | | h2 | 0.00000 | 0.00000 | h | 5,3,-4349 | | | 5 | | out | 0.00000 | 0.00000 | o | 8,2,-4349 | | |----|--------------|---------------|------------|------------|----|------------|----------|------------|-
connection definition section :
target | site | source:weight--------|------|--------------------------------------------------------------------------------------- 3 | | 1: 0.00000, 2: 0.00000 4 | | 1: 0.00000, 2: 0.00000 5 | | 3: 0.00000, 4: 0.00000--------|------|---------------------------------------------------------------------------------------
Decoder.net
NET-Dateien in Textformat
decoder.net und dec_XXX.pat laden
Vorbereitung des Lernvorgangs des Decodernetzes
Control-Panel und Graph-Panel öffnen und Lernparameter im Control-Panel einstellen
Durchführung des Lernvorgangs des Decodernetzes
Δwij (t) Δwij (t-1)
t+1
t
t-1
Im Beispiel links:
S(t-1) S(t) > 0 S(t) > 0
E
wij
ij (t-1) + falls S(t-1) S(t) > 0
ij (t-1) - falls S(t-1) S(t) < 0
ij (t-1) sonst
Δij (t)
-ij (t) falls S(t-1) S(t) > 0 S(t) > 0
ij (t) falls S(t-1) S(t) > 0 S(t) < 0
-wij (t-1) falls S(t-1) S(t) < 0
-sgn (S(t)) ij (t) sonst
Δwij (t)
Bestimmung des Betrags der Gewichtsveränderung Bestimmung Gewichtsveränderung
η+ = 1,2 und η- =0,5 (bei SNNS voreingestellt)
wij (t+1) = wij (t) + Δwij (t)
Modifiziertes BPG-Lernverfahren Resilient Propagation
Lernkurve im Graph
Bias und Gewichte
Aktivierung und Gewichte
0 Epochen10 Epochen20 Epochen50 Epochen100 Epochen225 Epochen
Lernkurve, Gewichtsveränderung und Bias- im Decodernetz
während des Lernvorgangs
Ausgangssituation: Abschluß des Lernvorgangs nach 225 EpochenEingangsfunktion (linear): netj (t) = ( wij · oi )
Aktivierungsfunktion (sigmoid): aj(t) = (1+e - ( net j (t) + ) ) -1 mit bias
Berechnung der Aktivierung im Neuron 3:
net3= (1.000 · -2.264) + (0.000 · -1.552) = -2.264
a3= (1 + e-(-2.264+0.486))-1 = 0.144
Berechnung der Aktivierung im Neuron 5
net5= (0.144 · -4.952) + (0.144 · -4.952) = -1.426
a5= (1 + e-(-1.426+1.437))-1 = 0.502
-1,55242 Bias: 0,000 Bias: 0,486
Aktivierung: 0,144-4,952
Aktivierung: 0,144-4,952 Bias: 0,486
Aktivierung: 0,000-1,552
Aktivierung: 1,000-2,264-2,264
31
5 Aktivierung: 0,502
1
2
3
4
5Bias: 0,000
Bias: 1,437
Beispiel zur Berechnung der Aktivierung mittels Aktivierungs- und Ausgangsfunktion
Gewichtsverteilung im
Decodernetz mit Ausgabe des
Ausgangswertes bei
Verwendung der Testdaten
Gewichtsverteilung im KNN nach dem Lernvorgang
Z0 Z1Soll-
AusgangswertAusgangswert nach [TEST]
0 0 0,000 0,009
0 1 0,250 0,250
1 0 0,500 0,502
1 1 0,750 0,749
Testdaten
Tabelle mit vom KNN berechneten Ausgangswerten des Decoders
Trainingsdaten Validierungsdaten
Darstellung der Ergebnisse nach dem Lernvorgang
+ keine mathematischen Prozessmodelle erforderlich (besonders vorteilhaft, bei nichtlinearen oder unbekannten Zusammenhängen)
+ Fähigkeit zur Generalisierung
+ beispielbasiertes Lernen (wie bei den Kindern!!!)
+ Selbstorganisation und Adaptionsfähigkeit
+ massive Parallelität (pro Neuron ein Prozessor möglich)
+ Echtzeitfähigkeit (in der Produktionsphase)
+ Fehlertoleranz (ein bis zu 60% zerstörtes Netz bleibt funktionsfähig)
- Ergebnisse nicht nachvollziehbar
- je nach Problemstellung viele Lernmuster erforderlich ( 0,5 nm mit n-Eingängen und m-Datenmuster pro Eingang sowie 50% der Muster als Trainingsdaten)
- bei komplexen Aufgaben hohe Trainingszeiten (bis zu einigen Stunden auf High Performance PC)
- schlechte, nicht gesicherte Konvergenz des Trainingsergebnisses
- Abhängigkeit des Lernergebnisses von der Qualität der Merkmalextraktion
- Vielfalt von Modellen und KNN-Typen
Vor (+)- und Nachteile (-) von KNN
SNNS wurde für Unix Workstations geschrieben und ist auf Windows Rechnern nur mit X-Windows (X-Server) lauffähig (X-Windows ist kostenlos nur als Testversion mit max. Laufzeit 2 h verfügbar).
--
Grafische Oberfläche von SNNS unter Windows schwer zu bedienen (ein Button muss mit der Maus genau fokussiert werden).
--
Mit SNNS sind umfangreiche Netztopologien und Parametrierungen der Netze möglich.
++
Unkomplizierter Einstieg mit Durchführungsbeispiel im Bedienerhandbuch. ++
Umfangreiche Beispieldatenbank mit vielen untrainierten und trainierten Netzen verschiedenster Struktur.
++
Bewertung der Simulationsumgebung SNNS 4.1
Literaturverzeichnis und Quellen
• Lehmann, Herold, Leupold: Digitale Regelungen / Prozessrechner. Vorlesungsskript, MFH Iserlohn 1991
• Zell, A.: Simulation Neuronaler Netze, Addison-Wesley Verlag 1996
• Zell, A. et. al.: SNNS-Manual (PDF). At2-Server des CAS.Lab (Computer Architecture & Systems) der FH SW Campus Iserlohn
• Lehmann, U.; Bongards, M.; Johannes, H.: Fortschritt-Bericht VDI: Neuronale Fuzzy-Logik. VDI Verlag GmbH Düsseldorf 2000
• Ulrich Lehmann: Neuro-Fuzzy-Systeme, Vorlesung an der FH Südwestfalen Campus Iserlohn, Iserlohn 2000