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−tpt2ptp2+t22ptp+t2 t 2p 2t(t2-p2)2t2(p+t)2 pt2t(t2−p2)(p2+t2)2pt
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.