KNN 4 Konzepte Architektur Training

Download Report

Transcript KNN 4 Konzepte Architektur Training

CIC Lab
Approximation einer Kennlinie mit
einem KNN in MATLAB
Computational Intelligence
and Control Laboratory
Ulrich Lehmann, Johannes Brenig, Michael Schneider
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
1
Ende
Inhalt
CIC Lab
Computational Intelligence
and Control Laboratory
• Daten aus Excel importieren
• nntool
• Auswertung der Ergebnisse in Excel
• Simulink
• Quellenverzeichnis
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
2
Ende
Datenaufbereitung
CIC Lab
Computational Intelligence
and Control Laboratory
• Die Datenaufbereitung kann entweder in MATLAB
(m-File) oder in Excel erfolgen
• Die Datensätze müssen normiert und in Trainings-,
Validierungs- und Testsdatensatz aufgeteilt werden
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
3
Ende
Messwerte der Kennlinie
CIC Lab
Ua/V
0,1
0,5
0,9
1
1,2
1,3
1,4
1,5
1,6
1,7
1,8
2,2
2,6
2,8
3
3,2
3,4
3,6
3,8
4,2
Ue/V
0,174
0,174
0,204
0,241
0,444
0,616
0,841
1,073
1,296
1,55
1,77
2,563
3
3,163
3,27
3,344
3,398
3,435
3,471
3,52
Ua [V]
Computational Intelligence
and Control Laboratory
Ue [V]
Aus Ausarbeitung_KNN_Lichtregelstrecke
Inhalt
SS2007
Einführung in JavaNNS Version 1.1
4
Ende
Messwerte - normiert
Ua/V
0,05
0,14
0,23
0,25
0,29
0,31
0,34
0,36
0,38
0,40
0,42
0,51
0,60
0,64
0,69
0,73
0,77
0,82
0,86
0,95
Diese Messwerte müssen für das Training des
KNNs normiert werden.
-> sigmoide Aktivierungsfunktion
-> Normierung auf ein Intervall von [0,05 0,95]
Ue/V
0,05
0,05
0,06
0,07
0,12
0,17
0,23
0,29
0,35
0,42
0,48
0,69
0,81
0,85
0,88
0,90
0,92
0,93
0,94
0,95
Kennlinie der Lichregelung
normiert
1
0,9
0,8
0,7
Ue/V[V]
Ua
CIC Lab
Computational Intelligence
and Control Laboratory
0,6
Ue/V
0,5
0,4
0,3
0,2
0,1
0
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
UeUa/V
[V]
Inhalt
SS2007
Einführung in JavaNNS Version 1.1
5
Ende
Aufteilung in TrainingsValidierung- und Testdaten
SS2007
Ua/V
0,05
0,14
0,23
0,25
0,29
0,31
0,34
0,36
0,38
0,40
0,42
0,51
0,60
0,64
0,69
0,73
0,77
0,82
0,86
0,95
Ue/V
0,05
0,05
0,06
0,07
0,12
0,17
0,23
0,29
0,35
0,42
0,48
0,69
0,81
0,85
0,88
0,90
0,92
0,93
0,94
0,95
Trainingsdaten
Testdaten
Validierungsdaten
14 Trainingsdatensätze
4 Validierungsdatensätze
2 Testdatensätze
Kennlinie der Lichregelung
normiert
1,0
0,9
0,8
0,7
UaUe/V
[V]
CIC Lab
Computational Intelligence
and Control Laboratory
0,6
0,5
0,4
0,3
0,2
0,1
0,0
0,0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1,0
Ua/V[V]
Ue
Inhalt
Einführung in JavaNNS Version 1.1
6
Ende
Daten aus Excel importieren
CIC Lab
Computational Intelligence
and Control Laboratory
Zwei Möglichkeiten:
1. über die Import data Funktion des Workspace
2. über die MATLAB- Funktionen „xlsread“ und „xlswrite“
die einen direkten Zugriff auf bestehende Excel
Tabellen ermöglichen
>> daten = xlsread(‘Dateiname.xls,-1‘);
es werden nur die reinen Daten importiert
Textanteile werden ignoriert
!! Daten sinnvoll benennen !!
>> xlswrite(‘Dateiname.xls‘, daten);
SS2007
Einführung in MATLAB/NNToolbox
Inhalt
7
Ende
Daten aus Excel importieren
CIC Lab
Daten des Workspace speichern
Computational Intelligence
and Control Laboratory
Alle notwendigen Daten von Excel in
den Workspace von MATLAB
importieren.
Jetzt können die Daten im Workspace
für ein späteres Training gespeichert
werden.
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
8
Ende
nntool
CIC Lab
Computational Intelligence
and Control Laboratory
im „Command Window“ von MATLAB eingeben
Alle notwendigen Daten vom Workspace in die NNToolbox importieren.
Achtung: Unterscheidung von Input und Target
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
9
Ende
nntool
CIC Lab
Computational Intelligence
and Control Laboratory
- Name für das Netz wählen
- Wertebereich wählen ( [0 1] )
- Trainingsfunktion wählen
- Lernfunktion wählen
- Fehlerfunktion wählen
- Anzahl der Layer wählen
(Input-Layer zählt nicht als Layer)
hier: 1 Hiddenlayer mit 4 Neuronen und
1 Outputlayer mit einem Neuron
- Hiddenlayer mit „logsig“ aktivieren und
Outputlayer linear aktivieren
- wenn alle Einstellungen getroffen sind
 mit „Create“ das Netz erstellen
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
10
Ende
nntool
CIC Lab
Computational Intelligence
and Control Laboratory
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
11
Ende
nntool
CIC Lab
Computational Intelligence
and Control Laboratory
- Trainings-, Validierung- und Testdaten auswählen
- Name für Trainingsergebnis übernehmen oder ändern
-Trainingsepochen wählen z. B. 50000
- Trainingsfehler (goal) = 0
- Lernrate (lr) wählen
- max_fail: Wieviel Epochen soll nach dem
minimalen Validierungsfehler noch trainiert werden?
- min_grad: kleinster Gradient
- show: Nach wie viel Epochen soll die
Fehlerkurve aktualisiert werden?
- time: zeitliche Beschränkung für das Training?
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
12
Ende
nntool
CIC Lab
Computational Intelligence
and Control Laboratory
Input Ranges überprüfen!
Vor jedem Training das Netz initialisieren!
Jetzt das Training starten unter „Train“ mit „Train Network“.
SS2007
Einführung in MATLAB/NNToolbox
Inhalt
13
Ende
nntool
CIC Lab
Computational Intelligence
and Control Laboratory
• Sobald beim Training Datensätze zur Validierung
verwendet werden, nutzt MATLAB diese, um ein
Auswendiglernen des Netzes zu verhindern
-> wenn der Validierungsfehler steigt wird das Training
abgebrochen (early stopping)
• Über den Parameter „max_fail“ lässt sich die Anzahl
der Epochen, die bei steigendem Validierungsfehler
weiter trainiert werden sollen, einstellen
• ABER: Ergebnis ist immer das mit dem kleinsten
Validierungsfehler!
– Netz wird zwar weiter trainiert, aber wenn der
Validierungsfehler nicht sinkt, wird das Netz immer mit den
Werten beim kleinsten vorkommenden Validierungsfehler
gespeichert
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
14
Ende
nntool
CIC Lab
Computational Intelligence
and Control Laboratory
Das Training wurde in diesem Beispiel nach
16910 Epochen beendet, da der Validierungsfehler
nach 6910 Epochen am geringsten war und
„max_fail“auf 10000 eingestellt war.
Das KNN arbeitet mit dem Ergebnis nach 6910 Epochen.
Auswertung:
Die Simulation jeweils für die Trainings-, Validierungs- und Testdaten
durchführen und die Ergebnisse speichern
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
15
Ende
CIC Lab
Auswertung der Ergebnisse in
Excel
Computational Intelligence
and Control Laboratory
xlswrite(filename, M, 'range')
-> z.B. xlswrite('Auswertung.xls',
transpose(Kennlinie_input_train),
'A2:A15');
Wichtig:
Zur Auswertung in Excel werden die
Zeilenvektoren benötigt, in MATLAB
selbst Spaltenvektoren
-> Daten transponieren!!!
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
16
Ende
Simulink
CIC Lab
Computational Intelligence
and Control Laboratory
Ziel: Darstellung der Trainingsdaten und der trainierten Kennlinie in einem Diagramm.
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
17
Ende
Simulink
CIC Lab
Computational Intelligence
and Control Laboratory
900
Vergleich von Trainingsdaten und Vorhersage.
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
18
Ende
Simulink
CIC Lab
Computational Intelligence
and Control Laboratory
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
19
Ende
Simulink
CIC Lab
Computational Intelligence
and Control Laboratory
Ergebnis des KNN (gelber Graph)
Ergebnis der Lookup-Table (violetter Graph)
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
20
Ende
Quellen
CIC Lab
Computational Intelligence
and Control Laboratory
• MATLAB-Handbuch
• „Simulation neuronaler Netze“ von Andreas Zell
• Vorlesungsskript Prof. Lehmann
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
21
Ende
CIC Lab
Computational Intelligence
and Control Laboratory
Vielen Dank für Ihre
Aufmerksamkeit !
Inhalt
SS2007
Einführung in MATLAB/NNToolbox
22
Ende