Was fehlt in der folgenden Implementierung von Curriculum Learning in einem tiefen neuronalen Netz?


7

Zunächst haben wir eine Klassifizierungsaufgabe.
Daher verwenden wir zur Klassifizierung die typische Softmax-Kreuzentropie.

Die derzeitige Implementierung des Lehrplanlernens ist wie folgt.

  • Zuerst trainieren wir unsere beste Version des neuronalen Netzes
  • In der letzten Epoche erhalten wir alle Kreuzentropien für alle Instanzen. So werden kleinere Kreuzentropien besser klassifiziert und größere nicht so gut.
  • Dann sortieren wir die Instanzen basierend auf den Kreuzentropien.
  • Dann fangen wir an, die Instanzen von einfacher zu schwieriger zu trainieren, wie es die Theorie des Lehrplanlernens vorschlägt

Beachten Sie, dass wir bereits mit verschiedenen Schritten und Wiederholungen experimentiert haben. In einem Beispiel haben wir die ersten 200 Chargen genommen und sie zweimal trainiert, bevor wir zur nächsten Charge übergingen und so weiter, bis eine Epoche abgeschlossen ist.
In einem anderen Beispiel haben wir die ersten 10 Chargen genommen und sie nur einmal trainiert und dann die nächsten 10 und die nächsten 10 und so weiter bis zum Ende der Epoche.

Alle bisherigen Experimente haben ergeben, dass das neuronale Netzwerk zu Beginn eine relativ gute Genauigkeit aufweist, und dies verschlechtert sich, wenn die schwierigeren Instanzen auftreten. Die endgültige Genauigkeit ist viel schlechter als erwartet und außerdem ist die maximale Genauigkeit immer noch ziemlich schlecht.

Warum funktioniert dieses Lehrplanlernen nicht? Fehlt etwas?


1
Nach meiner Erfahrung mit ähnlichen Dingen für Kaggle-Wettbewerbe funktioniert dieser Ansatz mit neuronalen Netzen überhaupt nicht gut. Ich denke, dies liegt teilweise daran, dass der Lehrplan durch das definiert wird, was vom Netzwerk leicht / schwer anzupassen ist, im Gegensatz zu dem, was konzeptionell leicht / schwer zu handhaben ist. Neben den wirklich schwierigen Elementen speichern Sie die schlimmsten verrauschten / falschen Daten, die am Ende eingegeben werden müssen. Ich weiß jedoch fast nicht genug über dieses Thema, um eine Antwort zu geben. . .
Neil Slater

Vielen Dank für Ihre Antwort. Sie spezifizieren also neuronale Netze. Haben Sie in anderen Fällen gesehen, wie das Lernen von Lehrplänen funktioniert?
George Pligoropoulos

1
Nein, habe ich nicht. Ich habe im Grunde den gleichen Ansatz versucht, den Sie in der Frage skizziert haben, und ein paar Mal ähnliche Ergebnisse erzielt.
Neil Slater

Antworten:


5

Sie benötigen viel mehr Informationen, um herauszufinden, was hier vor sich geht. Einige Möglichkeiten umfassen:

  • Ihre "harten" Beispiele sind eigentlich nicht lernbar. Sie können dies überprüfen, indem Sie prüfen, ob Sie die harten Beispiele mindestens überanpassen können und ob Sie als Mensch die harten Beispiele korrekt kennzeichnen können.

  • Ihr Netzwerk ist nicht groß genug, um die harten Beispiele zu lernen. Das heißt, Sie sind sicher, dass die harten Beispiele gelernt werden können. Es ist nur so, dass das Netzwerk nicht komplex genug ist, um dies zu tun. Sie können dies erneut überprüfen, indem Sie feststellen, ob Sie als Mensch in der Lage sind, die richtigen Bezeichnungen für die harten Instanzen herauszufinden.

  • Ihr Lehrplan Lernen kann tatsächlich das Training schaden. Am Ende des Trainings sieht Ihr Netzwerk nur Beispiele, mit denen es am meisten Probleme hat. Diese Beispiele verursachen die größten Änderungen im Netzwerk, und es kann zu einer kurzfristigen Gradientenexplosion kommen. Sie können überprüfen, ob dies geschieht, indem Sie am Ende des Trainings an den harten Beispielen feststellen, ob Sie bei "einfachen" Beispielen eine deutlich schlechtere Leistung erzielen. Eine Lösung könnte darin bestehen, das Trainingsset nach dem Sortieren nach Schwierigkeitsgrad langsam zu erweitern. Wenn Sie also 10.000 einfache Beispiele und 10.000 harte Beispiele haben, trainieren Sie mit 10.000 einfachen + 1.000 harten Beispielen, bis Sie mit der Netzwerkleistung zufrieden sind, und erweitern Sie dann den Trainingssatz, indem Sie die nächsten 1.000 schwierigsten hinzufügen.


Wir haben versucht, den Lehrplanschritt auf ein niedriges Niveau zu bringen, aber immer noch keine bemerkenswerten Ergebnisse. Nach diesem Ansatz besteht das neue Ziel darin, das neuronale Netzwerk auf jeder Lehrplanebene zu optimieren, um die besten Ergebnisse zu erzielen. Dies würde eine Anpassung der Hyperparameter (L2-Regularisierungsfaktor und Dropout-Keep-Wahrscheinlichkeiten) auf jeder Lehrplanebene erfordern! Wir kennen keine Möglichkeiten, dies effizient / automatisch zu tun.
George Pligoropoulos
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.