Neuronale Netze Aufgaben 2

Ähnliche Dokumente
Lösungen zur letzten Stunde & Vorbereitung

Neuronale Netze Aufgaben

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

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

Neuronale Netze Aufgaben 3

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

Perzeptronen. Katrin Dust, Felix Oppermann Universität Oldenburg, FK II - Department für Informatik Vortrag im Rahmen des Proseminars 2004

Klassifikation linear separierbarer Probleme

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

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

Proseminar Neuronale Netze Frühjahr 2004

Künstliche Neuronale Netze

Reranking. Parse Reranking. Helmut Schmid. Institut für maschinelle Sprachverarbeitung Universität Stuttgart

Adaptive Systeme. Neuronale Netze: Neuronen, Perzeptron und Adaline. Prof. Dr. rer. nat. Nikolaus Wulff

Praktische Optimierung

Automatische Spracherkennung

Objektorientierte Programmierung

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Informatik für Elektrotechnik und Informationstechnik

Lösungsskizzen zum Buch Mathematik für Informatiker Kapitel 8 Peter Hartmann

Computational Intelligence I Künstliche Neuronale Netze

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

Schwellenwertelemente. Rudolf Kruse Neuronale Netze 8

Hochschule München, FK 03 SS Masterstudiengang Technische Berechnung und Simulation. Programmierung von CAx-Systemen Teil 1

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.

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

Objektorientierung Grundlagen

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Ziele sind das Arbeiten mit Funktionen (Modularisierung, Parameterübergabe), sowie - Reihentyp (Array)

Wissensentdeckung in Datenbanken

KNN-Methode zur Einschätzung von Veränderungen des Salzgehaltes in Ästuaren

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 23

Das Perzeptron. Volker Tresp

6.4 Neuronale Netze zur Verarbeitung von Zeitreihen

Optimal-trennende Hyperebenen und die Support Vector Machine. Volker Tresp

Kapitel LF: IV. IV. Neuronale Netze

Kapitel LF: IV. Multilayer-Perzeptrons und Backpropagation. Multilayer-Perzeptrons und Backpropagation. LF: IV Machine Learning c STEIN

Das Modell: Nichtlineare Merkmalsextraktion (Preprozessing) + Lineare Klassifikation

Klausur: Informatik, am 11. Juli 2013 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Seminar Künstliche Intelligenz WS 2013/14 Grundlagen des Maschinellen Lernens

6.2 Feed-Forward Netze

Schriftlicher Test Teilklausur 2

Lineare Regression. Volker Tresp

Was bisher geschah Künstliche Neuronen: Mathematisches Modell und Funktionen: Eingabe-, Aktivierungs- Ausgabefunktion Boolesche oder reelle Ein-und

Training von RBF-Netzen. Rudolf Kruse Neuronale Netze 134

Klausur: Informatik, am 11. Juli 2013 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Hannah Wester Juan Jose Gonzalez

Einführung in die Programmierung (EPR)

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Analyse komplexer Szenen mit Hilfe von Convolutional Neural Networks

Übung Notendarstellung

Bayessches Lernen Aufgaben

Selbstorganisierende Karten

Schriftlicher Test Teilklausur 2

Fakultät für Informatik Übung zu Kognitive Systeme Sommersemester 2016

Grundlagen der Informatik 5. Kontrollstrukturen II

Angewandte Kryptografie Praktikum 1

Wissenschaftliches Rechnen

Monte Carlo Simulationen

k 5 Mathematische Vorlagen und die Vorlage für eine nxm-matrix mit dem Pfeilcursor bzw. dem Mauszeiger doppelt anklicken

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Inhaltsverzeichnis. Einführung

EPROG 2.Teilprüfung. Aufgabe 1:

Gliederung. Biologische Motivation Künstliche neuronale Netzwerke. Anwendungsbeispiele Zusammenfassung. Das Perzeptron

Perzeptronen. Lehrstuhl für Künstliche Intelligenz Institut für Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg

Einfaches Framework für Neuronale Netze

Das Perzeptron. Künstliche neuronale Netze. Sebastian Otte. 1 Grundlegendes. 2 Perzeptron Modell

Neuronale Netze mit mehreren Schichten

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Verwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt).

Von der Bestimmung zur Vorhersage: Wie sagt man den Netzzustand vorher?

Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben!

Einführung in die Programmierung

Transkript:

Neuronale Netze Aufgaben 2 martin.loesch@kit.edu (0721) 608 45944

Aufgabe 3: Netz von Perzeptronen Die Verknüpfung mehrerer Perzeptronen zu einem Netz erlaubt die Lösung auch komplexerer Probleme als nur die linear separierbaren. Löse mit Hilfe eines Netzes von mehreren Perzeptronen das dargestellte Klassifikationsproblem (2 diskrete Eingänge, mögliche Werte: {0, 1, 2, 3}). Aufbau der Lösung: 2 Eingaben, das eigentliche Netz von Perzeptronen, pro zu erkennender Klasse je ein x 1 Ausgabe-Perzeptron. x 2 Aufgabe 2

Lösung Aufgabe 3 (1) namespace FL = Flood; FL::Perceptron ex3horiz(2), ex3diag(2), ex3blackcross(2), ex3greencircle(2), ex3bluesquare(2); void initexercise3perceptrons() { ex3horiz.set_activation_function(fl::perceptron::linear); [...] ex3horiz.set_bias(1.5); FL::Vector<double> ex3hweights(2); ex3hweights[0] = 0.0; ex3hweights[1] = -1.0; ex3horiz.set_synaptic_weights(ex3hweights); ex3diag.set_bias(-2.25); FL::Vector<double> ex3dweights(2); ex3dweights[0] = 0.5; ex3dweights[1] = 0.5; ex3diag.set_synaptic_weights(ex3dweights); ex3blackcross.set_bias(-0.5); FL::Vector<double> ex3bcweights(2); ex3bcweights[0] = 1.0; ex3bcweights[1] = 0.0; ex3blackcross.set_synaptic_weights(ex3bcweights); ex3greencircle.set_bias(0.25); FL::Vector<double> ex3gcweights(2); ex3gcweights[0] = -0.5; ex3gcweights[1] = -0.5; ex3greencircle.set_synaptic_weights(ex3gcweights); ex3bluesquare.set_bias(-0.5); FL::Vector<double> ex3bsweights(2); ex3bsweights[0] = 0.0; ex3bsweights[1] = 1.0; ex3bluesquare.set_synaptic_weights(ex3bsweights); } 3

Lösung Aufgabe 3 (1) void calculateexercise3(double* signals) { FL::Vector<double> inputsignals(2); inputsignals[0] = signals[0]; inputsignals[1] = signals[1]; double horizres = ex3horiz.calculate_output (inputsignals); inputsignals[0] = signals[0]; inputsignals[1] = signals[1]; double diagres = ex3diag.calculate_output (inputsignals); inputsignals[0] = horizres; inputsignals[1] = diagres; double bcres = ex3blackcross.calculate_output (inputsignals); inputsignals[0] = horizres; inputsignals[1] = diagres; double gcres = ex3greencircle.calculate_output (inputsignals); inputsignals[0] = horizres; inputsignals[1] = diagres; double bsres = ex3bluesquare.calculate_output (inputsignals); cout << "Exercise 3: BlackCross=" << (thresholdwithnull(bcres)?"true":"false ) << " GreenCircle=" << (thresholdwithnull(gcres)?"true":"false ) << " BlueSquare=" << (thresholdwithnull(bsres)?"true":"false") << endl; } 4

Aufgabe 4: Lernen eines Perzeptrons Die Einstellung der Gewichte eines Perzeptron per Hand ist aufwändig und fehlerträchtig. Der Perzeptron-Lernalgorithmus stellt daher eine sinnvolle Alternative dar. a) Implementieren Sie eine Funktion, die (gegeben eine Menge von Trainingsdaten) die Gewichte eines Perzeptrons einlernen kann. b) Verwenden Sie die neu implementierte Lernfunktion, um Gewichte einzulernen für Perzeptronen zur Realisierung einer (1) AND-Funktion (2) OR-Funktion 5

FRAMEWORK FÜR PERZEPTRON-LERNEN 6

Lernen - Geometrische Interpretation Hilfsmenge { } N = x x = x, x N Neues Lernproblem xw > 0, x N P Im Beispiel: alle x i aus P

Perzeptron Lernalgorithmus Start: Gegeben Lerndatenmenge P N Der Gewichtsvektor w(0) wird zufällig generiert. Setze t:=0. Testen: Ein Punkt x in P N wird zufällig gewählt. Falls x P und w(t) x > 0 gehe zu Testen Falls x P und w(t) x 0 gehe zu Addieren Falls x N und w(t) x < 0 gehe zu Testen Falls x N und w(t) x 0 gehe zu Subtrahieren Addieren: Setze w(t+1) = w(t)+x. Setze t:= t+1. Gehe zu Testen. Subtrahieren: Setze w(t+1) = w(t)-x. Setze t:=t+1. Gehe zu Testen.

Vorgegebener Ablauf: Framework-Quelldatei Daten laden Perzeptron trainieren Perzeptron verwenden Trainingsdaten werden aus Datei geladen: TrainingData* loaddatafromfile(filename) Perzeptron wird trainiert: Perzeptron* trainnewperceptron(traindata) MUSS IMPLEMENTIERT WERDEN! Perzeptron wird verwendet/getestet: void runperceptron(perceptron* neuron) 9

Anzahl der Eingänge Eine Instanz pro Zeile Komma-separierte Werte Daten-Dateiformat Letzer Wert: Klasse der Instanz Beispiele: anddata.txt 2 0,0,- 0,1,- 1,0,- 1,1,+ ordata.txt 2 0,0,- 0,1,+ 1,0,+ 1,1,+ xordata.txt 2 0,0,- 0,1,+ 1,0,+ 1,1,- 10