损失函数总结

目标检测回归损失函数

L1 Loss (MAE)

  • L1 Loss 也称为平均绝对值误差(MAE),是指模型预测值 f(x) 和真实值 y 之间绝对差值的平均值,公式如下:
    在这里插入图片描述
  • 优点:L1损失函数的导数是常量,有着稳定的梯度,所以不会有梯度爆炸的问题。对于离群点造成的惩罚是固定的,不会被放大。
  • 缺点:MAE函数虽然连续,但是在0处不可导。而且MAE的导数为常数,所以在较小的损失值时,得到的梯度也相对较大,可能造成模型震荡不利于收敛。

L2 Loss (MSE)

  • L2 Loss 也称为均方误差(MSE),是指模型预测值 f(x) 和真实值 y 之间差值平方的平均值,公式如下:
    在这里插入图片描述
  • 优点:函数曲线连续,处处可导,随着误差值的减小,梯度也减小,有利于收敛到最小值
  • 缺点:由于采用平方运算,当预测值和真实值的差值大于1时,会放大误差。尤其当函数的输入值距离中心值较远的时候,使用梯度下降法求解的时候梯度很大,可能造成梯度爆炸。同时当有多个离群点时,这些点可能占据Loss的主要部分,需要牺牲很多有效的样本去补偿它,所以MSE损失函数受离群点的影响较大。

Smooth L1 Loss

  • 简单的说 Smooth L1就是一个平滑版的L1 Loss,其公式如下:
    在这里插入图片描述
  • 该函数实际上是一个分段函数,在[-1,1]之间就是L2损失,解决L1在0处有折点,在[-1, 1]区间以外就是L1损失,解决离群点梯度爆炸问题,所以能从以下两个方面限制梯度:当预测值与真实值误差过大时,梯度值不至于过大;当预测值与真实值误差很小时,梯度值足够小。
  • 在早期的目标检测网络Fast R-CNN中被提出,用于计算 Bounding Box 的4个坐标值和 GT 框之间的误差,然后将这4个loss进行相加构成回归损失,但是这种做法假设Bounding Box的4个点是相互独立的,实际上其有一定相关性。并且检测框的评价指标使用的是IOU,和该损失无法等价。
  • 对比:
  • Smooth L1损失函数在x较大时,梯度为常数解决了L2损失中梯度较大破坏训练参数的问题,当x较小时,梯度会动态减小解决了L1损失中难以收敛的问题,所以在目标检测的Bounding box回归上早期会考虑Smooth L1 Loss
  • 相比于L1 Loss,可以收敛得更快
  • 相比于L2 Loss,对离群点、异常值不敏感,梯度变化相对更小,训练时不容易跑飞
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值