23
28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig, Michael Schneider Versuch: Approximation einer Kennlinie mit einem Künstlich Neuronalen Netz (KNN) in MATLAB

Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

Embed Size (px)

Citation preview

Page 1: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc

Praktikum

Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig, Michael Schneider

Versuch: Approximation einer Kennlinie mit einem

Künstlich Neuronalen Netz (KNN) in MATLAB

Page 2: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,
Page 3: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

Inhaltsverzeichnis

V-3

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

Page 4: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

Inhaltsverzeichnis

V-4

Page 5: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V.1 Versuchsanleitung

V-3

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 Erzeu-

gung 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 vorgege-ben Inputwerten die Outputwerte zu berechnen ohne dass eine ma-thematische 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 Aktivierungs-funktion die „Identität“ verwendet.

Page 6: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file)

V-4

V.1.3 Aufgabe 1

Diese Kennlinie stellt den mathematisch unbekannten Zusammen-hang zwischen der Eingangsspannung Ue und der Ausgangsspan-nung 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 - Prak-tikum 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-

Page 7: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V.1 Versuchsanleitung

V-5

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 Input-layer 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 Er-gebnis 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.).

Page 8: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file)

V-6

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üh-ren 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.).

Page 9: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V.2 Online-Anleitung

V-7

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 Studie-renden 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.

Page 10: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file)

V-8

Page 11: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V.2 Online-Anleitung

V-9

Page 12: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file)

V-10

Page 13: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V.2 Online-Anleitung

V-11

Page 14: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file)

V-12

Page 15: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V.2 Online-Anleitung

V-13

Page 16: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file)

V-14

Page 17: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V.2 Online-Anleitung

V-15

Page 18: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V Approximation einer Kennlinie mit einem KNN in MATLAB (m-file)

V-16

Page 19: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

V.2 Online-Anleitung

V-17

Page 20: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

Glossar

V-18

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 Gra-dientenverfahren aus, welches sich durch eine gute Konvergenz fern-ab vom Minimum auszeichnet, und dem Verfahren der quadratischen Minimierung, welches besonders in der Nähe des Minimums geeig-net 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 Lernver-fahren für MLP, das auf einem Gradientenabstiegsverfahren beruht Rampe: In Simulink ist eine Rampe ein Block, dessen Ausgabesignal konti-nuierlich ansteigt.

Page 21: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

Abbildungsverzeichnis

V-19

Abbildungsverzeichnis

Abbildung V.1: Kennlinie Lichtregelung....................................... V-4

Page 22: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

Sachwortverzeichnis

V-20

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

Page 23: Praktikum Computational Intelligence 2 - FH-SWF Home · 28.01.2008 5_CI2_Deckblatt_Kennlinie_Matlab_Schn2.doc Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig,

Literaturverzeichnis

V-21

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 Neu-ronale Netze in der Automatisierungstechnik; Begriffe und Definiti-onen; September 2001