【AI面试】BoundingBox Loss 之Smooth L1 Loss目标检测回归损失损失函数是深度学习模型优化
「点击关注小白CV,学习从此快人一步」
损失函数是深度学习模型优化的一个灵魂模块,所以无论是很新的transform模型,还是比较早期的AlexNet,只要是需要评估优化效果的,都不可避免的要涉及到损失函数的设计和应用。所以,各种形形色色的损失函数(Loss)也就自然而然成了面试场上,不经意间就会被牵扯到的问题。
本文我们主要针对目标检测任务展开进行,究其原因主要是包括两点:
- 目标检测,囊括了两个任务,分别是分类信息和位置信息。损失函数自然包括
Classificition Loss
和Bounding Box Regeression Loss
两部分构成。 - 目标检测和语义分割等其他针对目标的深度学习任务,有着很多的重叠部分,且目标检测会相对简单。
基于以上两点原因,本次我们着重关注BoundingBox Loss 目标检测回归损失,之后有时间我们关注分割等任务中常用的损失函数。
本文介绍目标检测任务中近几年来Bounding Box Regression Loss Function
的演进过程,其演进路线是Smooth L1 Loss -> IoU Loss -> GIoU Loss -> DIoU Loss -> CIoU Loss
,本文按照此路线进行讲解。
阅读全文大约需要2 minutes,建议关注+收藏,边学习边思考,效率更高哦!由于时间有限,分批放松。
1. Smooth L1 Loss
为了从两个方面限制梯度:
- 当预测框与 ground truth 差别过大时,梯度值不至于过大;
- 当预测框与 ground truth 差别很小时,梯度值足够小。
为啥要做这两方面的限制呢?
- 差距大时,梯度过于大,可能会导致梯度爆炸;
- 差距很小时,梯度足够小,能够接近最优点,避免大幅横跳。
那Smooth L1 Loss
是不是就能满足这样优秀且苛刻的条件的呢?我们继续往下看,将Smooth L1 Loss
与它相关的正则化损失L1 loss
和L2 loss
,放一起做个对比。
考察如下几种损失函数,其中 x
为预测框PD
与 groud truth
之间的差异。会有:
损失函数对 x 的导数分别为:
观察 (4),L2 对 x 的导数,与 x 成正比关系。也就是当 x 增大时,对 x 的导数也线性增大。这就导致在训练初期,预测值与 groud truth
差异过于大时,损失函数对预测值的梯度十分大,训练初期不稳定。
根据方程 (5), L1 对 x 的导数为常数,始终为 1 或 -1 。这就导致训练后期,预测值与 ground truth
差异很小时, 损失对预测值的导数的绝对值仍然为 1,而 learning rate
如果不变,损失函数将在稳定值附近波动,难以继续收敛以达到更高精度。
PS:学习率衰减的优化方式,也是考虑到这个问题,降低收敛难度,避免训练尾端大幅横调。
最后观察 (6), Smooth L1 Loss
在 x 较小时,也就是[-1,1] 区间,对 x 的梯度也会变小;而在 x 很大时,对 x 的梯度的绝对值达到上限 1,也不会太大以至于破坏网络参数。 完美地避开了L1 loss
和 L2 loss
损失的缺陷。
其中,三个Loss
的损失曲线,如下图所示:
优化后的Smooth L1 Loss
函数图像如下所示:
由图中可以看出:
- 它在远离坐标原点处,大于 1 和小于 -1 处,图像和
L1 loss
很接近; - 而在坐标原点附近,[-1,1],转折十分平滑,不像
L1 loss
有个尖角,因此叫做Smooth L1 loss
,平滑的L1 loss
,由此得名。
最后,给出Smooth L1 loss
对 x 的梯度变化曲线,如下:
实际目标检测框回归任务中的损失loss为
其中,GT 的框坐标(x,y,w,h):
预测的框坐标:
即分别求4个点的loss,然后相加作为Bounding Box Regression Loss。
缺点: 上面的三种Loss用于计算目标检测的Bounding Box Loss
时,独立的求出4个点的Loss
,然后进行相加得到最终的Bounding Box Loss
。这种做法的假设是4个点是相互独立的,实际他们之间是有一定相关性的,矛盾就此显现。
如何将这种关系给联系起来呢? 这就是后面我们会继续学习到的,IOU LOSS。加关注,期待接下来的文章吧。
参考链接:www.zhihu.com/question/58…
参考链接:zhuanlan.zhihu.com/p/104236411
慢即是快(slow is fast),今天时间有限,我们就先学习一个。后面我们会继续更新,一点一滴,就会变强。欢迎各位留言、私信。同名公众号:小白CV,感谢您的关注哦
转载自:https://juejin.cn/post/6993490337964490788