Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig, Michael Schneider Versuch: Approximation einer Kennlinie mit einem Künstlich Neuronalen Netz (KNN) in MATLAB 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc
Inhaltsverzeichnis Inhaltsverzeichnis V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file)...v-3 V.1 Versuchsanleitung...V-3 V.1.1 Lernziele... V-3 V.1.2 Grundlagen... V-3 V.1.3 Aufgabe 1... V-4 V.1.4 Aufgabe 2... V-5 V.1.5 Aufgabe 3... V-5 V.1.6 Aufgabe 4... V-6 V.1.7 Aufgabe 5... V-6 V.2 Online-Anleitung...V-7 V.2.1 Approximation einer Kennlinie mit einem KNN in MATLAB (graphische Oberfläche)... V-7 Glossar... V-18 Abbildungsverzeichnis... V-19 Sachwortverzeichnis... V-20 Literaturverzeichnis... V-21 V-3
Inhaltsverzeichnis V-4
V.1 Versuchsanleitung V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file) V.1 Versuchsanleitung V.1.1 Lernziele Datenimport von Excel in MATLAB Aufbau und Training eines KNNs zur Approximation einer unbekannten Kennlinie aus der Praxis Auswertung der Ergebnisse Darstellung (Visualisierung) der Ergebnisse durch Erzeugung eines Simulink Models V.1.2 Grundlagen Ein großes Anwendungsgebiet für Künstliche Neuronale Netze (KNN) ist das Erlernen von nichtlinearem Verhalten. Ein Beispiel dafür ist das statische Verhalten eines technischen Systems, das in diesem Versuch untersucht werden soll. Das Verhalten ist gegeben durch eine Kennlinie Ua = f(ue), die nicht durch eine mathematische Funktion beschrieben werden kann. Aus diesem Grund versucht man das Verhalten durch ein KNN abzubilden. Das KNN soll nach dem Training in der Lage sein aus den vorgegeben Inputwerten die Outputwerte zu berechnen ohne dass eine mathematische Modellierung des Systems erforderlich ist. Um solche Aufgabenstellungen zu lösen, verwendet man Multilayer- Perzeptron-Netze (MLP), die je nach Komplexität der Kennlinie ein oder mehrere Hiddenlayer aufweisen. Um das nichtlineare Verhalten der Kennlinie zu lernen, müssen die Hiddenlayer mit einer sigmoiden Funktion aktiviert werden. Für die Eingabe- und Ausgabeschicht wird in der Regel als Aktivierungsfunktion die Identität verwendet. V-3
V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file) V.1.3 Aufgabe 1 Diese Kennlinie stellt den mathematisch unbekannten Zusammenhang zwischen der Eingangsspannung Ue und der Ausgangsspannung Ua dar. Abbildung V.1: Kennlinie Lichtregelung Die vorgegebenen 20 Messwerte müssen zur Verwendung in MAT- LAB zuerst normiert werden. Da das KNN mit der logistischen Funktion aktiviert werden soll, müssten die Datensätze in einem Intervall von [0 1] liegen. Anschließend müssen die 20 vorhandenen Datensätze in Trainings-, Validierungs- und Testdatensätze aufgeteilt werden. Durchführung des Praktikums: 1. Laden Sie aus dem Intranet von der Downloadseite Lehmann/Download/Computational Intelligence 2 - Praktikum die Exceldatei: Kennlinie_Lichtregelung.xls 2. Normieren Sie die Daten in Matlab. Hinweise Zum Datenimport stehen zwei Möglichkeiten zur Verfügung. Die Import Data Funktion des Workspace und zum anderen stellt MAT- V-4
V.1 Versuchsanleitung LAB Funktionen zur Verfügung, mit denen direkt Daten aus Excel- Dateien geladen werden können. 3. Aufteilung der Datensätze in einem Verhältnis von 70-85% für das Training, 10-20% zur Validierung und 5-10% der Daten zum Testen des Netzes 4. Aus den Datensätzen sollen die entsprechenden Pattern Dateien für Training, Validierung und Test erzeugt werden. Bitte speichern Sie Ihre Ergebnisse in Dateien mit mnemonischem Namen (z.b. kennlinie_v5_a1_autor1) auf einem Speichermedium Ihrer Wahl (z.b. USB-Stick, Server, etc.). V.1.4 Aufgabe 2 Erstellen Sie in Künstliches Neuronales Netz (KNN). Programmieren Sie sich dazu einen m-file. Hinweise Die Neuronen des KNNs sollten sigmoid aktiviert werden. Die Architektur des Netzes sollte wie folgt aussehen. Ein Input-Neuron, zum Beispiel vier Neuronen im Hiddenlayer und ein Output-Neuron. Dabei ist darauf zu achten, dass bei der Anzahl der Layer der Inputlayer in MATLAB nicht mitgezählt wird. Durchführung des Praktikums 1. Nutzen Sie dafür Hilfsblatt 1 und 2! Bitte speichern Sie Ihre Ergebnisse in Dateien mit mnemonischem Namen (z.b. kennlinie_v5_a2_autor1) auf einem Speichermedium Ihrer Wahl (z.b. USB-Stick, Server, etc.). V.1.5 Aufgabe 3 Das in Aufgabe 2 erzeugte KNN soll jetzt trainiert werden, sodass das Verhalten der Kennlinie gelernt wird. Anschließend soll das Ergebnis des trainierten KNNs ausgewertet werden. Durchführung des Praktikums 1. Nutzen Sie dafür Hilfsblatt 1 und 2! Bitte speichern Sie Ihre Ergebnisse in Dateien mit mnemonischem Namen (z.b. kennlinie_v5_a2_autor1) auf einem Speichermedium Ihrer Wahl (z.b. USB-Stick, Server, etc.). V-5
V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file) Hinweise Alternativ kann die Auswertung der Daten auch in Excel erfolgen. Zum Datenexport bietet MATLAB die Möglichkeit mit xlswrite direkt in Excel-Tabellen zu schreiben. Dabei ist es möglich, direkt die Zeilen und Spalten anzugeben, in die geschrieben werden soll. V.1.6 Aufgabe 4 Bewerten Sie Ihr Ergebnis und führen Sie evtl. weitere Trainings mit unterschiedlichen Parametern durch. Verändern Sie die Architektur, Lernrate, Trainingsverfahren, etc. Dokumentieren und vergleichen Sie die Ergebnisse. Durchführung des Praktikums 1. Nutzen Sie dafür Hilfsblatt 1 und 2! Bitte speichern Sie Ihre Ergebnisse in Dateien mit mnemonischem Namen (z.b. kennlinie_v5_a2_autor1) auf einem Speichermedium Ihrer Wahl (z.b. USB-Stick, Server, etc.). V.1.7 Aufgabe 5 Verwenden Sie jetzt den Datensatz mit den Ausreißerdaten und führen Sie das Training erneut durch. Vergleichen und bewerten Sie das Ergebnis. Durchführung des Praktikums 1. Nutzen Sie dafür Hilfsblatt 1 und 2! Bitte speichern Sie Ihre Ergebnisse in Dateien mit mnemonischem Namen (z.b. kennlinie_v5_a2_autor1) auf einem Speichermedium Ihrer Wahl (z.b. USB-Stick, Server, etc.). V-6
V.2 Online-Anleitung V.2 Online-Anleitung V.2.1 Approximation einer Kennlinie mit einem KNN in MATLAB (graphische Oberfläche) Im Folgenden sind die PPT-Folien, die für die Anleitung der Studierenden im Praktikum während der Veranstaltung gezeigt werden. Die aktuelle Version der PPT-Folien mit Notizen ist im Intranet unter Lehmann/Download/Computational Intelligence 2-Praktikum zu finden. V-7
V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file) V-8
V.2 Online-Anleitung V-9
V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file) V-10
V.2 Online-Anleitung V-11
V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file) V-12
V.2 Online-Anleitung V-13
V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file) V-14
V.2 Online-Anleitung V-15
V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file) V-16
V.2 Online-Anleitung V-17
Glossar Glossar nntool Das Kommando >> nntool öffnet das Fenster Network/Data Manager. Über dieses Fenster können Neuronale Netze und Daten importiert, erstellt, benutzt und exportiert werden. trainlm Der Levenberg-Marquardt-Trainingsalgorithmus für KNN (trainlm) zeichnet sich durch eine stufenlose Interpolation zwischen dem Gradientenverfahren aus, welches sich durch eine gute Konvergenz fernab vom Minimum auszeichnet, und dem Verfahren der quadratischen Minimierung, welches besonders in der Nähe des Minimums geeignet ist. Das Konvergenzverhalten ist sehr gut, d. h. nach einer kurzen Epochenanzahl ist der mittlere quadratische Fehler des Trainings meist schon sehr klein. Der Levenberg-Marquardt- Trainingsalgorithmus stößt jedoch bei einer größeren Architektur des Künstlich Neuronalen Netzes und Trainingsdatenmenge auf einem Standard-PC an seine Grenzen, da er sehr speicherintensiv ist. Extrapolation: Unter Extrapolation versteht man die Bestimmung eines Verhaltens über den bisher bekannten Arbeitsbereich hinaus. Backpropagation: Der Backpropagation-Algorithmus ist ein Optimierungsalgorithmus für die Gewichte in einem Feed-Forward Netz. Anmerkung: Mit der Veränderung der Gewichte wird in der Ausgabeschicht begonnen und in der Eingabeschicht beendet. Es handelt sich um ein Lernverfahren für MLP, das auf einem Gradientenabstiegsverfahren beruht Rampe: In Simulink ist eine Rampe ein Block, dessen Ausgabesignal kontinuierlich ansteigt. V-18
Abbildungsverzeichnis Abbildungsverzeichnis Abbildung V.1: Kennlinie Lichtregelung... V-4 V-19
Sachwortverzeichnis Sachwortverzeichnis Backpropagation... V-5, V-18 Extrapolation... V-4, V-18 Feed-Forward Netz... V-18 Hiddenlayer... V-5 Inputlayer... V-5 KNN...V-3, V-4, V-5, V-6, V-7, V-18 Künstlich Neuronales Netz... V-3 Levenberg-Marquardt-Trainingsalgorithmus... V-18 Lookup-Table... V-6 MATLAB...V-3, V-4, V-5, V-7, V-21 MLP... V-18 nntool... V-5, V-18 Optimierungsalgorithmus... V-18 Rampe... V-6, V-18 Simulink... V-3, V-6, V-18 trainlm... V-18 V-20
Literaturverzeichnis Literaturverzeichnis MATLAB-Hilfe A. Zell: Simulation neuronaler Netze, 1994 U. Lehmann: Vorlesungsskript S. Haykin: Neural Networks: A Comprehensive Foundation. Prentice Hall; 2nd edition, 1998 VDI/VDE 3550 Blatt 1: Computational Intelligence, Künstlich Neuronale Netze in der Automatisierungstechnik; Begriffe und Definitionen; September 2001 V-21