Computer VisionMachine LearningTutorial

Data Augmentation – Was ist das?


Besonders im Machine Learning Feld, liest man öfter von einer Technik, die sich “Data Augmentation” nennt. Heute schauen wir uns an, was das ist und wofür diese Technik benutzt wird. Die Grundidee liegt darin, dass man mehr verschiedene Trainings-Daten generiert ohne dabei selbst Bilder mit der Kamera o.ä. machen zu müssen. Die Idee dahinter ist, dass je mehr Trainingsdaten, desto besser wird die Genauigkeit der trainierten Modelle. Stell dir vor du willst ein Deep Neural Network trainieren, sodass es Straßenschilder erkennt.

Der erste Schritt ist natürlich raus in die Wildnis zu gehen und Bilder von Straßenschildern zu machen. Aber selbst wenn man sehr ehrgeizig ist, kommt man wohl nur auf maximal 10.000 Bilder bei 40 verschiedenen Schildern sind das 250 Bilder pro Schild. Wenn man das mit großen Datensätzen vergleicht, wird man schnell sehen, dass 250 Bilder pro Klasse zwar ganz ordentlich sind aber nicht wirklich viel. Besonders für Deep Learning, da die Neuronalen Netze extrem datenhungrig sind.

Genau das ist der Zeitpunkt an dem Data Augmentation ins Spiel kommt. Data Augmentation verändert die originalen Bilder ein klein wenig. Die Änderungen sind zwar klein, damit man die Bilder nicht bis zur Unkenntlichkeit verändert, aber sie verbessern die Genauigkeit trotzdem enorm. Um nur einmal ein paar Veränderungen an Bildern aufzuzählen:

  • Random Noise: Addiere auf jedes Pixel einen kleinen zufälligen Wert
  • Gaussian Blur: Zeichne das Bild “weich” mit Gauss oder ähnlichen Kernel
  • JPEG Compression: Die JPEG-Kompression fügt zu dem Bild kleine “Fragmente” hinzu, die relativ charakteristisch für JPEG sind
  • Rotation: Das Bild ein bisschen drehen
  • Mirror: Das Bild spiegeln (Natürlich nur möglich, wenn das Bild keine “korrekte” Ausrichtung hat)
  • Crop: Extrahiere eine minimal kleinere Region aus dem Trainingsbild (und resize es auf original Größe, wenn nötig)
  • Contrast changes: Verändere den Kontrast im Bild
  • Elastic Deformation: Das Bild leicht “deformieren”

Es gibt viele Data Augmentation Techniken und eine einfache Daumenregel ist dabei: Je mehr verschiedene Techniken benutzt werden, desto besser ist die Genauigkeit
Selbstverständlich ist das nur eine Daumenregel, aber im Allgemeinen verbessert Data Augmentation die Genauigkeit der Modelle um ein paar Prozentpunkte. Der Grund für die höhere Genauigkeit der Modelle, nachdem man Data Augmentation benutzt hat, liegt darin, dass die Technik Overfitting bekämpft. Overfitting ist ein großes Problem bei Deep Learning. Aus diesem Grund bietet jedes größere Deep Learning Framework standard Data Augmentation Techniken an.

Im Anschluss noch ein paar Beispiele, um einmal zu sehen wie groß die angewandten Änderungen tatsächlich in der Regel sind.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.