图像分割中的损失函数
前言
在深度学习中,所有算法都依赖于最小化或最大化一个函数,称之为损失函数。
损失函数用于衡量预测值与真实值之间的误差。训练模型时,根据计算损失函数,更新模型参数,从而逐渐减小误差。
一、交叉熵损失
逐像素的交叉熵损失广泛应用于图像分割中,先看二分类的交叉熵损失,专门给了其一个名称:BCE Loss,用于像显著性分割这样的二值分割中,其公式:
L
=
−
y
l
o
g
(
P
)
+
(
1
−
y
)
l
o
g
(
1
−
P
)
)
L=- ylog(P)+(1-y)log(1-P))
L=−ylog(P)+(1−y)log(1−P))
其中y是一个one-hot变量,取值只为0或1;P表示预测为正类的概率。
再来看多分类,也就是语义分割的情况
L
=
−
∑
i
=
1
n
y
(
i
)
l
o
g
(
P
(
i
)
)
L=-\sum_{i=1}^{n} y(i)log(P(i))
L=−∑i=1ny(i)log(P(i))
其中n表示类别的数量,y(i)和P(i)则为样本(i)的one-hot值和预测概率。
通常,BCEloss之前采用sigmoid函数,多分类的CE采用softmax
不足之处:
(1)在像显著性目标检测这种二值分割场景(只分割前景和背景)中,当前景像素的数量远远小于背景像素的数量时,损失函数中y=0的成分就会占据主导,使得模型严重偏向背景。
(2)交叉熵损失只是像素的整体概率分布,对于图像分割任务,目标的整体结构并未考虑。
二、Dice loss
Dice Loss最先由V-Net文章中被提出,目的是为了增强网络对于医学影像中细小结构的分割能力,解决在学习过程中损失函数陷入局部最小值,导致前景区域特征丢失的问题。
Dice系数是一种度量集合相似度的函数,通常用于计算两个样本的相似度,取值范围在[0, 1]:
s
=
2
∣
X
∩
Y
∣
∣
X
∣
+
∣
Y
∣
s=\frac{2\left | X\cap Y \right |}{\left | X \right |+\left | Y \right |}
s=∣X∣+∣Y∣2∣X∩Y∣
其中, 分子中有一个系数2是因为分母中有重复计算X和Y的原因。
对于分割任务来说,X表示的就是Ground Truth分割图像,而Y代表的就是预测的分割图像。
在图像分割中,DIce loss常用来解决类别不平衡的问题?(dice和交叉熵通常结合使用)
图像分割任务中,交叉熵损失是对每一个像素点进行类别预测,然后平均所有的像素点. 其本质上仍是对图片的每个像素进行平等的学习,这就导致如果图像上的多种类别存在不平衡时,模型的训练会由最主流的类别所主导. 网络更偏向于对主流类别的学习,而降低了对非主流类别的特征提取能力。
而Dice loss 通过预测图和GT的交集除以它们的总体像素进行计算,将一个类别的所有像素作为一个整体进行考量,而且计算交集在总体中的比例,所以不会受大量主流像素的影响,能够提取更好的效果。
三、Focal loss
focal loss是为了解决one-stage目标检测中类别不平衡的问题而提出的。类别不平衡问题是指在对一张图像进行目标检测时,需要评估10^4 至10^5个侯选位置,但是其中只有少数位置包含目标对象。这导致了两个问题:
(1)训练效率低。将样本分为positive和negative两类,由于大部分位置都是negative样本,使用交叉熵损失函数进行计算时,negative样本的贡献远大于positive样本,从而不利于整个目标函数的收敛。
(2)大部分negative样本位于背景区,只有极少的negative样本位于前景和背景的过渡区。位于背景区的negative样本分类相对容易,称为easy negative样本。easy negative样本在训练时对应的score很大,loss很小。在梯度下降法对模型参数进行更新时,easy negative样本对参数收敛作用有限。从而导致hard negative样本很难得到更新,效果不佳。
focal loss主要是通过在交叉熵中引入参数进行调节,focal loss可以和dice loss结合使用,focal loss一般在初始化参数的时候,会让最后一层分类层每个类别服从等概分布,但是由于negative样本非常多,等概之后明显增加了negative样本在训练时的loss,导致训练初期不稳定。好的做法是让最后一层的分布符合正样本相对负样本的分布。
四、IOU损失函数
IOU损失函数又称Jaccard指数,和Dice loss类似,通过计算预测图和GT之间的重叠率来衡量的,
L
=
1
−
A
∩
B
A
∪
B
L=1-\frac{A\cap B}{A\cup B}
L=1−A∪BA∩B
一般将其作为辅助损失函数与其他损失函数结合使用,对整体结构和小目标分割中能起到效果
总结
未完待续…
参考文章1
参考文章2