目标检测任务的损失函数由Classificition Loss和Bounding Box Regeression Loss两部分构成。本文介绍目标检测任务中近几年来Bounding Box Regression Loss Function的演进过程,其演进路线:
SmoothL1/IoU/GIoU/DIoU/CIoU Loss
本文按照此路线进行讲解。
1、Smooth L1 Loss
1.1均方误差MSE (L2 Loss)
均方误差(Mean Square Error,MSE)是模型预测值f(x)与真实样本值y之间差值平方的平均值,其公式如下
其中,yi和f(xi)分别表示第i个样本的真实值及其对应的预测值,n为样本的个数。忽略下标i,设n=1,以f(x)−y为横轴,MSE的值为纵轴,得到函数的图形如下:
MSE的函数曲线光滑、连续,处处可导,便于使用梯度下降算法,是一种常用的损失函数。而且,随着误差的减小,梯度也在减小,这有利于收敛,即使使用固定的学习速率,也能较快的收敛到最小值。
当y和f(x)也就是真实值和预测值的差值大于1时,会放大误差;而当差值小于1时,则会缩小误差,这是平方运算决定的。MSE对于较大的误差(>1>1)给予较大的惩罚,较小的误差(<1<1)给予较小的惩罚。也就是说,对离群点比较敏感,受其影响较大。
如果样本中存在离群点,MSE会给离群点更高的权重,这就会牺牲其他正常点数据的预测效果,最终降低整体的模型性能。 如下图
可见,使用 MSE 损失函数,受离群点的影响较大,虽然样本中只有 5 个离群点,但是拟合的直线还是比较偏向于离群点。
1.2平均绝对误差MAE(L1 loss)
平均绝对误差(Mean Absolute Error,MAE) 是指模型预测值f(x)和真实值y之间距离的平均值,其公式如下:
MAE=i=1n|fxi-yi|n
忽略下标i,设n=1,以f(x)−y为横轴,MAE的值为纵轴,得到函数的图形如下:
MAE曲线连续,但是在y−f(x)=0处不可导。而且 MAE 大部分情况下梯度都是相等的,这意味着即使对于小的损失值,其梯度也是大的。这不利于函数的收敛和模型的学习。但是,无论对于什么样的输入值,都有着稳定的梯度,不会导致梯度爆炸问题,具有较为稳健性的解。相比于MSE,MAE有个优