语义分割损失函数

10

在二元分割问题中,将交叉熵损失和Dice分数以加权方式组合起来,这种做法是否有意义?

优化Dice分数会产生过度分割的区域,而交叉熵损失会产生欠分割的区域,对于我的应用场景来说。


如果有人需要一个二进制分割的玩具问题:https://osf.io/snb6p/ - mrk
1个回答

6
我认为将这两种损失结合起来并没有什么问题,因为它们在很大程度上是“正交”的。尽管交叉熵把每个像素分别当作一个预测,但Dice得分则更全面地查看了形成的掩码。
此外,考虑到这两种损失产生的掩码显著不同,每种损失都有其优点和错误,我认为结合这些互补信息应该会有益处。
请确保加权损失,使得来自这两种损失的梯度大致相同,以便您可以同等受益于两者。
如果您成功了,我很想听听您的实验和结论 ;)

1
如何才能使两个损失的梯度具有相同的比例,从而进行缩放?我也在做类似的事情。我只是根据数据集的不平衡性传递了一个class_weights向量。因此,加权损失变成了类似于weight*(BCE-DICE)的形式,其中每个类别的权重都会改变。但是有没有更好的方法呢? - Jonathan
1
如何确保您对损失进行加权,使得两个损失的梯度大致在相同的比例尺内,假设损失函数为loss = alpha * bce + beta * dice - mrgloom
嗨@Shai,当你说损失函数是“正交”的时候,你的意思是什么?这是否与梯度流有关,因为您假设它们各自指导网络学习不同的独立特征(例如,dice loss将训练网络学习整体结构,而熵损失则旨在实现像素级一致性)? - zucchinifries

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接