Ich habe mich mit halbüberwachten Lernmethoden befasst und bin auf das Konzept der "Pseudo-Kennzeichnung" gestoßen.
So wie ich es verstehe, haben Sie mit Pseudo-Labeling eine Reihe von beschrifteten Daten sowie eine Reihe von unbeschrifteten Daten. Sie trainieren zunächst ein Modell nur mit den beschrifteten Daten. Sie verwenden diese Anfangsdaten dann, um die unbeschrifteten Daten zu klassifizieren (vorläufige Beschriftungen anzuhängen). Anschließend geben Sie sowohl die beschrifteten als auch die unbeschrifteten Daten in Ihr Modelltraining zurück und passen sie sowohl an die bekannten als auch an die vorhergesagten Etiketten (neu) an. (Wiederholen Sie diesen Vorgang und kennzeichnen Sie ihn erneut mit dem aktualisierten Modell.)
Die behaupteten Vorteile bestehen darin, dass Sie die Informationen über die Struktur der unbeschrifteten Daten verwenden können, um das Modell zu verbessern. Eine Variation der folgenden Abbildung wird häufig gezeigt, um zu "demonstrieren", dass der Prozess eine komplexere Entscheidungsgrenze basierend auf dem Ort der (unbeschrifteten) Daten festlegen kann.
Bild aus Wikimedia Commons von Techerin CC BY-SA 3.0
Ich kaufe diese vereinfachende Erklärung jedoch nicht ganz. Naiv, wenn das ursprüngliche Trainingsergebnis nur mit Beschriftung die obere Entscheidungsgrenze wäre, würden die Pseudo-Beschriftungen basierend auf dieser Entscheidungsgrenze zugewiesen. Das heißt, die linke Hand der oberen Kurve wäre pseudo-markiert weiß und die rechte Hand der unteren Kurve wäre pseudo-markiert schwarz. Sie würden die schöne geschwungene Entscheidungsgrenze nach der Umschulung nicht erhalten, da die neuen Pseudo-Labels einfach die aktuelle Entscheidungsgrenze verstärken würden.
Oder anders ausgedrückt, die derzeitige Entscheidungsgrenze nur für Beschriftungen hätte eine perfekte Vorhersagegenauigkeit für die unbeschrifteten Daten (wie wir sie verwendet haben). Es gibt keine treibende Kraft (kein Gradient), die dazu führen würde, dass wir den Ort dieser Entscheidungsgrenze ändern, indem wir einfach die pseudo-markierten Daten hinzufügen.
Habe ich Recht, wenn ich denke, dass die im Diagramm enthaltene Erklärung fehlt? Oder fehlt mir etwas? Wenn nicht, was ist der Vorteil von Pseudo-Labels, da die Entscheidungsgrenze vor der Umschulung eine perfekte Genauigkeit gegenüber den Pseudo-Labels aufweist?
Achtung, ich bin kein Experte für dieses Verfahren. Mein Versagen, gute Ergebnisse zu erzielen, ist kein Beweis dafür, dass die Technik nicht zum Funktionieren gebracht werden kann. Darüber hinaus enthält Ihr Bild die allgemeine Beschreibung des "halbüberwachten" Lernens, das ein weites Gebiet mit einer Vielzahl von Techniken darstellt.
Ich stimme Ihrer Intuition zu, ich sehe nicht, wie eine solche Technik sofort funktionieren könnte. Mit anderen Worten, ich denke, Sie würden viel Aufwand benötigen , damit es für eine bestimmte Anwendung gut funktioniert, und dieser Aufwand wäre in anderen Anwendungen nicht unbedingt hilfreich.
Ich habe zwei verschiedene Instanzen ausprobiert, eine mit einem bananenförmigen Datensatz wie dem im Beispielbild und einen weiteren einfacheren Datensatz mit zwei einfachen normalverteilten Clustern. In beiden Fällen konnte ich den anfänglichen Klassifikator nicht verbessern.
Als kleinen Versuch, Dinge zu fördern, fügte ich allen vorhergesagten Wahrscheinlichkeiten Rauschen hinzu, in der Hoffnung, dass dies zu besseren Ergebnissen führen würde.
Im ersten Beispiel habe ich das obige Bild so originalgetreu wie möglich neu erstellt. Ich glaube nicht, dass die Pseudo-Kennzeichnung hier überhaupt helfen kann.
Das zweite Beispiel ist viel einfacher, aber selbst hier kann es den anfänglichen Klassifikator nicht verbessern. Ich habe speziell den einen markierten Punkt aus der Mitte der linken Klasse und die rechte Seite der rechten Klasse ausgewählt, in der Hoffnung, dass er sich in die richtige Richtung verschieben würde, kein solches Glück.
Code zum Beispiel 1 (Beispiel 2 ist ähnlich genug, dass ich hier nicht duplizieren werde):
quelle
Hier ist meine Vermutung (ich weiß auch nicht viel über dieses Thema, wollte nur meine zwei Cent zu dieser Diskussion hinzufügen).
Ich denke, Sie haben Recht, es macht keinen Sinn, ein klassisches Modell zu trainieren und seine Vorhersagen als Daten zu verwenden, denn wie Sie sagen, gibt es für den Optimierer keinen Anreiz, es besser zu machen. Ich würde vermuten, dass randomisierte Startalgorithmen mit größerer Wahrscheinlichkeit dasselbe Optimum finden, da sie aufgrund des größeren Datensatzes "sicherer" wären, dass das zuvor gefundene Optimum korrekt ist, aber dies ist irrelevant.
Die erste Antwort, die Sie erhalten haben, hat einen Punkt - dieses Beispiel auf Wikipedia spricht von Clustering, und ich denke, das macht den Unterschied. Wenn Sie unbeschriftete Daten haben, haben Sie im Wesentlichen eine Reihe von unbeschrifteten Punkten, die auf einem gemeinsamen "latenten Merkmalsraum" liegen, wie die anderen beschrifteten. Sie können nur dann wirklich bessere Ergebnisse erzielen als ein Klassifizierungsalgorithmus, der auf den beschrifteten Daten trainiert wird, wenn Sie die Tatsache aufdecken können, dass die unbeschrifteten Punkte in diesem latenten Merkmalsraum getrennt und dann basierend auf der Klasse klassifiziert werden können, zu der die beschrifteten Punkte gehören.
Was ich meine ist, dass Sie dies tun müssen:
... und dann mit unbeschrifteten Daten wiederholen. Hier sind die erlernten Clustergrenzen nicht dieselben, da beim Clustering keine Klassenbeschriftungen berücksichtigt werden, sondern lediglich der Feature-Space transformiert wird. Das Clustering erzeugt einen latenten Merkmalsraum, an dem die Klassifizierungsgrenze gelernt wird, und dies hängt nur von beschrifteten Daten ab.
Ich glaube, Algorithmen, die keinerlei Clustering durchführen, können ihr Optimum basierend auf dem unbeschrifteten Datensatz nicht ändern.
Übrigens, das Bild, das Sie verlinkt haben, macht einen fairen Job. Ich denke daran zu erklären, was hier vor sich geht. Eine Entscheidungsgrenze wird ausschließlich basierend auf dem Clustering-Algorithmus gelernt. Sie haben keine Ahnung, welche Klassen hier richtig sind - es kann sein, dass sie alle zufällig sind - wir wissen es nicht. Jetzt können wir nur noch eine gewisse Struktur im Feature-Space und eine gewisse Zuordnung vom Feature-Space zu den Klassenbeschriftungen vornehmen.
Ich habe nicht wirklich Referenzen, aber in diesem Reddit-Beitrag gibt es , wie ich es verstehe, eine Diskussion über eine GAN, die halbüberwachtes Lernen durchführt. Es ist eine Vermutung von mir, dass es implizit ein Clustering durchführt, gefolgt von einer Klassifizierung.
quelle