Ich versuche, ein neuronales Netzwerk für die Klassifizierung zu trainieren, aber die Beschriftungen, die ich habe, sind ziemlich laut (ungefähr 30% der Beschriftungen sind falsch).
Der Kreuzentropieverlust funktioniert zwar, aber ich habe mich gefragt, ob es in diesem Fall Alternativen gibt, die effektiver sind. oder ist der Kreuzentropieverlust das Optimum?
Ich bin mir nicht sicher, aber ich denke darüber nach, den Kreuzentropieverlust etwas zu "beschneiden", so dass der Verlust für einen Datenpunkt nicht größer als eine Obergrenze ist. Funktioniert das?
Vielen Dank!
Update
Nach Lucas 'Antwort habe ich für die Ableitungen für die Vorhersageausgabe und die Eingabe der Softmax-Funktion Folgendes erhalten . Ich denke also, dass es im Wesentlichen einen Glättungsterm zu den Ableitungen hinzufügt .
Ableitungen für den ursprünglichen Kreuzentropieverlust:
Update
Ich habe gerade einen Artikel von Google gelesen , der dieselbe Formel wie in Lucas 'Antwort verwendet, jedoch unterschiedliche Interpretationen aufweist.
In Abschnitt 7 Modellregularisierung über Label Smoothing
Dies (der Kreuzentropieverlust) kann jedoch zwei Probleme verursachen. Erstens kann dies zu einer Überanpassung führen: Wenn das Modell lernt, dem Groundtruth-Label für jedes Trainingsbeispiel die volle Wahrscheinlichkeit zuzuweisen, kann keine Verallgemeinerung garantiert werden. Zweitens werden die Unterschiede zwischen dem größten Logit und allen anderen groß, und dies verringert in Kombination mit dem begrenzten Gradienten die Anpassungsfähigkeit des Modells. Intuitiv geschieht dies, weil das Modell hinsichtlich seiner Vorhersagen zu sicher wird.
Aber anstatt den Vorhersagen den Glättungsbegriff hinzuzufügen, fügten sie ihn der Grundwahrheit hinzu , was sich als hilfreich herausstellte.
In unseren ImageNet-Experimenten mit K = 1000 Klassen haben wir u (k) = 1/1000 und = 0,1 verwendet. Für ILSVRC 2012 haben wir eine konsistente Verbesserung von etwa 0,2% absolut sowohl für den Top-1-Fehler als auch für den Top-5-Fehler festgestellt.