Objekterkennung mit künstlichen neuronalen Netzen

Ähnliche Dokumente
Einführung in neuronale Netze

Programmierbeispiele und Implementierung. Name: Michel Steuwer

Neuronale Netze (I) Biologisches Neuronales Netz

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

Machine Learning - Maschinen besser als das menschliche Gehirn?

Computational Intelligence I Künstliche Neuronale Netze

(künstliche) Neuronale Netze. (c) Till Hänisch 2003,2015, DHBW Heidenheim

Neuronale Netze in der Robotik

Cloud-Computing. 1. Definition 2. Was bietet Cloud-Computing. 3. Technische Lösungen. 4. Kritik an der Cloud. 2.1 Industrie 2.

Kohonennetze Selbstorganisierende Karten

Neuronale Netze mit mehreren Schichten

Simulation neuronaler Netzwerke mit TIKAPP

Innovative Information Retrieval Verfahren

Vom Chip zum Gehirn Elektronische Systeme zur Informationsverarbeitung

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

(künstliche) Neuronale Netze. (c) Till Hänisch 2003, BA Heidenheim

Softcomputing Biologische Prinzipien in der Informatik. Neuronale Netze. Dipl. Math. Maria Oelinger Dipl. Inform. Gabriele Vierhuff IF TIF

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik Kurt Mehlhorn

Entwicklung von Methoden zum Nachweis von ökologisch erzeugten Produkten am Beispiel der Lachszucht - Neronale Netzanalyse -

Lernstrategien für Neuronale Netze - Der Backpropagation-Algorithmus

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

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

Künstliches binäres Neuron

OpenCL Implementierung von OpenCV Funktionen

GPGPU Programming nvidia CUDA vs. AMD/ATI Stream Computing. Seminar HWS 08/09 by Erich Marth

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

Einführung in. Neuronale Netze

Machine Learning - Maschinen besser als das menschliche Gehirn?

Farbe des Covers Intel Celeron M 370 (1 MB, 1,5 GHz, 400 MHz FSB)

INDEX. Netzwerk Überblick. Benötigte Komponenten für: Windows Server Windows Server 2008 R2. Windows Server 2012

Parallele Programmierung mit GPUs

Systemvoraussetzungen

GPGPU mit NVIDIA CUDA

ULM. Intelligenter Greifarm. ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht. Michael Awiszus Niklas Haas

Technische Voraussetzungen

Die Bildbearbeitungssprache Halide

Neuronale Netze in Go

Technische Voraussetzungen

Was bisher geschah. Lernen: überwachtes Lernen. biologisches Vorbild neuronaler Netze: unüberwachtes Lernen

Neuronale Netze Eine Einführung

EyeCheck Smart Cameras

SCHEIDBACH Computerhandel KG EDV-FACHBETRIEB MIT PERSÖNLICHER BERATUNG ASUS - LENOVO - TOSHIBA FUJITSU - HP. Notebook Preisliste. JUNI/Juli ***

GigE Vision Kamera Line up Die Kompakte mit exzellenter Bildqualität

Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester Tim Conrad

Staff. Tim Conrad. Zeitplan. Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester Tim Conrad

Aufbau und Funktionsweise eines Computers

Einführung in die Systemprogrammierung

Echtzeitverhalten durch die Verwendung von CPU Stubs: Eine Erweiterung von Dynamic Performance Stubs. Echtzeit 2009

2. Semester, 2. Prüfung, Lösung

Exklusive Preisliste für Nur für Sie!! Ihr exone Systemhauspartner Friedrich Ritschel GmbH & Co. KG Herr Jacobsen edv@ritschelkg.

Künstliche neuronale Netze

Leistungsanalyse von Rechnersystemen

Newsletter. Intelligente Leistung, intelligente Effizienz. Strato 4000 Intel Core i3 / i5 / i7 Office-Workstation.

Operator-Kostenmodelle für Fortschrittsschätzung und Opt. Datenbanksystemen

Algorithmen für moderne Rechnerarchitekturen

Kunst der Spieleprogrammierung. The END. Playful Design. (c) 2013, Peter Sturm, Universität Trier

PC Systeme. Seit über 27 Jahren. Smal Size: Kompakte aber trotzdem viel Platz, Austattung wählbar ab

Hochschule Regensburg. Spezielle Algorithmen (SAL) Lehrbeauftragter: Prof. Sauer

P-Square Office Crow J1900/4/ 500

Deklarationen in C. Prof. Dr. Margarita Esponda

Mindestanforderungen an Systemumgebung Für die Nutzung von excellenttango

Dr. Monika Meiler. Inhalt

Kapitel 6 Unkonventionelle Konzepte

Produkteportfolio Maerz Die aktuellen Preise finden Sie auf www. maxdata. ch

ehealth Zertifizierte Hardware speziell für Ärzte und Kliniken. Inhaltsübersicht

Effiziente Java Programmierung

Predator G3. Premium Design. Advanced Technology. Immersive entertainment

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück

Generalisierung von großen Datenbeständen am Beispiel der Gebäudegeneralisierung mit CHANGE

Informationen zum Hardwarewarenkorb

SEP 325. Notwendigkeit. häufige Situation: Programm funktioniert im Prinzip fehlerfrei, aber nicht mit gewünschter Performanz

Windows 10 Angebote finden sie unter Die aktuellen Preise finden Sie auf www. maxdata. ch

Optimierung der Code-Generierung virtualisierender Ausführungsumgebungen zur Erzielung deterministischer Ausführungszeiten

SG-TRONiC IT - Made in Germany

Lenovo ThinkPad Edge E530 NZQCGMZ

20 Jahre. acadgraph CADstudio GmbH Fritz-Hommel-Weg München Seite 1 von 11

Programmierung von Graphikkarten

Künstliche Neuronale Netze und Data Mining

ASUS - LENOVO - TOSHIBA FUJITSU - HP. Notebook Preisliste. Sept !!!

Grundlagen der Parallelisierung

Protokoll zum Informatik Praktikum. Themenbereich: Neuronale Netze

TCplus (Switzerland) GmbH Europastrasse Glattbrugg Telefon Fax

Codesigned Virtual Machines

b) Gegeben sei folgende Enumeration: enum SPRACHE {Deutsch, Englisch, Russisch};

Notebookkauf. Du möchtest ein neues Notebook kaufen und hast 5 verschiedene Angebote zur Auswahl.

J.5 Die Java Virtual Machine

Angewandte Informatik

Programmieren in Java

Kapitel LF: IV. IV. Neuronale Netze

Objective-C CheatSheet

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

Learning Suite Talent Suite Compliance Suite. Systemvoraussetzungen

Fachreferat. EFI -BIOS Nachfolger-

(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT

Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP

Microcontroller Kurs Programmieren Microcontroller Kurs/Johannes Fuchs 1

PERI Softwarefinder Leitfaden

Transkript:

Objekterkennung mit künstlichen neuronalen Netzen Frank Hallas und Alexander Butiu Universität Erlangen Nürnberg, Lehrstuhl für Hardware/Software CoDesign Multicorearchitectures and Programming Seminar, Sommersemester 2013

1. Motivation 2. Objekterkennung 3. neuronale Netze 3.1 natürliche neuronale Netze 3.2 künstliche neuronale Netze 4. Implementierung des Netzes 4.1 Modellbildung 4.2 Backpropagation-Algorithmus 4.3 Implementierung 4.4 Probleme 5. Vorstellung der Ergebnisse 5.1 Hardware 5.2 Messergebnisse 6. Ausblicke 2

1. Motivation Objekterkennung und verfolgung: vielfältige Anwendungsmöglichkeiten militärisch (Zielverfolgung) Kraftfahrzeuganwendungen (Fußgängererkennung) Robotikanwendungen (opt. Erfassung von Werkstücken, Spielzeug) 3

1. Motivation Einsatz von neuronalen Netzen Faszination von lernfähigen Computerprogrammen 4

1. Motivation 2. Objekterkennung 3. neuronale Netze 4. Implementierung des Netzes 5. Vorstellung der Ergebnisse 6. Ausblicke 5

2. Objekterkennung Aufgabe: Bekanntes Objekt in unbekannten Bildern wiedererkennen Probleme: - verschiedene Größen von Bildern - unterschiedliche Entfernung zum Objekt (Größe und Skalierung) - unterschiedliche Positionierung des Objekts in dem Bild 6

2. Objekterkennung Abtastung: Probleme: Welche Größenverhältnisse? Welchen Ausschnitt? gerichtete Abtastung und Skalierung oder zufällige Bildbetrachtung? 7

Gliederung 1. Grundidee 2. Objektverfolgung 3. Neuronale Netze 3.1 natürliche neuronale Netze 3.2 künstliche neuronale Netze 4. Implementierung des Netzes 5. Vorstellung der Ergebnisse 6. Ausblicke 8

3. Neuronale Netze 3.1 Neuronale Netze natürliche neuronale Netze 9

3. Neuronale Netze 3.2 Neuronale Netze künstliche neuronale Netze - Allgemein Eingangsgrößen float(0 1) Genereller Aufbau: Eingangsneuronen Hidden-Neuronen Ausgangsneuron float(0 1) 10

3. Neuronale Netze 3.2 Neuronale Netze künstliche neuronale Netze - Allgemein net j = Σ i (Eingangswert i * Gewicht ij ) F(net) = 1+e 1 net θ = float (0 1) θ Schwellwert Sigmoid-Aktivierungs-Funktion 11

3. Neuronale Netze 3.2 Neuronale Netze künstliche neuronale Netze Lernen erfolgt durch Gewichtsanpassung! Lernregeln: Hebb sche Lernregel Delta-Regel Backpropagation Verfahren (verwendete Lernregel) kompetitives Lernen 12

Gliederung 1. Grundidee 2. Objektverfolgung 3. Neuronale Netze 4. Implementierung des Netzes 4.1 Modellbildung 4.2 Backpropagation-Algorithmus 4.3 Implementierung 4.4 Probleme 5. Vorstellung der Ergebnisse 6. Ausblicke 13

4. Implementierung des Netzes 4.1 Modellbildung Genereller Aufbau: Bitmap Daten Eingangsneuronen: Schicht i Hidden-Neuronen: Schicht j F(net) Ausgangsneuronen: Schicht k float = pixel_value 255 F(net) Indizes ab hier i j k 14

4. Implementierung des Netzes 4.1 Modellbildung Modellbildung: Neuronenvektoren: Eingangsvektor Hiddenvektor Ausgangsvektor inputs[input_size] hidden[hidden_size] outputs[output_size] Gewichtsmatrizen: weights_ij [input_size][hidden_size] weights_jk [hidden_size][output_size] 15

4. Implementierung des Netzes 4.2 Backpropagation-Algorithmus Grundsätzliches: Ziel des Algorithmus ist es für bestimmte Eingangswerte (Lernvektoren) die Gewichte so anzupassen, dass ein gewünschter Ausgangswert erzeugt wird. Folglich Minimierung des Ausdrucks: Ausgangswert ist Ausgangswert soll Gewichtsanpassung propagiert vom Ausgang zum Eingang 16

4. Implementierung des Netzes 4.2 Backpropagation-Algorithmus Lernen erfolgt von der Ausgangsschicht in Richtung Eingangsschicht Gewichte werden inital zufällig mit Werten belegt (-0,5.0,5) Literaturvorgabe Anpassung der Gewichte mit den Formeln: w jk = η δ k O j w ij = η δ j O i θ j = η δ j Für x y mit: η: Schrittweite δ y : Ableitungsfaktor O x : Ausgangswert des Neurons x w xy : Gewichtsänderung von Neuron x in Richtung Neuron y 17

4. Implementierung des Netzes 4.2 Backpropagation-Algorithmus Berechnung von δ y Für ein Ausgangsneuron: δ k = O k (1 O k ) (O k t k ) Für ein Hiddenneuron: Mit: t k - Zielwert Minimierung von (O k t k ) δ j = O j 1 O j k K δ k wj k Ableitung der Sigmoid-Funktion: 1 1 (1 1 + e net+θ 1 + e net+θ) 18

4. Implementierung des Netzes 4.3 Implementierung in C++ for(int k = 0; k <= output_size - 1; k++){ delta_k[k] = outputs[k] * (1 - outputs[k]) * (outputs[k] - target[k]); } for(int j = 0; j <= hidden_size - 1; j++){ sum_d_w = 0; for(int k = 0; k <= output_size - 1; k++){ sum_d_w += delta_k[k] * weights_jk[j][k]; } delta_j[j] = hidden[j] * (1 - hidden[j]) * sum_d_w; } for(int k = 0; k <= output_size - 1; k++){ for(int j = 0; j <= hidden_size - 1; j++){ weights_jk[j][k] += -stepsize * delta_k[k] * hidden[j]; } } for(int j = 0; j <= hidden_size - 1; j++){ for(long int i = 0; i <= input_size- 1; i++){ weights_ij[i][j] += -stepsize * delta_j[j] * inputs[i]; } theta[j] += -stepsize * delta_j[j]; } CUDA 19

4. Implementierung des Netzes 4.3 Implementierung Abschätzung Eingangsgröße bei VGA-Auflösung: (Bsp.: 320 x 200 RGB) 320 x 200 x 3 = 192.000 Eingangsvektor: 192.000 Einträge Bei ca. 1 / 3 = Anzahl Hidden / Anzahl Eingänge (Richtwert) 64.000 Hidden-Neuronen 192.000 x 64.000 = 12.288.000.000 45,78 GB große Gewichtsmatrix (4 Byte float) Beschränkung der Hidden-Neuronen auf ca. 100 damit: 192.000 x 100 = 192.000.000 73,24 MB große Gewichtsmatrix 20

4. Implementierung des Netzes 4.3 Implementierung in CUDA global void adjust_weights(float *weights_i_o, float stepsize, float *delta_i_o, float *inputs, int width_max, long int height_max, size_t pitch) { } int idx = blockidx.x * blockdim.x + threadidx.x; int idy = blockidx.y * blockdim.y + threadidx.y; if ((idx < height_max) && (idy < width_max)){ long int index = idx * (pitch/sizeof(float)) + idy; weights_i_o[index] += -stepsize * delta_i_o[idy] * inputs[idx]; w xy = η δ y O x 21

4. Implementierung des Netzes 4.4 Probleme Netz lernte anfangs Bilder wiederzuerkennen aber Falschbilder nicht auszuschließen Lösung abwechselndes Lernen von Lernvektoren und Rauschen bei unterschiedlichen Outputs Ständiger Wechsel der Lernvektoren Häufige Aufrufe von cudamalloc() / cudamallocpitch() und cudamemcpy() / cudamemcpy2d() Bottleneck Geringe Anzahl an Hiddenneuronen kann u.u. zu schlechten Ergebnissen führen mehr Hiddenneuronen mehr Speicherverbrauch größere Ausführungszeit von cudamemcpy() Netz generell sensibel bzgl. der Parameter (zb. Zu große Schrittweite führt unweigerlich zu Oszillation) 22

Gliederung 1. Grundidee 2. Objektverfolgung 3. Neuronale Netze 4. Implementierung des Netzes 5. Vorstellung der Ergebnisse 5.1 Hardware 5.2 Messergebnisse 6. Ausblicke 23

5. Ergebnisse 5.1 Hardware CPU: Intel P6200 @2.13 GHz Intel Xeon E5640 @2.67 GHz AMD FX 8350 @4.0 GHz GPU: Tesla K20 2496 Stream Prozessoren 24

5. Ergebnisse 5.2 Messergebnisse Execution time in ms x1.625 Crossover Input_size K20 25

6. Ausblick Weitere Optimierungsmöglichkeiten Verlagerung aller Lerndaten in den GPU Speicher Portierung des gesamten Lernvorgangs, inklusive Lernvektorwechsel auf die GPU Gewichtmatrizen ebenfalls parallel anpassen, nicht wie bisher von Schicht zu Schicht Implementierung von Suchalgorithmen zur Objektverfolgung 26

Vielen Dank für ihre Aufmerksamkeit!