Uma razão convincente para o uso da entropia cruzada sobre o coeficiente de dados ou a métrica semelhante de IoU é que os gradientes são mais agradáveis.
Os gradientes de cross-entropia wrt os logitos é algo como , onde p representa as saídas SoftMax e t é o alvo. Enquanto isso, se tentarmos escrever o coeficiente de dados de uma forma diferenciável: 2 p tp - tpt ou2pt2 p tp2+ t2 , os gradientes resultantes wrtpsão muito mais feios:2t22 p tp + tp e2t(t2-p2)2 t2( p + t )2 . É fácil imaginar um caso em quepetsão pequenos e o gradiente explode para um valor enorme. Em geral, parece provável que o treinamento se torne mais instável.2 t ( t2- p2)( p2+ t2)2pt
A principal razão pela qual as pessoas tentam usar o coeficiente de dados ou IoU diretamente é que o objetivo real é a maximização dessas métricas, e a entropia cruzada é apenas um proxy mais fácil de maximizar usando a retropropagação. Além disso, o coeficiente de dados tem um desempenho melhor em problemas de desequilíbrio de classe por design:
No entanto, o desequilíbrio de classe normalmente é resolvido simplesmente com a atribuição de multiplicadores de perda para cada classe, de modo que a rede é altamente desincentivada para simplesmente ignorar uma classe que aparece com pouca frequência, portanto, não está claro que o coeficiente de dados seja realmente necessário nesses casos.
Eu começaria com a perda de entropia cruzada, que parece ser a perda padrão para o treinamento de redes de segmentação, a menos que haja uma razão realmente convincente para usar o coeficiente de dados.