图像分割是一个活跃的研究领域,具有广泛的应用,从自动疾病检测到自动驾驶汽车。在过去的五年中,各种论文提出了不同的目标损失函数,用于不同情况,如偏斜数据、稀疏分割等。
https://github.com/shruti-jadon/Semantic-Segmentation-Loss-Functions
https://arxiv.org/pdf/2006.14822.pdf
在本文中,我们总结了一些广泛用于图像分割的知名损失函数,并列举了它们在快速和更好地收敛模型方面的使用情况。
损失函数汇总
| Type | Loss Function |
|---|---|
| Distribution-based | Binary Cross-Entropy |
| Weighted Cross-Entropy | |
| Balanced Cross-Entropy | |
| Focal Loss | |
| Distance map derived loss penalty term | |
| Region-based | Dice Loss |
| Sensitivity-Specificity Loss | |
| Tversky Loss | |
| Focal Tversky Loss | |
| Log-Cosh Dice Loss | |
| Boundary-based | Hausdorff Distance loss |
| Shape aware loss | |
| Compounded Loss | Combo Loss |
| Exponential Logarithmic Loss |
二元交叉熵
交叉熵被定义为给定随机变量或一组事件的两个概率分布之间的差异度量。它被广泛用于分类任务,而且由于分割是像素级别的分类,因此它表现良好。
二元交叉熵定义如下:
这里, 是预测模型的预测值。
二元交叉熵是一种常见的损失函数,通常用于二元分类任务。在图像分割中,它用于衡量预测像素属于前景或背景的概率与实际标签之间的差异。
加权二元交叉熵
加权二元交叉熵(WCE)是二元交叉熵的一种变体。在这种情况下,正例会通过一些系数进行加权。它在数据倾斜的情况下被广泛使用。加权交叉熵可以定义为:
注意: 值可以用来调整假阴性和假阳性。例如,如果您想减少假阴性的数量,则设置 ,同样,要减少假阳性的数量,则设置 。
平衡交叉熵
平衡交叉熵(BCE)与加权交叉熵类似。唯一的区别是,除了正例之外,在这种情况下,我们还对负例进行加权。
平衡交叉熵可以定义如下:
这里, 被定义为
平衡交叉熵的主要目的是处理类别不平衡的问题。通过对正负例进行加权,可以更好地处理数据集中类别之间的不平衡性,从而提高模型的性能。
Focal Loss
Focal Loss也可以看作是二元交叉熵的一种变体。它降低了简单示例的贡献,并使模型更专注于学习困难示例。它在高度不平衡的类别场景中表现良好,如图所示。让我们看看焦点损失是如何设计的。我们将首先看看二元交叉熵损失,并学习焦点损失是如何从交叉熵中派生出来的。
为了方便表示,焦点损失将类的估计概率定义为:
因此,现在交叉熵可以写为:
焦点损失建议通过一个调制因子 来降低简单示例的权重,并专注于训练困难的负样本,如下所示:
这里,,当 时,焦点损失的工作方式类似于交叉熵损失函数。同样, 通常取值范围为[0,1],可以通过反类别频率来设置,也可以视为超参数。
Dice损失
Dice系数是计算两幅图像之间相似度的常用指标,在计算机视觉社区被广泛使用。后来在2016年,它也被改编为损失函数,称为Dice损失。
Dice损失可以定义为:
这里,在分子和分母中都加上1,以确保在边缘情况下(例如当时)函数不会未定义。
Tversky损失
Tversky指数(TI)也可以看作是Dice系数的一种泛化。它通过系数对假阳性(false positives,FP)和假阴性(false negatives,FN)进行加权。
Tversky指数可以定义为:
当时,它可以简化为常规的Dice系数。类似于Dice损失,Tversky损失也可以定义为:
Tversky损失在图像分割任务中被广泛使用,它考虑了预测分割和真实分割之间的相似度,并通过加权因子来平衡假阳性和假阴性的影响。通过最小化Tversky损失,模型可以学习生成更准确的分割结果。
焦点Tversky损失
类似于焦点损失,焦点Tversky损失通过降低易于的/常见的示例的权重,专注于学习困难示例,例如具有小的感兴趣区域(ROI),并借助系数如下所示:
这里,表示Tversky指数,的取值范围为[1,3]。
灵敏度特异度损失
类似于Dice系数,灵敏度和特异度是用于评估分割预测的常用指标。在这个损失函数中,我们可以使用参数来处理类别不平衡问题。该损失函数定义如下:
其中,
和
灵敏度(sensitivity)衡量了正类别样本中被正确预测为正类别的比例,而特异度(specificity)衡量了负类别样本中被正确预测为负类别的比例。通过调整参数,可以根据任务需求平衡灵敏度和特异度的重要性,从而提高模型在类别不平衡情况下的性能。
基于形状的损失
顾名思义,基于形状的损失考虑了形状信息。通常,所有的损失函数都在像素级别工作,然而,基于形状的损失计算了预测分割的曲线周围点的平均点到曲线的欧氏距离,并将其用作交叉熵损失函数的系数。定义如下:
利用,网络学习生成与训练形状相似的预测掩模。基于形状的损失使得网络能够更好地捕捉到形状信息,从而产生更加准确的分割结果。
组合损失
组合损失被定义为Dice损失和修改后的交叉熵的加权和。它试图利用Dice损失对类别不平衡的灵活性,同时利用交叉熵对曲线平滑的优点。定义如下:
其中DL是Dice损失。组合损失尝试通过权衡Dice损失和修改后的交叉熵,综合利用它们的优点,以获得更好的分割结果。
指数对数损失
指数对数损失函数侧重于对预测不准确的结构进行处理,使用Dice损失和交叉熵损失的组合公式。定义如下:
其中
为简化起见,使用了。指数对数损失结合了Dice损失和交叉熵损失的优点,旨在提高模型对预测的准确性和鲁棒性。
使用场景
| 损失函数 | 应用场景 |
|---|---|
| 二元交叉熵 | 在类别分布均匀的情况下效果最佳,基于伯努利分布的损失函数 |
| 加权交叉熵 | 广泛用于倾斜的数据集,通过 系数对正样本进行加权 |
| 平衡交叉熵 | 类似于加权交叉熵,在倾斜的数据集中广泛使用,分别通过 和 对正样本和负样本进行加权 |
| 焦点损失 | 在高度不平衡的数据集中效果最佳,降低易样例的贡献,使模型能够学习困难样例 |
| 基于距离图的损失惩罚项 | 交叉熵的变体,用于难以分割的边界 |
| Dice损失 | 受Dice系数启发,用于评估分割结果。由于Dice系数的非凸性质,对其进行了修改以使其更易处理 |
| 灵敏度特异度损失 | 受灵敏度和特异度指标启发,用于更加关注真正例的情况 |
| Tversky损失 | Dice系数的变体,对假阳性和假阴性进行加权 |
| 焦点Tversky损失 | Tversky损失的变体,重点关注困难样例 |
| 对数双曲Dice损失(自家提出) | Dice损失的变体,受回归对数双曲方法启发,用于平滑。变体可用于倾斜的数据集 |
| Hausdorff距离损失 | 受Hausdorff距离度量启发,用于分割评估。通过添加一些变体解决了距离度量的非凸性质 |
| 基于形状的损失 | 通过添加基于形状的系数对交叉熵损失进行变体,用于难以分割的边界 |
| 组合损失 | Dice损失和二元交叉熵的组合,通过利用BCE和Dice损失的优势,用于轻微类别不平衡 |
| 指数对数损失 | Dice损失和二元交叉熵的组合函数,专注于预测不准确的情况 |
| 最大化相关结构相似性损失 | 专注于分割结构,用于结构重要性较高的情况,如医学图像 |
# 扫码一起讨论Kaggle比赛 #

每天大模型、算法竞赛、干货资讯





