Sobes.tech
Middle — Senior

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.