Dice损失函数是图像分割任务中常用的损失函数,适用于样本极度不均的情况,因而常用于医学图像的分割。其是在集合相似度度量函数Dice系数上设计的:
Dice系数公式:
Dice Coefficient = 2|X∩Y| / (|X| + |Y|),
其中|X∩Y|是X和Y的交集,|X|和|Y|分别表示X和Y中元素的个数。由于分母|X| + |Y|存在重复计算X和Y的共同元素,因此分子|X∩Y|的系数为2。
下面第一张图是视网膜浅层血管复合体的图像,中间是该图像的分割标签,右边是神经网络生成的分割预测结果。
我们可以将公式中的|X|理解为图像分割的真实标签。
|Y|可以理解为通过网络产生的预测结果。
分母|X| + |Y|为真实标签和预测结果的并集。
|X∩Y|为真值和预测正确的部分。
因此,Dice系数可以理解为:
2 * 预测正确的结果 / 真实标签 + 预测结果

以分割眼底OCTA图像二分类任务为例,图像中每个像素的真实标签只有0、1两个值,0表示背景,1表示OCTA图像中的血管。
在实际计算时,|X∩Y|可以近似为预测分割图与真实标签之间的点乘,并将点乘的元素结果相加。
由于真实的元素结果相加,预测分割图中未在标签中激活的所有像素将被忽略。
对于激活的像素,低真值的预测将被惩罚。惩罚系数以较高的Dice系数。
假设图像的分割标签|X|和经过模型得到的预测结果|Y|分别如下所示(这里的矩阵仅用于形象说明,不是线性代数里的矩阵):
|X| =
[[0 1 0 1]
[0 0 0 0]
[1 0 1 0]
[1 1 0 1]]
|Y| =
[[0.02 0.73 0.13 0.85]
[0.11 0.03 0.05 0.09]
[0.98 0.15 0.89 0.10]
[0.93 0.82 0.07 0.97]]
则真实标签与预测结果的点乘可以计算如下:
|X∩Y| =
[[0 1 0 1] [[0.02 0.73 0.13 0.85] [[0 0.73 0 0.85]
[0 0 0 0] [0.11 0.03 0.05 0.09] - [0 0 0 0 ]
[1 0 1 0] [0.98 0.15 0.89 0.10] - [0.98 0 0.89 0 ]
[1 1 0 1]] [0.93 0.82 0.07 0.97]] [0.93 0.82 0 0.97]]
逐元素相乘的结果中所有元素相加的和为:
|X ∩ Y| =
[[0 0.73 0 0.85]
[0 0 0 0 ]
[0.98 0 0.89 0 ]
[0.93 0.82 0 0.97]]= 6.17
而分母|X| + |Y|的计算,也一般采用元素直接相加或元素平均求和的方法。这里,我们采用元素直接相加的做法。则|X| + |Y|为:
|X| =
[[0 1 0 1]
[0 0 0 0]
[1 0 1 0]
[1 1 0 1]] = 7
|Y| =
[[0.02 0.73 0.13 0.85]
[0.11 0.03 0.05 0.09]
[0.98 0.15 0.89 0.10]
[0.93 0.82 0.07 0.97]] = 6.92
|X| + |Y| = 7 + 6.92 = 13.92
Dice损失是在Dice系数的基础上进行计算的,其计算公式如下:
Dice损失 L = 1 − Dice系数 = 1 − 2|X∩Y| / |X| + |Y|
其计算公式为:
L = 1 − 2|X∩Y| / |X| + |Y| = 1 − 2 × 6.17 / 13.92 ≈ 0.1135
Dice系数越大,表明集合越相似,则Dice损失越小;反之亦然。