Wie entscheiden Sie sich beim Trainieren von neuronalen Netzen mit Pixelsegmentierung, wie z. B. vollständig faltungsorientierten Netzen, für die Verwendung der Funktion für den entropieübergreifenden Verlust im Vergleich zur Funktion für den Verlust des Würfelkoeffizienten?
Mir ist klar, dass dies eine kurze Frage ist, aber ich bin mir nicht sicher, welche anderen Informationen ich liefern soll. Ich habe mir eine ganze Reihe von Dokumentationen über die beiden Verlustfunktionen angesehen, kann aber nicht intuitiv nachvollziehen, wann eine über die andere zu verwenden ist.
neural-networks
loss-functions
cross-entropy
Christian
quelle
quelle
Antworten:
Ein zwingender Grund für die Verwendung der Kreuzentropie über dem Würfelkoeffizienten oder einer ähnlichen IoU-Metrik ist, dass die Gradienten besser sind.
Die Gradienten der Kreuzentropie in den Logs sind etwa , wobei die Softmax-Ausgaben und das Ziel sind. Wenn wir versuchen, den in einer differenzierbaren Form zu schreiben: oder , dann sind die resultierenden Gradienten bezüglich viel hässlicher : und . Man kann sich leicht einen Fall vorstellen, in dem sowohl als auch klein sind und der Gradient einen riesigen Wert erreicht. Im Allgemeinen ist es wahrscheinlich, dass das Training instabiler wird.p−t p t 2ptp2+t2 2ptp+t 2 t 2p 2t(t2-p2)2t2(p+t)2 pt2t(t2−p2)(p2+t2)2 p t
Der Hauptgrund, warum Menschen versuchen, den Würfelkoeffizienten oder die IoU direkt zu verwenden, ist, dass das eigentliche Ziel die Maximierung dieser Metriken ist und Cross-Entropy nur ein Proxy ist, der mit Backpropagation einfacher zu maximieren ist. Darüber hinaus ist der Würfelkoeffizient bei Problemen mit unausgeglichenen Klassen konstruktionsbedingt besser:
Das Klassenungleichgewicht wird jedoch in der Regel einfach dadurch behoben, dass jeder Klasse Verlustmultiplikatoren zugewiesen werden, so dass das Netzwerk stark davon abgehalten wird, eine Klasse, die selten auftritt, einfach zu ignorieren. Daher ist unklar, ob in diesen Fällen ein Würfelkoeffizient wirklich erforderlich ist.
Ich würde mit dem Kreuzentropieverlust beginnen, der der Standardverlust für Trainingssegmentierungsnetzwerke zu sein scheint, es sei denn, es gab einen wirklich zwingenden Grund, den Würfelkoeffizienten zu verwenden.
quelle
Wie @shimao und @cherub zusammenfassen, kann man apriori nicht sagen, welches für einen bestimmten Datensatz besser geeignet ist. Der richtige Weg ist, beides zu versuchen und die Ergebnisse zu vergleichen. Beachten Sie auch, dass es bei der Segmentierung nicht so einfach ist, "die Ergebnisse zu vergleichen" : IoU-basierte Maße wie der Würfelkoeffizient decken nur einige Aspekte der Qualität der Segmentierung ab; Bei einigen Anwendungen müssen andere Maße wie der mittlere Oberflächenabstand oder der Hausdorff-Oberflächenabstand verwendet werden. Wie Sie sehen, ist nicht einmal die Wahl der richtigen Qualitätsmetrik trivial, geschweige denn die Wahl der besten Kostenfunktion.
Ich persönlich habe sehr gute Erfahrungen mit dem Würfelkoeffizienten; Es ist wirklich wunderbar, wenn es um Klassenungleichgewichte geht (einige Segmente belegen weniger Pixel / Voxel als andere). Andererseits wird die Trainingsfehlerkurve zu einer totalen Verwirrung: Sie gab mir absolut keine Informationen über die Konvergenz, so dass in dieser Hinsicht die Kreuzentropie gewinnt. Natürlich kann / sollte dies umgangen werden, indem der Validierungsfehler trotzdem überprüft wird.
quelle