Halbüberwachtes Lernen erklärt

In seinem Amazon-Aktionärsbrief 2017 schrieb Jeff Bezos etwas Interessantes über Alexa, den sprachgesteuerten intelligenten Assistenten von Amazon:

In den USA, Großbritannien und Deutschland haben wir das Sprachverständnis von Alexa in den letzten 12 Monaten um mehr als 25% verbessert, indem wir die maschinellen Lernkomponenten von Alexa verbessert und halbüberwachte Lerntechniken eingesetzt haben. (Diese halbüberwachten Lerntechniken reduzierten die Menge der gekennzeichneten Daten, die erforderlich sind, um die gleiche Genauigkeitsverbesserung zu erzielen, um das 40-fache!)

Angesichts dieser Ergebnisse könnte es interessant sein, halbüberwachtes Lernen zu unseren eigenen Klassifizierungsproblemen zu versuchen. Aber was ist halbüberwachtes Lernen? Was sind ihre Vor- und Nachteile? Wie können wir es benutzen?

Was ist halbüberwachtes Lernen?

Wie Sie vielleicht vom Namen erwarten, liegt halbüberwachtes Lernen zwischen überwachtem Lernen und unbeaufsichtigtem Lernen. Überwachtes Lernen beginnt mit Trainingsdaten, die mit den richtigen Antworten (Zielwerten) versehen sind. Nach dem Lernprozess erhalten Sie ein Modell mit einem abgestimmten Satz von Gewichten, das Antworten auf ähnliche Daten vorhersagen kann, die noch nicht markiert wurden.

Beim halbüberwachten Lernen werden sowohl getaggte als auch nicht getaggte Daten verwendet, um ein Modell anzupassen. In einigen Fällen, z. B. bei Alexa, verbessert das Hinzufügen der Daten ohne Tags die Genauigkeit des Modells. In anderen Fällen können die Daten ohne Tags das Modell verschlechtern. Verschiedene Algorithmen weisen Schwachstellen für unterschiedliche Dateneigenschaften auf, wie nachstehend erläutert wird.

Das Markieren von Daten kostet im Allgemeinen Geld und kostet Zeit. Dies ist nicht immer ein Problem, da einige Datensätze bereits Tags enthalten. Wenn Sie jedoch viele Daten haben, von denen nur einige markiert sind, ist halbüberwachtes Lernen eine gute Technik, um es zu versuchen.

Halbüberwachte Lernalgorithmen

Das halbüberwachte Lernen reicht mindestens 15 Jahre zurück, möglicherweise mehr. Jerry Zhu von der University of Wisconsin hat 2005 eine Literaturumfrage verfasst. Das halbüberwachte Lernen hat in den letzten Jahren nicht nur bei Amazon wieder zugenommen, da es die Fehlerrate bei wichtigen Benchmarks verringert.

Sebastian Ruder von DeepMind schrieb im April 2018 einen Blog-Beitrag über einige der halbüberwachten Lernalgorithmen, die Proxy-Labels erstellen. Dazu gehören Selbsttraining, Lernen mit mehreren Ansichten und Selbstsemblierung.

Beim Selbsttraining werden die eigenen Vorhersagen eines Modells für unbeschriftete Daten verwendet, um sie dem beschrifteten Datensatz hinzuzufügen. Sie legen im Wesentlichen einen Schwellenwert für das Konfidenzniveau einer Vorhersage fest, häufig 0,5 oder höher, über dem Sie der Vorhersage glauben, und fügen ihn dem beschrifteten Datensatz hinzu. Sie trainieren das Modell so lange neu, bis keine aussagekräftigen Vorhersagen mehr vorliegen.

Dies wirft die Frage nach dem tatsächlichen Modell auf, das für das Training verwendet werden soll. Wie beim meisten maschinellen Lernen möchten Sie wahrscheinlich jedes vernünftige Kandidatenmodell ausprobieren, in der Hoffnung, eines zu finden, das gut funktioniert.

Selbsttraining hatte gemischte Erfolge. Der größte Fehler besteht darin, dass das Modell seine eigenen Fehler nicht korrigieren kann: Eine hochsichere (aber falsche) Vorhersage beispielsweise eines Ausreißers kann das gesamte Modell beschädigen.

Das Multi-View-Training trainiert verschiedene Modelle in verschiedenen Ansichten der Daten, die unterschiedliche Funktionssätze, unterschiedliche Modellarchitekturen oder unterschiedliche Teilmengen der Daten enthalten können. Es gibt eine Reihe von Multi-View-Trainingsalgorithmen, aber einer der bekanntesten ist das Tri-Training. Im Wesentlichen erstellen Sie drei verschiedene Modelle. Jedes Mal, wenn sich zwei Modelle auf die Bezeichnung eines Datenpunkts einigen, wird diese Bezeichnung dem dritten Modell hinzugefügt. Wie beim Selbsttraining hören Sie auf, wenn keinem der Modelle weitere Etiketten hinzugefügt werden.

Bei der Selbstsemblierung wird normalerweise ein einzelnes Modell mit mehreren unterschiedlichen Konfigurationen verwendet. Bei der Kontaktplannetzwerkmethode wird die Vorhersage eines sauberen Beispiels als Proxy-Label für ein zufällig gestörtes Beispiel verwendet, um Merkmale zu entwickeln, die gegenüber Rauschen robust sind.

Das Tutorial 2007 von Jerry Zhu berücksichtigt auch eine Reihe anderer Algorithmen. Dazu gehören generative Modelle (z. B. solche, die für jede Klasse eine Gaußsche Verteilung annehmen), halbüberwachte Support-Vektor-Maschinen und graphbasierte Algorithmen.

Halbüberwachtes Lernen in der Cloud

Halbüberwachtes Lernen hält langsam Einzug in die gängigen Dienste für maschinelles Lernen. Beispielsweise verwendet Amazon SageMaker Ground Truth Amazon Mechanical Turk für die manuelle Kennzeichnung und Grenzbestimmung eines Teils eines Bildsatzes und verwendet ein neuronales Netzwerktraining, um den Rest des Bildsatzes zu kennzeichnen.

Ähnliche halbüberwachte Lernschemata können für andere Arten des halbüberwachten Lernens verwendet werden, einschließlich der Verarbeitung natürlicher Sprache, der Klassifizierung und der Regression mehrerer Dienste. Bei den meisten von ihnen müssen Sie jedoch Ihren eigenen Klebercode für den halbüberwachten Algorithmus schreiben.

- -

Lesen Sie mehr über maschinelles Lernen: 

  • Maschinelles Lernen erklärt
  • Deep Learning erklärt
  • Verarbeitung natürlicher Sprache erklärt
  • Betreutes Lernen erklärt
  • Unbeaufsichtigtes Lernen erklärt
  • Halbüberwachtes Lernen erklärt
  • Verstärkungslernen erklärt
  • Automatisiertes maschinelles Lernen oder AutoML erklärt
  • KI, maschinelles Lernen und tiefes Lernen: Alles, was Sie wissen müssen
  • Die besten Rahmenbedingungen für maschinelles Lernen und tiefes Lernen
  • 6 Möglichkeiten, maschinelles Lernen zum Scheitern zu bringen
  • Lektionen zum maschinellen Lernen: 5 Unternehmen teilen ihre Fehler
  • Die beste Open Source Software für maschinelles Lernen
  • Die 5 besten Programmiersprachen für die KI-Entwicklung