Seite drucken

Bachelorarbeit

Training rekurrenter neuronaler Netze als zwei Feedforward-Netze

Hintergrund

Künstliche neuronale Netze (KNNs) werden heute meist mit Backpropagation und Varianten von Stochastic Gradient Descent trainiert. Das Verfahren ist sehr erfolgreich bei Feedforward-Netzen (FFNN), bei denen Verbindungen zwischen Neuronen stets von der Eingabe in Richtung der Ausgabe verlaufen und es damit keine Zyklen gibt. Bei rekurrenten Netzen (RNNs) aus einfachen Neuronen findet Backpropagation dagegen oft keine gute Lösung. RNNs sind Netze bei denen Verbindungen zwischen Neuronen Zyklen haben. Diese Rückkopplungen erlauben es, einen Zustand zwischen zwei Berechnungen zu speichern. Damit können RNNs zeitliche Folgen von Werten als Eingaben verarbeiten.

Ein Beispiel für die Verarbeitung zeitlicher Folgen von Werten ist das optische Erkennen von Gesten mit denen Menschen Geräte steuern (z. B. Handbewegung links nach rechts). Das kann als kleines, preiswertes Modul realisiert werden, das einen Mikrocontroller und wenige Lichtsensoren enthält, die als eine Art Facettenauge genutzten werden. Aus den gemessenen Lichtstärken erkennt das RNN eine begrenzte Zahl von Gesten und signalisiert sie anderen Baugruppen des Gerätes über digitale Ausgänge. Eine geeignete Kamera mit äußerst geringer Auflösung (3x3 Pixel) und einem Adruino-Board als Verarbeitungs¬einheit wurde bereits entwickelt.

Im Institut für Telematik ist die Idee entwickelt worden, das RNN für die Gestenerkennung als zwei FFNNs zu trainieren. Dazu werden für die Gestenerkennung Zwischenergebnisse definiert (z. B. Hand kam von links oder Hand ist im aktuellen Bild über der linken Spalte). FFNN1 berechnet diese Zwischenergebnisse aus dem aktuellen Bild und den Zwischenergebnissen des vorherigen Bildes. FFNN2 erkennt aus dem Zwischenergebnis Gesten. Zum Training werden die Zwischenergebnisse und erkannte Gesten für Videosequenzen manuell für jedes Bild annotiert und damit FFNN1 und FFNN2 trainiert.

Ziele der Arbeit

Ziel der hier ausgeschriebenen Arbeit ist es zu untersuchen, ob und wie der beschriebene Ansatz zum Training eines RNNs zur Gestenerkennung als zwei FFNNs trainiert werden kann. Dazu müssen Trai-ningsdaten erfasst und Zwischenergebnisse annotiert werden. Es muss untersucht werden, ob und in welchen Fällen die Gestenerkennung wie zuverlässig möglich ist und welche Zwischenziele und zusätzliche Eingaben in FFNN1 dazu erforderlich sind. Die Gestenerkennung soll mit der Kamera für eine Steuerung von Präsentationsfolien praktisch demonstriert werden. Die Software soll in der Sprache Python mit der KNN-Bibliothek Keras implementiert werden.

Technologie Neuronale Netze, Python
Dokumente Flyer
Kontakt Dr. Marcus Venzke