dice系数 交叉熵_二分类语义分割损失函数

这里针对二类图像语义分割任务,常用损失函数有:

[1] - softmax 交叉熵损失函数(softmax loss,softmax with cross entroy loss)

[2] - dice loss(dice coefficient loss)

[3] - 二值交叉熵损失函数(bce loss,binary cross entroy loss).

其中,dice loss 和 bce loss 仅支持二分类场景.

对于二类图像语义分割任务,经常出现类别分布不均衡的问题,比如:工业产品的瑕疵检测、道路提取及病变区域提取等.

如,DeepGlobe比赛中道路提取(Road Extraction)中,训练数据道路占比为:4.5%. 如下为其图片样例, 可以看出道路在整张图片中的比例很小.

1. Dice Loss

Dice loss 有助于解决二分类语义分割中类别不均衡问题.

Dice loss 的定义如:

$$

diceloss = 1- \frac{2|Y \cap P|}{|Y| + |P|}

$$

其中,Y 表示 groundtruth,P表示预测结果. $| \cdot |$ 表示矩阵元素之和. $Y \cap P$ 表示 Y 和 P 的共有元素数,实际通过求两者的逐像素乘积之和进行计算. 例如:

其中,1 表示前景,0 表示背景.(GT图片中要求前景像素值为1,背景像素值为0).

2. Dice Loss 与类别不均衡

类别不均衡问题上,dice loss效果为什么比softmax 交叉熵 loss 更好?

首先,softmax 交叉熵 loss 的定义为:

$$

L = -\sum_{c=0}^C y_c log(f(p_c))

$$

其中,

$$

f(p_k) = \frac{e^{p_k}}{\sum_J^{c^{p_j}}}

$$

其中,y 表示 groundtruth, p 表示网络输出.

图像分割任务中,softmax 交叉熵loss 是对每一个像素点进行类别预测,然后平均所有的像素点. 其本质上仍是对图片的每个像素进行平等的学习,这就导致如果图像上的多种类别存在不平衡时,模型的训练会由最主流的类别所主导. 网络更偏向于对主流类别的学习,而降低了对非主流类别的特征提取能力.

而,Dice loss 通过预测和GT的交集除以它们的总体像素进行计算,将一个类别的所有像素作为一个整体进行考量,而且计算交集在总体中的比例,所以不会受大量主流像素的影响,能够提取更好的效果.

实际中,dice loss 往往与 bce loss 结合使用,以提升模型训练的稳定性.

你可能感兴趣的:(dice系数,交叉熵)