O que é a perda de Dice e por que ela costuma ser melhor que BCE para segmentação médica?
sobes.tech IA
Resposta da IA
Dice Loss — é uma função de perda baseada no coeficiente de Dice, que mede a similaridade entre dois conjuntos (por exemplo, uma máscara prevista e uma máscara verdadeira numa tarefa de segmentação).
O coeficiente de Dice é definido como:
[ Dice = \frac{2 |A \cap B|}{|A| + |B|} ]
onde A é a região prevista, B é a região verdadeira.
Dice Loss é geralmente definida como 1 - Dice, para minimizar a discrepância entre a previsão e a verdade.
Por que o Dice Loss é melhor que a Entropia Cruzada Binária (BCE) para segmentação médica:
-
Resistência a classes desbalanceadas: Na segmentação médica, a área de interesse (por exemplo, um tumor) costuma ser muito pequena em comparação com o fundo. BCE pode ser tendenciosa para a maioria (fundo), enquanto o Dice Loss foca na sobreposição e lida melhor com classes raras.
-
Otimização direta da métrica de qualidade: Dice Loss otimiza diretamente a métrica frequentemente usada para avaliar a qualidade da segmentação, melhorando os resultados finais.
-
Suavidade e diferenciabilidade: Dice Loss pode ser diferenciada e usada em métodos de treinamento por gradiente.
Exemplo de fórmula de Dice Loss para previsões p e etiquetas verdadeiras g:
import torch
def dice_loss(p, g, smooth=1e-6):
intersection = (p * g).sum()
return 1 - (2. * intersection + smooth) / (p.sum() + g.sum() + smooth)
Assim, o Dice Loss é mais adequado para tarefas com forte desequilíbrio de classes e quando a precisão da sobreposição de áreas segmentadas é importante.