Wie gelingt es mit Deep Learning und neuronalen Netzen zuverlässig die richtigen Ergebnisse zu finden? Wir schauen uns in Zusammenarbeit mit unserem KI-Experten Wolfgang Andris Funktionsweise, Anpassung und Training der Algorithmen einmal genauer an. 

 

Gerade die Vorbereitung neuronaler Netze auf ihren Einsatz stellt Anwender häufig vor ein Problem: Damit die Algorithmen zuverlässig Bilder erkennen, benötigen sie eine Vorbereitung auf ihre Aufgabe. Dafür ist ein ausreichend großes und gut identifizierbares Trainingsset notwendig, an dem sich die neuronalen Netze abarbeiten und perfektionieren können. Nur wenn sie dieses Training erfolgreich abschließen, kann die eigentliche Aufgabe zufriedenstellend gelöst werden.

Doch wie genau funktioniert der Prozess des Deep Learnings für die Bildverarbeitung eigentlich? Das möchten wir uns heute einmal genauer anschauen…

 

Vortrainierte Netze helfen, Deep Learning wirtschaftlich einzusetzen

Bilder verfügen heute über Unmengen an Informationen. Bereits eine Kamera mit einem Megapixel entpuppt sich auf Entwicklungsebene als eine Million Zahlen. Diese Masse an Daten können heutige Deep Learning Algorithmen glücklicherweise problemlos bewältigen: Klassifizierung, Objekterkennung und Segmentierung zählen hier zu den Standard-Anwendungen für die Bildverarbeitung. Für alle Bereiche gibt es gut funktionierende Modelle, Bibliotheken sowie vortrainierte Netze. Letztere helfen, die Trainingsdauer eines eigenen neuronalen Netzes zu verkürzen.

Die Fach-Community ist hier glücklicherweise sehr um Austausch und Verbesserung bemüht. So gibt es für Klassifizierungsaufgaben beispielsweise die jährliche ILSVRC – die ImageNet Large Scale Visual Recognition Challenge. Bei diesem internationalen Wettbewerb und seinen Nachfolgern auf der Data Science Community Kaggle treten neu entwickelte neuronale Netze gegeneinander an. Häufig entstammen sie sehr großen Unternehmen oder universitären Arbeitsgruppen, da die Entwicklung und das (Vor-)Training der Netze einen immensen Aufwand bedeuten.

Die ILSVRC oder vergleichbare Wettbewerbe helfen zu entscheiden, auf welches neuronale Netz und welche Ansätze die eigene Weiter- oder Produktentwicklung aufsetzen soll. Gerade kleinere KI-Teams reduzieren so ihr Risiko, da sie auf eine erprobte Grundlage setzen können. Gleichzeitig erhöhen sie ihre Entwicklungsgeschwindigkeit. Das bedeutet jedoch keineswegs, dass dahinter keine weitere Entwicklung steht – der Teufel steckt bekanntlich im Detail. Auch die Gewinner der Challenges müssen auf die aufgabenspezifischen Bedingungen angepasst und ggf. erweitert werden.

 

Kein Training ohne Datensatz

Zuvor ist ein eigenes Datenset notwendig, auf das der zukünftige Einsatz basieren soll. Dafür müssen zunächst einzelne Klassen für das neuronale Netz festgelegt werden. Diese Klassen spiegeln jeweils die Feststellung IO/ NIO (In Ordnung/ Nicht in Ordnung) wider. Für eine Objekterkennung oder bei mehreren Fehleroptionen ist es möglich, zusätzliche NIO-Klassen zu vergeben – etwa NIO/Kratzer, NIO/Schmauchspur. Dafür „teilt“ die KI eine Bildaufnahme in mehrere Teilabschnitte. Diese können daraufhin eindeutig klassifiziert werden.

Wie der Begriff Netz nahelegt, sind alle Informationen über unzählige interne Parameter (auch: Gewichte) untereinander vernetzt. In den Werten dieser Gewichte verbergen sich die Eigenschaften der Trainingsbilder. Daher ist ein aufgabenbezogenes Training auch so wichtig – nur so passen die Gewichte auch zu neuen Daten. Wofür genau ein konkretes Gewicht steht, geht aus einem neuronalen Netz jedoch nicht hervor.

Doch wie weiß die KI, dass sie zu korrekten Ergebnissen kommt? Dabei helfen sog. Label, die manuell für ein Trainingsset vergeben werden müssen. Hierbei handelt es sich um die tatsächlichen Klassen der aufgenommenen Bilder. Sie werden deswegen auch ground truth (Grundwahrheit) genannt. In einem gut trainierten neuronalen Netz stimmen alle vorausgesagten Klassen mit den Labeln überein. Ist dies noch nicht der Fall, wird sich das neuronale Netz selbstständig justieren.

Diese Anpassung geschieht über die Änderung der internen Parameter des neuronalen Netzes: Wird ein Bild falsch klassifiziert, wird über einen Backpropagation-Algorithmus berechnet, welche Gewichte für die falsche Klassifizierung „verantwortlich“ sind. Diese werden daraufhin so angepasst, dass dasselbe Bild beim nächsten Durchgang besser klassifiziert wird. So wird das Netz im Laufe des Trainings auf den vorhandenen Datensatz optimiert.

 

Wie kann sichergestellt werden, dass das Modell in der Praxis zuverlässig funktioniert?

Was zunächst einmal nach einer erfolgreichen Methode zur Optimierung der Ergebnisse klingt, führt in der Praxis hin und wieder zu Problemen. Schuld ist die Tatsache, dass das neuronale Netz für das Training nur ein begrenztes Datenset zur Verfügung hat. An dieses kann es sich durch wiederholte Durchläufe maximal anpassen. Schnell schießt das System dann über sein Ziel heraus – und die KI erzielt für neue Daten schlechtere Ergebnisse als während des Trainings. Dieses Phänomen nennt sich overfitting. Entwickler vermeiden das neben sog. Methoden zur Regularisierung durch eine Aufteilung des zur Verfügung stehenden Datensets:

  • 70 % für das Training des neuronalen Netzes
  • 15 % um Trainingsdaten nach jeder Epoche zu validieren und zu prüfen, ob bereits overfitting stattgefunden hat.
  • 15 % für das finale Testing auf gänzlich unbekannten Daten. Entsprechend sollte dieses für ein Training nur ein einziges Mal durchgeführt werden.

Auf diese Weise lässt sich sicherstellen, dass ein neuronales Netz auf unbekannten Daten möglichst gut funktioniert.

 

Wie viele Testteile benötigt Deep Learning?

Diese Frage lässt sich nicht letztgültig beantworten, da viele Faktoren wie Komplexität der Erkennungsaufgaben, Abweichungen, Aufnahmequalität usw. hineinspielen. Doch mit zwei Faustregeln können Sie den Aufwand für eine Deep Learning Applikation abschätzen:

  1. Ca. 25 Teile für einen erfolgreichen Proof of Concept.
  2. 100 Teile, um eine industrielle Nutzung auf dem Shopfloor umzusetzen.

Was zunächst nach viel klingt, kommt jedoch schnell zustande, wenn die Aufnahme dieser Testdaten in die bisherige Objektprüfung eingebettet wird. So können Mitarbeiter an Prüfständen, die eine Sichtkontrolle vornehmen, Teile unkompliziert vor ein Aufnahmegerät halten und per Software als IO/NIO kennzeichnen. Für eine präzise Verortung eines Defekts kann zusätzlich ein Begrenzungsgrahmen (bounding box) festgelegt werden. Alternativ kann auch ein Roboter ausgelistete Teile greifen und der Kamera präsentieren. So ergibt sich in kürzester Zeit eine valide Datenbasis.

Ist das Netz trainiert, kann es erfolgreich in den industriellen Einsatz starten. Über die Zeit hinweg entgeht dem neuronalen Netz möglicherweise noch das ein oder andere Werkstück. Diese (oder deren Aufnahmen) können zu einem späteren Zeitpunkt für ein sog. Nachtraining genutzt werden. Die Vorgehensweise ist dabei dieselbe wie bei den Training zuvor – jedoch mit einem Vorteil: Das Netz kennt sich bereits aus und erzielt durch die zusätzlichen Informationen zukünftig eine noch höhere Trefferquote.