图像分割中的损失函数分类和汇总

损失函数是最优化目标的一种代表,大多数情况下,我们无法直接用最优化目标,故用损失函数来替代。因此,如何选择一个损失函数,以让他和最优化目标更为接近显得极为重要。
更多文献综述及文献回顾,请参阅:
https://github.com/senbinyu/Computer_Vision_Literatures

1. Review paper,综述文献推荐

Ma et al., 2020, Nanjing University of Science and Technology, Segmentation Loss Odyssey

2. Loss functions,损失函数

下图给出了所有损失函数之间的关系。
图像分割中的损失函数分类和汇总

2.1 Distribution-based Loss,基于分布的损失函数

基于分布的损失函数旨在最小化两个分布之间的差异。 此类别中最基本的功能是交叉熵。 所有其他函数都可以看做是推导自交叉熵。

  • 交叉熵(CE)来自Kullback-Leibler(KL)散度,该散度是两个分布之间差异的度量。 最小化KL差异等效于最小化CE。如下图,i是每个pixel,c是分类,gicg_i^c是表示是否分类正确,sics_i^c是分为某个类的概率
    图像分割中的损失函数分类和汇总

  • WCE, used in UNet, 2015, 更多可见 https://github.com/senbinyu/Computer_Vision_Literatures/edit/master/3_segmentation/
    WCE (Weighted cross entropy)是常见的扩展,图中的权重在g_ ^ c之前。
    这里好理解,即把权重置于每个对应类的损失前,这样就是加权CE了。
    图像分割中的损失函数分类和汇总

  • TopK loss, Wu et al., 2016, The University of Adelaide Bridging category-level and instance-level semantic image segmentation
    TopK损失旨在迫使网络在训练期间专注于难的样本。 其中,t in(0; 1]是阈值,1 {…}是二进制指示符函数。换句话说,“简单”像素,即损耗低于t的像素,由于它们容易被当前模型分类而被丢弃。
    这里可以这样理解,当预测为c类时,且其概率小于某个阈值,表明这是不好预测的那些,公式中只计算这些hard samples,而把简单的直接忽略了,因此叫topK,最难的那些对loss有影响。
    图像分割中的损失函数分类和汇总

  • FL focal loss, used in RetinaNet, 2017, Focal Loss for Dense Object Detection
    Focal loss [8] 让标准CE适应于处理极端的前景-背景类别不平衡问题,减少了分配给简单分类样本的损失。
    如下图所示,是easy sample的时候,sics_i^c接近1,这样前面的系数(1sic)γ(1-s_i^c)^\gamma越小,即他们的影响越小。同时,γ\gamma取得越大,其让easy sample所占比越小。反过来说,即hard sample所占的比重越大,focal到了hard sample上,也相当于一种注意力机制。
    图像分割中的损失函数分类和汇总

  • DPCE, Caliva et al., 2019 University of California Distance map loss penalty term for semantic segmentation
    距离图是惩罚的交叉熵损失(DPCE),权重是通过从ground truth得出的距离图来交叉熵的。该距离图是指和ground truth masks的距离,距离越远则表示越难分割,则权重要变大。 它旨在引导网络将注意力集中在难以分割的边界区域。 其中D是距离罚分项,而◦是Hadamard乘积。 具体而言,D是通过计算地面真相的距离变换然后将其还原而生成的。
    图像分割中的损失函数分类和汇总

2.2 Region-based loss,基于区域的损失函数

基于区域的loss旨在最大程度地减少失配或最大化ground truth G与预测的分割S之间的重叠区域。关键因素是Dice损失。

2.3 Boundary-based Loss,基于边界的损失函数

基于边界的损失是一种新型的损失函数,旨在最小化地面真实情况和预测的分段之间的距离。

  • Boundary (BD) loss
    为了以可微分的方式计算两个边界之间的距离Dist(pG; pS),边界损耗使用边界上的积分而不是不平衡的对区域进行积分以减轻高度不平衡的细分带来的困难。DG§是与ground truth的距离, s§是双值函数,φG = −DG(q) if q 2 G, and φG = DG(q) otherwise。作者在文章是用Dice loss + BD loss结合,前期Dice loss比重较高,后期BD loss比重变高,可以更好的处理边界问题。
    图像分割中的损失函数分类和汇总

  • Hausdorff Distance (HD) loss, Karimi et al., 2019, TheUniversity ofBritish Columbia, Reducing the hausdorff distance in medical image segmentation with convolutional neural networks
    由于直接将HD直接最小化是很棘手的,并且可能导致不稳定的训练,Karimi等人证明它可以通过ground truth和预测的分割的距离变换来近似。 此外,可以使用以下HD loss功能来训练网络。dG和dS是ground truth和分割的距离变换。
    图像分割中的损失函数分类和汇总

  • 所有三个损失函数的目的是使ground truth和segmentation的失配区域ΔM最小。 它们之间的主要区别是加权方法。 对于Dice损失,分割不匹配由分割中前景像素数与ground truth中像素数之和加权。 在BD损失中,它由ground truth的距离变换map加权。 HD损失不仅使用ground truth的距离变换map进行加权,还使用分割的距离变换map。

2.4 Compound loss

那怎么选择损失函数?

总的来讲,使用复合损失函数表现会相对好一些。但没有完美的loss函数,只能视具体任务而定。