Was ist Self-Supervised Learning? Eine verständliche Definition

Self-Supervised Learning ist eine neue Art von Algorithmen im bereich der künstlichen Intelligenz. Damit wird das Vorgehen bezeichnet, dass aus den Daten automatisiert Labels generiert werden, um danach Aufgaben aus dem Bereich des überwachten Lernens durchzuführen. Die Vorteile umfassen unter anderem einen hoher Effizienzgewinn als auch Erhöhung der Qualitätsstandards.

Inhaltsverzeichnis

Definition von Self-Supervised Learning

Self-Supervised Learning, auf Deutsch „Selbst-Überwachtes Lernen“, bezeichnet ein Vorgehen bei dem ohne menschliches Zutun Machine Learning Labels für Überwachtes Lernen generiert werden. Konkret heisst dies, dass es eine Phase (“pretext”) vor dem eigentlichen Lernen (Training) gibt, bei dem der Input (z.B. Bilder) automatisch annotiert wird. Diese Labels können dann zum Training genutzt werden.

Die Idee dahinter ist, dass das Trainingsmaterial aus den vorhandenen Daten generiert werden kann, statt mühsam von Menschen erstellt werden muss. Besonders bei Data Science Anwendungsfällen mit sehr großer Datenmenge ist ein automatisches Labeling selbstverständlich sehr attraktiv. Self-Supervised Learning wird vor allem bei neuronalen Netzen bzw. Deep Learning eingesetzt, da diese sehr flexibel auf derartigen Input reagieren können.

Ein einfaches Beispiel kann im Bereich der natürlichen Sprachverarbeitung (NLP) gezeigt werden. Man nutzt als Input einen Satz, bei dem man ein Wort entfernt (Pretext). Ein neuronales Netz soll dann versuchen, dieses Wort vorherzusagen, welches als Output-Label mitgeliefert wird. Dadurch, dass wir vorab das Wort aus einem intakten Text entfernt haben, wissen wir selbstverständlich was die korrekte Antwort ist und dementsprechend trainieren.

Self-Service Learning nutzt um Labels zu generieren und diese dann am Gesamtdatensatz zu prüfen.
Self-Service Learning nutzt um Labels zu generieren und diese dann am Gesamtdatensatz zu prüfen.

Welche Vorteile bringt dieses Vorgehen?

Der wichtigste Vorteil von Self-Supervised Learning ist das Wegfallen von menschlichem Labeling. Das Erstellen von Machine Learning Labels kann bei großen Datenmengen oder schwierigen Datensätzen sehr aufwendig sein. Automatisierte Generierung von Annotationen direkt aus den vorliegenden Daten hilft dadurch sehr stark Aufwand, Zeit und Kosten zu sparen.

Weiterhin gibt es oft Probleme mit der Datenqualität, so Menschen Labels erstellen. Bei sinkender Datenqualität sinkt auch die Qualität der eingesetzten Algorithmen. Folglich reduziert selbst-überwachtes Lernen den Aufwand und damit auch implizit die Qualität.

Ein weiterer Vorteil von Self-Supervised Learning ist eine sehr hohe Flexibilität bei Veränderungen der Labels: Wenn automatisiert neue Labels erstellt werden können, kann auch der Trainingsvorgang viel flexibler gestaltet werden. 

Was ist der Unterschied von Self-Supervised Learning und Supervised Learning?

Damit überwachtes Lernen eingesetzt werden kann, müssen Labels bereitgestellt werden. Im Falle einer Regression (z.B. die Vorhersage von Umsatz) sind dies numerische Werte, im Falle einer Klassifikation (z.B. Bilder in “Ausschuss” und “Kein Ausschuss” ordnen) sind es Kategorien.

Diese Labels werden üblicherweise von Menschen generiert und an die anderen Daten angefügt. Dieser “Machine Learning Labeling” genannte Prozess ist sehr aufwendig und teilweise fehlerbehaftet. Self-Supervised Learning kürzt diesen Prozess ab indem es die Labels direkt aus den Daten generiert.

Was ist der Unterschied zwischen Self-Supervised Learning und Unsupervised Learning?

Unsupervised Learning (“unüberwachtes Lernen”) kommt ohne vorherige Labels aus und nutzt eine rein algorithmische Herangehensweise um Muster in Daten zu erkennen. Somit überlappt es mit Self-Supervised Learning insofern, dass es nicht auf die Annotierung von Menschen angewiesen ist; allerdings sind die Typen von Algorithmen (Regression, Klassifikation, ..) nicht mit klassischen unüberwachten Methoden zu erreichen.

Consistency Loss – besseres Training durch künstlich verschlechterten Input

Eine herkömmliche Vorgehensweise für bessere Ergebnisse von Machine Learning Modellen im Bereich Image Recognition ist “Noise adding”. Hierbei werden Input-Bilder mit “Verschlechterungen” versehen, wie zum Beispiel Pixel auf falsche Farbwerte gesetzt oder Belichtungsfilter konstruiert. Die Idee ist klar: Durch höhere Varianz des Inputs bei gleichem Output-Label generalisiert das Modell mehr. Dies führt zwar ggf. zu niedrigerer Trainingsgenauigkeit, aber gegebenenfalls zu besseren Ergebnissen in der realen Welt.

Das Gleiche Prinzip gibt es bei Self-Supervised Learning. Dort wird es entweder “consistency loss” (NLP) oder “noise contrastive estimation” (Vision) genannt. Methoden von Consistency Loss umfassen zum Beispiel das Löschen von Buchstaben, verdrehen von Wortpositionen, Veränderung der Farbbalance, Löschen von einzelnen Pixeln, Drehen des Bildes und viele mehr. 

Durch dieses Hinzufügen von Noise bei gleichbleibendem (selbst-generierten) Label erhöht man die Generalisierung der Modelle und somit die Leistung im realen Einsatz.

Beispiele für Self-Supervised Learning

Self-Supervised Learning findet breite Anwendung im Bereich Natural Language Processing (NLP)
Self-Supervised Learning findet breite Anwendung im Bereich Natural Language Processing (NLP)

Self-Supervised Learning im Bereich NLP (Natural Language Processing):

  • Vorhersage des nächsten Wortes: Im Pretext wird ein Wort entfernt und das entfernte Wort als Label für das Training genutzt.
  • Positionsbestimmung von Wörtern: Wörter werden aus dem Text entfernt und als Input genutzt, um die Position vorher zu sagen.
  • Wort oder Textverzerrung: Randomisierung von einzelnen Wörtern oder der Reihenfolge eines Textes.

Self-Supervised Learning im Bereich Vision / Image Processing:

  • Colorization / Einfärben: Die Bilder werden für das Training entfärbt, um dann die Farben vorher zu sagen.
  • Image patch positioning: Das Entfernen und die Vorhersage der Position eines Teils eines Bildes.
  • Inpainting / Löcher füllen: Lücken in Bildern füllen, indem man sie initial erzeugt (z.B. Pixelwerte auf Schwarz setzen).
  • Correct corrupt images: Verzerrungen, Verschwischungen oder Versatz innerhalb eines Bildes erzeugen und dann reparieren.

Self-Supervised Learning im Bereich Video:

  • Correct Order: Video-Frames (zurück) in die richtige Reihenfolge bringen.
  • Fill gaps: Einzelne Frames innerhalb eines Videos vorhersagen

Fazit zum Thema Self-Supervised Learning

Selbst-überwachtes Lernen beschreibt das Vorgehen, aus vorhandenen Stimulusmaterial algorithmisch Machine Learning Labels zu erzeugen, um ein Modell zu trainieren. Das Ziel ist die automatisierte Annotierung von Trainingsmaterial, um Aufwand und Qualitätsverluste zu vermeiden. Die Anwendungsgebiete befinden sich vor allem im Bereich Sprachverarbeitung (NLP), Bildverarbeitung und Videoverarbeitung.

Weitere Informationen und Artikel