OBJEKTERKENNUNG DURCH NEURONALE NETZE

Neuronale Netze lassen sich im Kontext der Informatik am besten als eine Form des „Machine Learnings“ beschreiben. Also, als IT-Systeme, die in der Lage sind, anhand von vorhandenen Datenbeständen und Algorithmen, Muster und Gesetzmäßigkeiten zu erkennen und Lösungen zu entwickeln.

Ein neuronales Netz besteht aus mehreren Schichten von Neuronen, die im Netz zusammen „arbeiten“. Der Aufbau der künstlichen Neuronen geschieht nach dem Vorbild von biologischen Nervenzellen im Gehirn. Ein Neuron erhält eine Eingabe von einer anderen Einheit. Diese Eingabe aktiviert das Neuron, abhängig vom Aktivitätslevel der Einheit, die sendet und der Gewichtung zwischen den beiden Neuronen. Die Stärke dieser beeinflussenden Faktoren wirkt sich entsprechend auf die Ausgabe aus, die das Neuron an nachgelagerte Knotenpunkte im neuronalen Netz abgibt.

Anwendungsfall Bilderkennung

Ein gutes Beispiel für die Funktionsweise neuronaler Netze ist die Bilderkennung: Ein Foto wird in das Netz eingespeist und ein Neuron erkennt dank Pixelfärbung zum Beispiel abgebildete Formen. In einem neuronalen Netz werden mehrere Neuronen integriert, die verschiedene Bestandteile der Daten „erkennen können“ und so zu einem Ergebnis kommen.

Dieses Ergebnis ist nicht zwangsläufig im ersten Durchlauf korrekt, sondern muss durch Trainingsdaten und Anpassungen verbessert werden. Auf diese Weise lernen neuronale Netze stetig hinzu. Fehler entstehen in Abhängigkeit von Kantengewichten und Bias. Sie können mit Hilfe der Methode des Gradientenabstiegs minimiert werden. Zusätzlich können Netzparameter mittels des Backpropagation Algorithmus für jedes einzelne Neuron angepasst werden.

Ein eigenes neuronales Netz trainieren

Im Rahmen eines komplexen Kundenprojekts nutzten wir das Open Source Framework „Tensorflow“ von Google für eine eigene Entwicklung. Die letzte Neuronenschicht des Netzes „Inception-v3“, welches ebenfalls von Google entwickelt wurde, wurde von uns re-trainiert, um es auf projektspezifische Bedürfnisse anzupassen.

Bereits gelerntes Wissen in den vorhergehenden Neuronen konnte somit genutzt und der Trainingsaufwand minimiert werden. Für das Training der von uns angepassten Schicht verwendeten wir Bildmaterial, das in Trainings- und Validierungsdaten unterteilt wurden. Innerhalb des Trainingsprozesses war insbesondere das sogenannte „Overfitting“ aufgrund von geringen Datenbeständen eine Herausforderung: Das neuronale Netz lernte in diesem Falle die Trainingsdaten auswendig und konnte keine zusätzliche Genauigkeit durch hinzukommende Trainingsschritte erreichen. Trotz dieser Einschränkung lag die Treffsicherheit des Netzes bei durchschnittlichen 95% und konnte unsere Projektarbeit hervorragend unterstützen.

Wir verfolgen mit großer Neugier die Themenwelt rund um Künstliche Intelligenz, neuronale Netze und Machine Learning und sehen viele Chancen für zukünftige Einsatzfelder. Gemeinsam mit unseren Kunden.