1 / 22

Approximation einer Kennlinie mit einem KNN in MATLAB

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.

may
Download Presentation

Approximation einer Kennlinie mit einem KNN in MATLAB

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Approximation einer Kennlinie mit einem KNN in MATLAB Ulrich Lehmann, Johannes Brenig, Michael Schneider Einführung in MATLAB/NNToolbox

  2. Inhalt • Daten aus Excel importieren • nntool • Auswertung der Ergebnisse in Excel • Simulink • Quellenverzeichnis Einführung in MATLAB/NNToolbox

  3. 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 Einführung in MATLAB/NNToolbox

  4. Messwerte der Kennlinie Ua [V] Ue [V] Aus Ausarbeitung_KNN_Lichtregelstrecke Einführung in JavaNNS Version 1.1

  5. 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 [V] Einführung in JavaNNS Version 1.1

  6. Trainingsdaten Testdaten Validierungsdaten Aufteilung in Trainings- Validierung- und Testdaten 14 Trainingsdatensätze 4 Validierungsdatensätze 2 Testdatensätze Ua [V] Ue [V] Einführung in JavaNNS Version 1.1

  7. Daten aus Excel importieren 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); Einführung in MATLAB/NNToolbox

  8. Daten des Workspace speichern 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. Einführung in MATLAB/NNToolbox

  9. nntool im „Command Window“ von MATLAB eingeben Alle notwendigen Daten vom Workspace in die NNToolbox importieren. Achtung: Unterscheidung von Input und Target Einführung in MATLAB/NNToolbox

  10. 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 Einführung in MATLAB/NNToolbox

  11. nntool Einführung in MATLAB/NNToolbox

  12. nntool - 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? Einführung in MATLAB/NNToolbox

  13. nntool Input Ranges überprüfen! Vor jedem Training das Netz initialisieren! Jetzt das Training starten unter „Train“ mit „Train Network“. Einführung in MATLAB/NNToolbox

  14. 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 Einführung in MATLAB/NNToolbox

  15. nntool Das Training wurde in diesem Beispiel nach 16910 Epochen beendet, da der Validierungsfehlernach 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 Einführung in MATLAB/NNToolbox

  16. Auswertung der Ergebnisse in Excel Wichtig: Zur Auswertung in Excel werden die Zeilenvektoren benötigt, in MATLAB selbst Spaltenvektoren -> Daten transponieren!!! xlswrite(filename, M, 'range') -> z.B. xlswrite('Auswertung.xls', transpose(Kennlinie_input_train), 'A2:A15'); Einführung in MATLAB/NNToolbox

  17. Simulink Ziel: Darstellung der Trainingsdaten und der trainierten Kennlinie in einem Diagramm. Einführung in MATLAB/NNToolbox

  18. 900 Simulink Vergleich von Trainingsdaten und Vorhersage. Einführung in MATLAB/NNToolbox

  19. Simulink Einführung in MATLAB/NNToolbox

  20. Ergebnis des KNN (gelber Graph) Ergebnis der Lookup-Table (violetter Graph) Simulink Einführung in MATLAB/NNToolbox

  21. Quellen • MATLAB-Handbuch • „Simulation neuronaler Netze“ von Andreas Zell • Vorlesungsskript Prof. Lehmann Einführung in MATLAB/NNToolbox

  22. Vielen Dank für Ihre Aufmerksamkeit ! Einführung in MATLAB/NNToolbox

More Related