【Smooth L1 Loss】Smooth L1损失函数理解

1 引言

目标检测任务的损失函数由Classificition Loss和Bounding Box Regeression Loss两部分构成。

Bounding Box Regression Loss Function的演进路线是:
Smooth L1 Loss --> IoU Loss --> GIoU Loss --> DIoU Loss --> CIoU Loss

本文介绍L1 loss、L2 loss以及Smooth L1 Loss。

2 L1 Loss

  • 公式:
    在这里插入图片描述
    假设 x 为预测框和真实框之间的数值差异时,公式变为:

L 1 = ∣ x ∣ L_1 = |x| L1=x

  • 导数:
    在这里插入图片描述
  • 特点:
    L1 loss在零点处不平滑,学习慢;
    L 1 L_1 L1 损失函数对 x 的导数为常数,训练后期,x 很小时,如果学习率不变,损失函数会在稳定值附近波动,很难收敛到更高的精度。(这句话可能得想一下才能懂)

3 L2 Loss

  • 公式:
    在这里插入图片描述
    假设 x 为预测框和真实框之间的数值差异时,公式变为:

L 1 = x 2 L_1 = x^2 L1=x2

  • 导数:
    在这里插入图片描述
  • 特点
    L2 loss由于是平方增长,因此学习快。
    L 2 L_2 L2 损失函数对 x 的导数为2x,当 x 很大的时候,导数也很大,使 L 2 L_2 L2 损失 在 总loss 中占据主导位置,进而导致,训练初期不稳定。

4 Smooth L1 Loss

由微软rgb大神在 Fast RCNN论文提出该方法。

  • 公式:假设 x 为预测框和真实框之间的数值差异
    在这里插入图片描述
  • 导数:
    在这里插入图片描述
  • 特点:
    Smooth L1 Loss 相比L1 loss 改进了零点不平滑问题。
    相比于L2 loss,在 x 较大的时候不像 L2 对异常值敏感,是一个缓慢变化的loss。

5 曲线对比分析

实际目标检测框回归位置任务中的损失loss为:
在这里插入图片描述
三种loss的曲线如下图所示,可以看到Smooth L1相比L1的曲线更加的Smooth。
在这里插入图片描述
存在的问题:

  • 三种Loss用于计算目标检测的Bounding Box Loss时,独立的求出4个点的Loss,然后进行相加得到最终的Bounding Box Loss,这种做法的假设是4个点是相互独立的,实际是有一定相关性的
  • 实际评价框检测的指标是使用IoU,而IoU和Smooth L1是不等价的,多个检测框可能有相同大小的Smooth L1 Loss,但IoU可能差异很大,为了解决这个问题就引入了IoU Loss。

再后面学习参考链接:

https://zhuanlan.zhihu.com/p/104236411

6 参考链接

https://zhuanlan.zhihu.com/p/104236411
https://blog.csdn.net/qq_33278461/article/details/100752896
  • 48
    点赞
  • 198
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值