Una razón convincente para usar la entropía cruzada sobre el coeficiente de dados o la métrica similar de IoU es que los gradientes son más agradables.
Los gradientes de la entropía cruzada wrt los logits es algo así como , donde es la salida softmax es el objetivo. Mientras tanto, si tratamos de escribir el coeficiente de dados en una forma diferenciable: o , entonces los gradientes resultantes wrt son mucho más feos : y . Es fácil imaginar un caso en el que tanto como sean pequeños, y el gradiente explote a un valor enorme. En general, parece probable que el entrenamiento se vuelva más inestable.p t 2 p tp - tpagst 2pt2 p tpags2+ t2 p2t22 p tp + tpags 2t(t2-p2)2 t2( p + t )2 pt2 t ( t2- p2)( p2+ t2)2pagst
La razón principal por la que las personas intentan usar el coeficiente de dados o IoU directamente es que el objetivo real es maximizar esas métricas, y la entropía cruzada es solo un proxy que es más fácil de maximizar usando la propagación hacia atrás. Además, el coeficiente de dados funciona mejor en problemas de desequilibrio de clase por diseño:
Sin embargo, el desequilibrio de clase generalmente se soluciona simplemente asignando multiplicadores de pérdida a cada clase, de modo que la red está altamente desincentivada para simplemente ignorar una clase que aparece con poca frecuencia, por lo que no está claro que el coeficiente de dados sea realmente necesario en estos casos.
Comenzaría con la pérdida de entropía cruzada, que parece ser la pérdida estándar para entrenar redes de segmentación, a menos que haya una razón realmente convincente para usar el coeficiente Dice.