Einfaches Framework für Neuronale Netze

Ähnliche Dokumente
Hannah Wester Juan Jose Gonzalez

kurze Wiederholung der letzten Stunde: Neuronale Netze Dipl.-Inform. Martin Lösch (0721) Dipl.-Inform.

Virtuelles Labor für Neuronale Netze

6.4 Neuronale Netze zur Verarbeitung von Zeitreihen

Neuronale Netze in der Phonetik: Feed-Forward Netze. Pfitzinger, Reichel IPSK, LMU München {hpt 14.

Künstliche neuronale Netze

Neuronale Netze. Anna Wallner. 15. Mai 2007

Neuronale Netze Aufgaben 3

Computational Intelligence 1 / 20. Computational Intelligence Künstliche Neuronale Netze Perzeptron 3 / 20

6.2 Feed-Forward Netze

kurze Wiederholung der letzten Stunde: Neuronale Netze Dipl.-Inform. Martin Lösch (0721) Dipl.-Inform.

Neuronale Netze. Christian Böhm.

Andreas Scherer. Neuronale Netze. Grundlagen und Anwendungen. vieweg

Künstliche Neuronale Netze

Konzepte der AI Neuronale Netze

Technische Universität. Fakultät für Informatik

Einführung in die Neuroinformatik Lösungen zum 5. Aufgabenblatt

Mustererkennung: Neuronale Netze. D. Schlesinger ()Mustererkennung: Neuronale Netze 1 / 12

(hoffentlich kurze) Einführung: Neuronale Netze. Dipl.-Inform. Martin Lösch. (0721) Dipl.-Inform.

Datenorientierte SA. Aufbau und Grundlagen. Aufbau und Grundlagen. Aufbau und Grundlagen. Was sind neuronale Netze?

Schriftlicher Test Teilklausur 2

Wir haben in den vorherigen Kapiteln verschiedene Verfahren zur Regression und Klassifikation kennengelernt (z.b. lineare Regression, SVMs)

Adaptive Systeme. Mehrere Neuronen, Assoziative Speicher und Mustererkennung. Prof. Dr. rer. nat. Nikolaus Wulff

HSR Rapperswil 2001 Markus Rigling. Programmieren: Smart Pointer Auflage

Seminar K nowledge Engineering und L ernen in Spielen

Universität zu Köln Seminar: Künstliche Intelligenz II Dozent: Claes Neuefeind SS Neuronale Netze. Von Deasy Sukarya & Tania Bellini

Proseminar Machine Learning. Neuronale Netze: mehrschichtige Perzeptrone. Christina Schmiedl Betreuer: Christian Spieth, Andreas Dräger

Programmieren in Java -Eingangstest-

11. Neuronale Netze 1

Künstliche neuronale Netze

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

Grundlagen zu neuronalen Netzen. Kristina Tesch

Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik. 8. Aufgabenblatt

Was sind Neuronale Netze?

Training von RBF-Netzen. Rudolf Kruse Neuronale Netze 134

Analyse komplexer Szenen mit Hilfe von Convolutional Neural Networks

Thema 3: Radiale Basisfunktionen und RBF- Netze

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Wissensentdeckung in Datenbanken

Klassifikationsverfahren und Neuronale Netze

Übungsserie Nr. 6. Ausgabe: 1. April 2015 Abgabe: 15. April Hinweise

Wissensbasierte Systeme

Wissensentdeckung in Datenbanken

Aufgabe 1 Probabilistische Inferenz

Objekterkennung mit künstlichen neuronalen Netzen

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

MVC-Architektur am Beispiel von OLAT

Computational Intelligence I Künstliche Neuronale Netze

Grundlagen neuronaler Netzwerke

KNN für XOR-Funktion. 6. April 2009

Criteria API: Komplexe SQL Queries mit Eclipslink bauen

Auch wenn Prof. Helbig die Prüfung nicht mehr lange abnimmt, hier ein kurzer Eindruck:

Wir haben in den vorherigen Kapiteln verschiedene Verfahren zur Regression und Klassifikation kennengelernt (z.b. lineare Regression, SVMs)

3 Properties, Bindings und JavaFX-Collections

Weitere Untersuchungen hinsichtlich der Anwendung von KNN für Solvency 2. Tom Schelthoff

Praktikum Simulationstechnik Rene Schneider, Benjamin Zaiser

Radiale-Basisfunktionen-Netze. Rudolf Kruse Neuronale Netze 120

Neuronale Netze. Seminar aus Algorithmik Stefan Craß,

Künstliche Intelligenz. Neuronale Netze

Neuronale Netze, Fuzzy Control, Genetische Algorithmen. Prof. Jürgen Sauer. 12. Aufgabenblatt: Projektvorschläge für WS 2010/2011

Neuronale. Netze. Henrik Voigt. Neuronale. Netze in der Biologie Aufbau Funktion. Neuronale. Aufbau Netzarten und Topologien

2.4.4 Die Fraktale Dimension

Universität Hamburg, Fachbereich Informatik Übungsblatt 11 zum Praktikum. E. Betke, N. Hübbe, M. Kuhn, J. Lüttgau, J. Squar im WiSe 2018/2019

Rekurrente / rückgekoppelte neuronale Netzwerke

DEEP LEARNING MACHINE LEARNING WITH DEEP NEURAL NETWORKS 8. NOVEMBER 2016, SEBASTIAN LEMBCKE

Finanzmarktprognose mit neuronalen Netzen

Technische Universität. Fakultät für Informatik

Neuronale Netze, Fuzzy Control, Genetische Algorithmen. Prof. Jürgen Sauer. 5. Aufgabenblatt: Neural Network Toolbox 1

Einführung: Verteilte Systeme - Remote Method Invocation -

Der Sprung in die Zukunft! Einführung in neuronale Netzwerke

Institut für Informatik

Schriftlicher Test Teilklausur 2

% ' ' & w 1. x 1 M $ # w = x n. w n.,l,x n. x T = (x 1. x i. w i. Treppenfunktion H (Heavisidefunktion) als Aktivierungsfunktion

Waitomo. Compilerbaupraktikum Wintersemester 2006/2007. Stefan Wehr. 24. Oktober 2006

Studiengang Simulation Technology

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Klausur Grundlagen der Programmierung

1 Abstrakte Klassen, finale Klassen und Interfaces

5. Lernregeln für neuronale Netze

Selbstorganisierende Karten

Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

Lernverfahren von Künstlichen Neuronalen Netzwerken

Objektorientierte Programmierung II

Abstrakte Klassen, Interface. DVG Abstrakte Klassen, Interface

Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig, Michael Schneider

Theoretische Informatik 1

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik

Abschnitt 10: Datenstrukturen

Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

Neuronale Netze. Volker Tresp

Universität Klagenfurt

Institut für Programmierung und Reaktive Systeme 28. Mai Programmieren II. 12. Übungsblatt

Programmieren in Java

Gesichtserkennung mit MemBrain. - GIMP starten (ggf. eignen sich auch andere Programme dazu) und ein einzelnes Foto der Trainingsdaten

Einführung in die Programmierung

Anleitung zum Praktikum Neuroinformationsverarbeitung - Wintersemester 2016/2017

Transkript:

Einfaches Framework für Neuronale Netze Christian Silberbauer, IW7, 2007-01-23 Inhaltsverzeichnis 1. Einführung...1 2. Funktionsumfang...1 3. Implementierung...2 4. Erweiterbarkeit des Frameworks...2 5. Anwendung...3 6. Mögliche Erweiterungen...4 7. Backpropagation- und Quickprop-Test...4 1. Einführung Das Projekt bietet einen objektorientierten Ansatz in Java, um einfache Neuronale Netze zu implementieren. Der Fokus des Frameworks liegt auf einer guten Strukturierung und einer simplen Erweiterbarkeit. Die Performance der Algorithmen ist zweitrangig. Die Arbeit ist ausschließlich als Modell für die Lehre gedacht. 2. Funktionsumfang Derzeit bietet das Framework die Möglichkeiten Assoziative und Rekurrente Netze zu modellieren. Letztere sind dahingehend beschränkt, als dass zwar beliebig viele versteckte Schichten definierbar sind, diese aber stets dieselbe Anzahl Neuronen beinhalten müssen. Bei Assoziativen Netzen können zum Lernen die Hebb sche Regel und die Delta- Regel angewendet werden. Rekurrente Netze erlauben als Lernregeln den Backpropagation-Algorithmus und dessen nächsten Verwandten, dem Quickprop. Für die vorliegenden Netztypen stehen generell die binäre, die bipolare und die sigmoide Aktivierungsfunktion zur Auswahl. Darüber hinaus sind Lernrate und Momentum konfigurierbar. Neuronale Netze Framework - 1 - Christian Silberbauer

3. Implementierung Network +setactivationfunction() +setepsilon() +setalpha() +init() +test() «Schnittstelle» IActivation +activate() Binary Bipolar Sigmoid AssociativeNetwork +setsize() RecurrentNetwork +setsize() +testlayer() «Schnittstelle» ILearningAlgorithm Hebb Delta Backpropagation +errordetection() Quickprop +errordetection() Die obige Klassenstruktur zeigt alle wesentlichen Klassen sowie deren relevanten Methoden. Basisklasse aller Netzwerktypen ist die abstrakte Klasse Network. Konkrete Netze sind vom Typ AssociativeNetwork oder RecurrentNetwork. Ein Network-Objekt ist mit einer IActivation-Implementierung zu initialisieren. Dadurch ist eine Aktivierungsfunktion gesetzt. Schließlich kann ein Netz mit einem ILearningAlgorithm-Objekt, wie z.b. Hebb, Delta, Backpropagation und Quickprop, trainiert werden. Dem Objekt, das die entsprechende Lernregel implementiert ist dazu ein passender Netztyp zuzuweisen. 4. Erweiterbarkeit des Frameworks Das vorliegende Framework ist als Grundgerüst zu verstehen, welches Erweiterungen leicht macht. Um zusätzliche Algorithmen zu definieren, ist lediglich das entsprechende Interface zu implementieren. Weitere Anpassungen sind i.d.r. Neuronale Netze Framework - 2 - Christian Silberbauer

nicht notwendig. Die lose Kopplung ist wie in der objektorientierten Programmierung üblich mittels Dependency Injection realisiert. 5. Anwendung AssociativeNetwork net = new AssociativeNetwork(0.25); // Lernrate: 0.25 net.setactivationfunction(new Bipolar()); // -1 oder 1... net.setsize(3, 3); // 3 Eingabeneuronen, 3 Ausgabeneuronen net.init(init.zero); // Gewichte mit 0 initialiseren double[] x = { -1, -1, 1 }; double[] t = { -1, -1, 1 }; double[] o; Delta rule = new Delta(net); // Delta-Regel mit dem Netz initialiseren rule.learn(x, t); // zum Lernen Testdaten und Zielwert übergeben System.out.println(net); o = net.test(x); // Gelerntes anwenden... System.out.println(Printer.print(o)); x[0]=1; x[1]=-1; x[2]=-1; t[0]=1; t[1]=1; t[2]=-1; rule.learn(x, t); System.out.println(net); o = net.test(x); System.out.println(Printer.print(o)); Definiert wird hier ein assoziatives Netz mit einer Lernrate von 0,25. Es wird eine bipolare Aktivierungsfunktion verwendet die Neuronenausgabe nimmt also entweder den Wert -1 oder den Wert 1 an. Das Netz hat drei Eingabeneuronen und drei Ausgabeneuronen. Die Gewichte zwischen den Neuronen werden mit null vorbelegt. Hier wäre auch Init.Random möglich wodurch Zufallswerte zwischen 0 und 1 gesetzt werden würden. Schließlich wird ein Delta-Objekt instantiiert. Dem Objekt wird dabei das Netz bekannt gegeben. Mittels rule.learn(x, t) werden die vorliegenden Testdaten gelernt. Ein weiterer Lernschritt wird durchgeführt. Dazwischen werden Gewichte und Ausgabewerte auf Konsole geschrieben. Der entsprechende Output sieht wie folgt aus: Neuronale Netze Framework - 3 - Christian Silberbauer

0: 0.0 0.0 0.0 1: 0.0 0.0 0.0 2: -0.5-0.5 0.5-1.0-1.0 1.0 0: 0.5-0.5-0.5 1: 0.5-0.5-0.5 2: -0.5-0.5 0.5 1.0 1.0-1.0 6. Mögliche Erweiterungen Dass Erweiterungen des Frameworks nicht schwierig sind, wurde bereits weiter oben erwähnt. Viele zusätzliche Features könnten dem Framework noch hinzugefügt werden. Beispielsweise: - BIAS realisieren - zusätzlich Aktivierungsfunktionen (z.b. Identitätsfunktion) - Integration des Lernens in Epochen (Epoche-Klasse hinzufügen) - Dynamisches Absenkung der Lernrate - 7. Backpropagation- und Quickprop-Test Ausführlichere Tests wurden mit dem Backpropagation- und dem Quickprop- Algorithmus durchgeführt. Als Testfunktion diente die Funktion zur Berechnung des Flächeninhalts eines Kreises. 2 A= πr Neuronale Netze Framework - 4 - Christian Silberbauer

Um der Einfachheit halber jegliche Transformationen zu vermeiden, wurden nur Eingabewerte getestet bei denen der Ziel-Ausgabewert zwischen 0 und 1 liegt. Der imale Eingabetestwert belief sich demnach auf: A r =, da 1 π A = r = 0, 5641 Die Tests haben ergeben, dass für den Backpropagation-Algorithmus eine Lernrate um 0,7 sehr gut ist. Ein dynamisches Absenken der Lernrate, nachdem sich beim Lernen über viele Epochen keine signifikante Änderung des Fehlers ergibt, hat nur wenig zusätzlichen Erfolg gebraucht. Mehrere Schichten scheinen das Ergebnis zwar zu verbessern, allerdings beeinflussen sie das Laufzeitverhalten unverhältnismäßig hoch. Eine einzige versteckte Schicht bringt ein ausreichend gutes Ergebnis. Durch die Anwendung eines Momentum verbesserte sich das Ergebnis nicht. Teilweise musste sogar ein schlechteres Result festgestellt werden. Der Einsatz des Quickprop-Algorithmus hat durchweg einen schlechteren Fehler ergeben. Auch dass die Lernschritte größer sind, konnte zumindest bei diesem Test nicht nachvollzogen werden. Neuronale Netze Framework - 5 - Christian Silberbauer