Seite drucken

Forschungsprojekt und Seminar

Trainieren von neuronalen Netzen mit Partikelschwarmoptimierung

Hintergrund

Künstliche neuronale Netze (KNNs) werden heute meist mit Backpropagation und Varianten von Stochastic Gradient Descent trainiert. Das Verfahren hat den Vorteil, dass es eine geringe Komplexität hat. Daher können auch für große KNNs und viele Trainingsdaten in vertretbarer Zeit geeignete Parameter (Gewichte und Biasse) des KNNs gefunden werden. Diese enthalten das „Wissen“ des KNNs. Backpropagation ist der Schlüsselalgorithmus, der KNNs heute erfolgreich macht.

Backpropagation scheitert allerdings häufig am Training von Rekurrenten Netzen (RNNs). Das sind Netze, bei denen Neuronen nicht nur mit Kanten von den Eingabeknoten in Richtung der Ausgabenknoten verbunden sind, sondern auch in entgegengesetzter Richtung. Ein Beispiel ist ein Elman Netz. Dort berechnen alle Neuronen der mittleren Schicht ihr Ergebnis nicht nur aus dem Ergebnis der vorherigen Schicht, sondern auch aus den Ergebnissen der gleichen Schicht im vorherigen Verarbeitungsschritt. Durch diese Rückkopplung sind RNNs in der Lage, zeitliche Folgen von Werten als Eingaben zu verarbeiten oder solche Folgen zu erzeugen.

Ziele der Arbeit

Ziel der hier ausgeschriebenen Arbeit ist es zu untersuchen, ob und wie sich KNNs und insbesondere RNNs – statt mit Backpropagation – mit dem heuristischen Optimierungsverfahren Partikelschwarmoptimierung (PSO) trainieren lassen. Dazu werden mit PSO die Parameter des RNNs gesucht, mit denen das RNN aus den Trainingsdaten möglichst genau die erwarteten Ausgaben berechnet. Als Anwendung soll ein RNN trainiert werden, das bestimmt, ob ein Mensch sitzt, geht, läuft, hüpft oder eine Treppe steigt oder herab geht. Dem RNN stehen dazu als Eingabe die Beträge der Beschleunigungswerte eines Beschleunigungssensors zur Verfügung. Eine Hardware zum Erfassen von Beschleunigungswerten als Trainingsdaten wurde bereits auf Basis eines Adruino-Boards entwickelt. In der Arbeit sollen soweit möglich fertige Bibliotheken für KNNs (Keras) und PSO für die Sprache Python eingesetzt werden.

Technologie Neuronale Netze, Partikelschwarmoptimierung (PSO), Python
Voraussetzungen Kenntnisse in neuronale Netzen und/oder Partikelschwarmoptimierung
Kontakt Dr. Marcus Venzke