Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Kennlinie Lichtregelung in JavaNNS Version 1.1

Ähnliche Präsentationen


Präsentation zum Thema: "Kennlinie Lichtregelung in JavaNNS Version 1.1"—  Präsentation transkript:

1 Kennlinie Lichtregelung in JavaNNS Version 1.1
Kennlinie Lichtregelung in JavaNNS Version 1.1 Ulrich Lehmann, Johannes Brenig, Michael Schneider SS2007 Einführung in JavaNNS Version 1.1

2 Einführung in JavaNNS Version 1.1
Inhalt Messaufbau Messwerte Netz erzeugen Pattern erzeugen und laden Control Panel Error Graph Weights Training des Netzes Darstellung in Excel Quellen SS2007 Einführung in JavaNNS Version 1.1

3 Einführung in JavaNNS Version 1.1
Messaufbau Ue = Eingangsspannung Glühbirne Solarzelle Ue Ua Usmax = 12V Auf dieser Folie ist der Verschsaufbau schematisch zusehen. Im linken Stromkreislauf wird eine Glühbirne betrieben. Das Licht der Gühbirne wird von einer Solarzelle aufgenommen. So wird der rechte Stromkreislauf betrieben. Am Eingang des linken Stromkreislaufs wird die Eingangsspannung Ue gemessen und am Ausgang des rechten Stromkreislauf wird die Ausgangsspannung Ua gemessen. Ua = Ausgangsspannung SS2007 Einführung in JavaNNS Version 1.1

4 Messwerte der Kennlinie
Messwerte der Kennlinie Diese nichtlineare Kennlinie soll von einem KNN gelernt werden. Aus Ausarbeitung_KNN_Lichtregelstrecke SS2007 Einführung in JavaNNS Version 1.1

5 Einführung in JavaNNS Version 1.1
Messwerte - normiert Diese Messwerte müssen für die Verwendung in JNNS normiert werden. -> sigmoide Aktivierungsfunktion -> Normierung auf ein Intervall von [0,05 0,95] Zunächst müssen alle Messwerte normiert werden. Die Messwerte sollen auf das Intervall von 0,05 bis 0,95 normiert werden. An den Badgrenzen soll eine Sicherheit von jeweils 5% berücksichtigt sein, damit das KNN den ganzen vorhandenen Wertebereich besser verteilt lernt und noch etwas Raum für Extrapolation ist bei werten die etwas größer als die bisher bekannten sind. Als Aktivierungsfunktion wird die sigmoide gewählt, da die zu lernende Kennlinie selbst sigmoid ist. SS2007 Einführung in JavaNNS Version 1.1

6 Einführung in JavaNNS Version 1.1
Messwerte - normiert Normierung für Ua: Min[Ua] = 0,1  Minimum der Spalte für Ua Max[Ua] = 4,2  Maximum der Spalte für Ua Min[normUa] = 0,05  Minimum des Intervalles in welches normiert werden soll Max[normUa] = 0,95  Maximum des Intervalles in welches normiert werden soll x = jeder unnormierte Wert der Tabelle Ue wird ebenfalls nach diesem Schema normiert. SS2007 Einführung in JavaNNS Version 1.1

7 Aufteilung in Trainings- Validierung- und Testdaten
Aufteilung in Trainings- Validierung- und Testdaten 14 Trainingsdatensätze 4 Validierungsdatensätze 2 Testdatensätze Hier sehen Sie die normierten Messwerte in Tabellenform und in graphischer Form. Die Datensätze müssen jetzt in Trainings-, Validierungs-, Testdatensätze aufgeteilt werden. Die farbliche Unterscheidung soll nur besser visualisieren, welche Werte ich für Training, Validierung und Test ausgewählt habe. Bitte machen Sie jetzt in Ihrer Datenbasis die Traings-, Validierungs- und Testdatensätze kenntlich. Die Aufteilung der Datenbasis erfolgt nach folgendem Schema: Training % aller Datensätze Validierung 10-20% aller Datensätze Test % aller Datensätze Gesamt 100% Trainingsdaten Testdaten Validierungsdaten SS2007 Einführung in JavaNNS Version 1.1

8 Einführung in JavaNNS Version 1.1
Netz erzeugen Jetzt soll von Ihnen ein geeignetes KNN in JNNS entwickelt werden, welches die Kennlinie sehr gut lernt. Starten Sie JNNS. Über Tools->Create->Layers können Sie die Eingabe-, Hidden- und Outputlayer erstellen und individuell konfigurieren. SS2007 Einführung in JavaNNS Version 1.1

9 Einführung in JavaNNS Version 1.1
Netz erzeugen Ausdehnung des Layer in x-Achse Ausdehnung des Layer in y-Achse Layertyp auswählen Aktivierungsfunktion auswählen Jetzt können Sie Breite und die Höhe eines Layers angeben. Wir verwenden üblicherweise einen einspaltigen Layer, d.h. Width = 1 und Höhe (height) ist die Anzahl der Neuronen im Layer. Unit type = Input-, Hidden- oder Outputlayer Activation funciton = Aktivierungsfunktion auswählen für Input- und Outputlayer üblicherweise Identität (Act-identity), für den Hiddenlayer logsig oder act_tanh Output function = die Ausgangsaktivierung des Neurons ist die Identität (Out_identitiy) Die Layer werden üblicherweise von links anch rechts angeordnet, d.h. links Inputlayer, rechts Outputlayer und dazwischen Hiddenlayer Ausgabefunktion auswählen Layer mit der gewählten Konfiguration erstellen (hier: Input-Layer) SS2007 Einführung in JavaNNS Version 1.1

10 Einführung in JavaNNS Version 1.1
Netz erzeugen Koordinaten der Units im Raum (automatisch fortlaufend) erzeugter Input-Layer Layer 2: Width 1 Height 4 Unit detail: - Hidden - Act_Logistic - Out_Identity Der Inputlayer mit einem Neuron ist erstellt. Nun folgen die weiteren Layer: Hiddenlayer und Outputlayer. In den meisten Anwendungen gibt es einen Hiddenlayer! Mehrere Hiddenlayer sind auch möglich. Die Größe des KNN wird in Abhängigkeit von der Anzahl der Trainingsdatensätze abgeschätzt. Faustformel: Die Anzahl der Verbindungen in einem KNN ist ungefähr ein Drittel der Anzahl der Trainingsdatensätze. fortlaufende Nummerierung der Layer (automatisch) SS2007 Einführung in JavaNNS Version 1.1

11 Einführung in JavaNNS Version 1.1
Netz erzeugen Layer 3: Width 1 Height 2 Unit detail: - hidden - Act_Logistic - Out_Identity Layer 4: Width 1 Height 1 Unit detail: - Output - Act_Identity - Out_Identity Erzeugen Sie bitte alle Layer! SS2007 Einführung in JavaNNS Version 1.1

12 Einführung in JavaNNS Version 1.1
Netz erzeugen Hier in diesem Beispiel ist ein MLP erstellt worden. SS2007 Einführung in JavaNNS Version 1.1

13 Einführung in JavaNNS Version 1.1
Netz erzeugen Die Neuronen müssen jetzt noch Layer zu Layer feedforward verbunden werden. Das geschieht über Tools->Create->Connections. SS2007 Einführung in JavaNNS Version 1.1

14 Einführung in JavaNNS Version 1.1
Netz erzeugen Jetzt sind alle Verbindungen erstellt worden. Die Aktivierungen der Neuronen und der Gewichte sind noch 0. Speichern Sie Ihr KNN auf einem geeigneten Medium und unter einem präzisen Namen ab. Der Nam sollte die Nameskürzel des Autors einthalten und die Aufgabenstellung, evtl. bei wiederholtem Training auch die Architektur oder Trainingsverfahren oder Lernrate, etc. Speichern des Netzes unter File> Save as Network name: z. B. Kennlinie.net SS2007 Einführung in JavaNNS Version 1.1

15 Einführung in JavaNNS Version 1.1
Pattern erzeugen Pattern-Datei kann mit Text-Editor bearbeitet werden Aufbau der Kopfzeile ist zwingend einzuhalten Bereitstellung der Datensätze gemäß diesem Muster (hier: Trainingspattern) Anzahl der Eingabeneuronen Die Pattern müssen einem vorgegebenen Format entsprechen. - Kopfzeile Datensätze Anzahl der Eingabe- und Ausgabeneuronen im Kopf Anzahl der Ausgabeneuronen SS2007 Einführung in JavaNNS Version 1.1

16 Einführung in JavaNNS Version 1.1
Pattern erzeugen Patterndatei mit vier Validierungsdatensätzen Patterndatei für Validierung SS2007 Einführung in JavaNNS Version 1.1

17 Einführung in JavaNNS Version 1.1
Pattern erzeugen Patterndatei mit zwei Testdaten (nur Eingabewerte und keine Ausgabewerte!) Patterdatei für den Test. Anmerkung: Beim Testpattern gibt es keine Outputvorgaben! SS2007 Einführung in JavaNNS Version 1.1

18 Pattern-Dateien laden
Pattern-Dateien laden Laden Sie alle Patterdateien über File->Open SS2007 Einführung in JavaNNS Version 1.1

19 Pattern-Dateien laden
Pattern-Dateien laden Markieren Sie die Trainings-, Validirungs- und Testpatterndateien und öffnen diese. Alle drei erzeugten Patterndateien auswählen und öffnen SS2007 Einführung in JavaNNS Version 1.1

20 Einführung in JavaNNS Version 1.1
Control Panel Zur graphischen Darstellung von Trainings- und Validierungsfehler öffnen Sie bitte den Error Graph unter View. SS2007 Einführung in JavaNNS Version 1.1

21 Einführung in JavaNNS Version 1.1
Control Panel Ordnen Sie die Patterndateien dem Training und der Validierung zu. Trainingspattern und Validierungspattern auswählen SS2007 Einführung in JavaNNS Version 1.1

22 Einführung in JavaNNS Version 1.1
Control Panel zufällige Belegung der Gewichte zu Beginn des Trainings, um keine Symmetrie in den Gewichten zu erlangen Bevor ein KNN trainiert wird, muss es initialisiert werden. Dazu sollen die Gewichte mit zufälligen Werten aus dem angegebenen Intervall belegt werden. Festlegung des Intervalls, aus dem die zufälligen Werte für die Anfangsbelegung der Gewichte ausgewählt werden sollen SS2007 Einführung in JavaNNS Version 1.1

23 Einführung in JavaNNS Version 1.1
Control Panel Maximaler zulässiger Fehler Auswahl des Trainingsverfahrens Anzahl der Schritte nach denen validiert werden soll Lernrate 0,1 bis 0,9 Zufällige Wahl der Trainingsdatensätze Anzahl der Lernschritte Vor dem Lernen müssen die Gewichte initialisiert werden, d. h. mit zufälligen Startwerten belegt werden Unter Learning können die spezifischen Parameter eines Trainingsverfahrens eingestellt werden. Mit „Learn All“ werden alle Trainingsdatensätze zum Training herangezogen. Es sind noch weitere Einstellungen vor dem Training notwendig! SS2007 Einführung in JavaNNS Version 1.1

24 Einführung in JavaNNS Version 1.1
Error Graph Graphische Darstellung von Trainings- und Validierungsfehler Die Achsen können skaliert werden. Außerdem können über die Button unten links Gitternetzlinien eingefügt werden und auch der Graph gelöscht werden. SS2007 Einführung in JavaNNS Version 1.1

25 Einführung in JavaNNS Version 1.1
Weights Graphische Darstellung der Verbindungsgewichte Entsprechend der Aktivierung Unter View können Sie sich die Aktivierung der Verbindungsgewichte in Matrizenform graphisch anzeigen lassen. SS2007 Einführung in JavaNNS Version 1.1

26 Einführung in JavaNNS Version 1.1
Weights Zielneuron Aktivierung des Vebindungsgewichtes z. B. von Neuron 5 zu Neuron 6 Die Gewichte sind noch nicht aktiviert. Hier werden die Aktivierungen der Gewichte in Matrizenform farblich dargestellt. Die Farbe entsprciht dem Wert der Aktivierung. Die Gewichte sind noch nicht aktiviert, da die Farbe hellgrau ist. Quellneuron SS2007 Einführung in JavaNNS Version 1.1

27 Einführung in JavaNNS Version 1.1
Training Die Gewichte werden über Init initialisiert. Initialisieren der Gewichte SS2007 Einführung in JavaNNS Version 1.1

28 Einführung in JavaNNS Version 1.1
Training Jetzt kann das Training des KNN zu Lösung des XOR-Problems mit learn All beginnen. SS2007 Einführung in JavaNNS Version 1.1

29 Einführung in JavaNNS Version 1.1
Training Nach dem Training kann das Ergebnis in über Save Data gespeichert werden. Lassen Sie sich in der Ergebnisdatei alle Werte (Input, Target, Output) ausgeben, dann können Sie die Ergebnisse direkt mit dem Tagetwert (=Sollwert) vergleichen. SS2007 Einführung in JavaNNS Version 1.1

30 Einführung in JavaNNS Version 1.1
Excel Excel starten und Datei „kennlinie.xls“ laden Die Auswertung der Trianingsergebnisse soll über Excel erfolgen. Starten Sie Excel und laden die Datei „kennlinie.xls“. Das ist eine vorbereitete Datei zru Auswertung des KNN. SS2007 Einführung in JavaNNS Version 1.1

31 Einführung in JavaNNS Version 1.1
Excel Aktualisieren der Daten in Excel Übertragen Sie die Daten aus dem Result-File in Excel in das Tabellenblatt „Kennlinie 100“, indem Sie zuerst die Eigenschaften für den Import überprüfen. Insbesondere soll das Feld „Beim Aktualisieren Dateinamen überprüfen“ aktiviert sein! Wenn dieses Feld aktiviert ist mit OK bestätigen und über den Button mit dem roten Ausrufezeichen (!) die Daten aus JNNS in Excel importieren. SS2007 Einführung in JavaNNS Version 1.1

32 Einführung in JavaNNS Version 1.1
Excel Die Input-Werte aus dem Trainingsdatensatz Die Output-Werte aus dem Trainingsdatensatz. Die vom Netz erzeugten Output-Werte nach 100 Cyclen Aufbau des Excel-Tabellenblatts wie der Result-File aus JNNS. SS2007 Einführung in JavaNNS Version 1.1

33 Einführung in JavaNNS Version 1.1
Excel Nach 100 Trainingsepochen wurde die Kennlinie schon ansatzweise gut gelernt. Lassen Sie sich den Graphen nach 200, 500, 1000 und 2000 Epochen ausgeben und bewerten Sie das Ergebnis. SS2007 Einführung in JavaNNS Version 1.1

34 Einführung in JavaNNS Version 1.1
Training Sie können direkt 100 Epochen weitertrainieren und erhalten dann das Ergebnis für das Training nach 200 Epochen. SS2007 Einführung in JavaNNS Version 1.1

35 Einführung in JavaNNS Version 1.1
Training Nach 200 Trainingsepochen hat sich die Kennlinie der Sollkennlinie wieder etwas angenähert. Trainieren Sie jetzt weitere 300 Epochen, insgesamt also 500 Epochen und lassen sich das Ergebnis anzeigen. Verfahren Sie auch für insgesamt 1000 und 2000 Epochen. SS2007 Einführung in JavaNNS Version 1.1

36 Einführung in JavaNNS Version 1.1
Training Nach 2000 Trainingsepochen wird das Ergebnis in Kennlinie2000 gespeichert. SS2007 Einführung in JavaNNS Version 1.1

37 Einführung in JavaNNS Version 1.1
Training Nach 2000 Trainingsepochen ist die Kennlinie kaum von der Sollkennlinie zu unterscheiden. SS2007 Einführung in JavaNNS Version 1.1

38 Einführung in JavaNNS Version 1.1
Aufgabe Reduzieren Sie die Anzahl der Neuronen des bestehenden Beispiels soweit wie möglich und visualisieren Sie die Ergebnisse in Excel. Verwenden Sie unterschiedliche Parametereinstellungen (z.B. Lernrate, …) Trainingsverfahren „extreme“ Architekturen Zum besseren Umgang mit KNN und der Visualisierung sollen Sie jetzt die Anzahl der Neuronen so weit wie möglich reduzieren, damit noch ein gutes Ergebnis erzielt wird. Ändern Sie auch Die Paramtrierung des Trainingsverfahrens das Trainingsverfahren testen Sie auch „extreme“ Architekturen, wie z.b. MLP 1-1-1 Und bewerten Sie all Ihre Ergebnisse! SS2007 Einführung in JavaNNS Version 1.1

39 Einführung in JavaNNS Version 1.1
Quellen Software „JNNS incl. Handbuch“: Software „Java“: „Simulation neuronaler Netze“ von Andreas Zell Vorlesungsskript Prof. Lehmann SS2007 Einführung in JavaNNS Version 1.1

40 Einführung in JavaNNS Version 1.1
Vielen Dank für Ihre Aufmerksamkeit ! SS2007 Einführung in JavaNNS Version 1.1


Herunterladen ppt "Kennlinie Lichtregelung in JavaNNS Version 1.1"

Ähnliche Präsentationen


Google-Anzeigen