approximation einer kennlinie mit einem knn in matlab
DESCRIPTION
Approximation einer Kennlinie mit einem KNN in MATLAB. Ulrich Lehmann, Johannes Brenig, Michael Schneider. Inhalt. Daten aus Excel importieren nntool Auswertung der Ergebnisse in Excel Simulink Quellenverzeichnis. Datenaufbereitung. - PowerPoint PPT PresentationTRANSCRIPT
Inhalt
Ende
1Einführung in MATLAB/NNToolboxSS2007
Approximation einer Kennlinie mit einem KNN in MATLAB
Ulrich Lehmann, Johannes Brenig, Michael Schneider
Inhalt
Ende
2Einführung in MATLAB/NNToolboxSS2007
Inhalt
• Daten aus Excel importieren
• nntool
• Auswertung der Ergebnisse in Excel
• Simulink
• Quellenverzeichnis
Inhalt
Ende
Datenaufbereitung
• 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
3Einführung in MATLAB/NNToolboxSS2007
Inhalt
Ende
4Einführung in JavaNNS Version 1.1SS2007
Messwerte der Kennlinie
Ua/V Ue/V0,1 0,1740,5 0,1740,9 0,2041 0,241
1,2 0,4441,3 0,6161,4 0,8411,5 1,0731,6 1,2961,7 1,551,8 1,772,2 2,5632,6 32,8 3,1633 3,27
3,2 3,3443,4 3,3983,6 3,4353,8 3,4714,2 3,52
Aus Ausarbeitung_KNN_Lichtregelstrecke
Ue [V]
Inhalt
Ende
5Einführung in JavaNNS Version 1.1SS2007
Messwerte - normiert
Diese Messwerte müssen für das Training des KNNs normiert werden.-> sigmoide Aktivierungsfunktion-> Normierung auf ein Intervall von [0,05 0,95]
Ua/V Ue/V0,05 0,050,14 0,050,23 0,060,25 0,070,29 0,120,31 0,170,34 0,230,36 0,290,38 0,350,40 0,420,42 0,480,51 0,690,60 0,810,64 0,850,69 0,880,73 0,900,77 0,920,82 0,930,86 0,940,95 0,95
Kennlinie der Lichregelungnormiert
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
Ua/V
Ue/
V
Ue/V
Ue [V]
Inhalt
Ende
6Einführung in JavaNNS Version 1.1SS2007
Aufteilung in Trainings- Validierung- und Testdaten
14 Trainingsdatensätze
4 Validierungsdatensätze
2 Testdatensätze
Ua/V Ue/V0,05 0,050,14 0,050,23 0,060,25 0,070,29 0,120,31 0,170,34 0,230,36 0,290,38 0,350,40 0,420,42 0,480,51 0,690,60 0,810,64 0,850,69 0,880,73 0,900,77 0,920,82 0,930,86 0,940,95 0,95
TrainingsdatenTestdatenValidierungsdaten
Kennlinie der Lichregelungnormiert
0,0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1,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
Ue
/V
Ue [V]
Inhalt
Ende
7Einführung in MATLAB/NNToolboxSS2007
Daten aus Excel importierenZwei 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 importiertTextanteile werden ignoriert!! Daten sinnvoll benennen !!
>> xlswrite(‘Dateiname.xls‘, daten);
Inhalt
Ende
8Einführung in MATLAB/NNToolboxSS2007
Daten aus Excel importieren
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.
Daten des Workspace speichern
Inhalt
Ende
9Einführung in MATLAB/NNToolboxSS2007
nntool
Alle notwendigen Daten vom Workspace in die NNToolbox importieren.Achtung: Unterscheidung von Input und Target
im „Command Window“ von MATLAB eingeben
Inhalt
Ende
10Einführung in MATLAB/NNToolboxSS2007
nntool
- 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
Ende
11Einführung in MATLAB/NNToolboxSS2007
nntool
Inhalt
Ende
12Einführung in MATLAB/NNToolboxSS2007
nntool
-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?
- Trainings-, Validierung- und Testdaten auswählen- Name für Trainingsergebnis übernehmen oder ändern
Inhalt
Ende
13Einführung in MATLAB/NNToolboxSS2007
nntool
Input Ranges überprüfen!
Vor jedem Training das Netz initialisieren!Jetzt das Training starten unter „Train“ mit „Train Network“.
Inhalt
Ende
14Einführung in MATLAB/NNToolboxSS2007
nntool
• 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
Ende
15Einführung in MATLAB/NNToolboxSS2007
nntool
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
Ende
16Einführung in MATLAB/NNToolboxSS2007
Auswertung der Ergebnisse in Excel
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
Ende
17Einführung in MATLAB/NNToolboxSS2007
Simulink
Ziel: Darstellung der Trainingsdaten und der trainierten Kennlinie in einem Diagramm.
Inhalt
Ende
18Einführung in MATLAB/NNToolboxSS2007
Simulink
Vergleich von Trainingsdaten und Vorhersage.
900
Inhalt
Ende
19Einführung in MATLAB/NNToolboxSS2007
Simulink
Inhalt
Ende
20Einführung in MATLAB/NNToolboxSS2007
Simulink
Ergebnis des KNN (gelber Graph)
Ergebnis der Lookup-Table (violetter Graph)
Inhalt
Ende
21Einführung in MATLAB/NNToolboxSS2007
Quellen
• MATLAB-Handbuch
• „Simulation neuronaler Netze“ von Andreas Zell
• Vorlesungsskript Prof. Lehmann
Inhalt
Ende
22Einführung in MATLAB/NNToolboxSS2007
Vielen Dank für Ihre
Aufmerksamkeit !