损失函数#1

损失函数

通俗来说,损失函数就是用来表现预测与实际数据的差距程度,衡量模型预测的好坏。
损失函数越小,模型的鲁棒性就越好。

1、均方误差MSE(mean squareerror)
MSE表示预测值与目标值之间差值的平方和然后求平均:
在这里插入图片描述
在这里插入图片描述
优点:各点都连续光滑,方便求导,具有较为稳定的解
缺点:不是特别的稳健。当函数的输入值距离中心值较远的时候,使用梯度下降法求解的时候梯度很大,可能导致梯度爆炸(当权值过大,前面层比后面层梯度变化更快,会引起梯度爆炸问题,而梯度消失是指前面的层比后面的层梯度变化更小,故变化更慢,从而引起梯度消失问题。)。

2、L2 Loss:
L2范数损失函数,也被称为最小平方误差(LSE),它是把目标值(Yi)与估计值(f(xi))的差值的平方和(S)最小化:
在这里插入图片描述
3、平均绝对误差MAE(Mean Absolute Error Loss)
MAE是目标值与预测值之差绝对值的和,表示预测值的平均误差幅度,而不需要考虑误差的方向,范围是0到∞,其公式如下所示:
在这里插入图片描述
在这里插入图片描述
优点:无论对于什么样的输入值,都有着稳定的梯度,不会导致梯度爆炸问题,具有较为稳健性的解。
缺点:在中心点是折点,不能求导,不方便求解。

4、L1 Loss:
L1范数损失函数,也被称为最小绝对值偏差(LAD),最小绝对值误差(LAE)。它是把目标值(Yi)与估计值(f(xi))的绝对差值的总和(S)最小化:
在这里插入图片描述
MSE和MAE的选择
从梯度的求解以及收敛上,MSE是优于MAE的。MSE处处可导,而且梯度值也是动态变化的,能够快速的收敛;而MAE在0点处不可导,且其梯度保持不变。对于很小的损失值其梯度也很大,在深度学习中,就需要使用变化的学习率,在损失值很小时降低学习率。

对离群(异常)值得处理上,MAE要明显好于MSE。如果离群点(异常值)需要被检测出来,则可以选择MSE作为损失函数;如果离群点只是当做受损的数据处理,则可以选择MAE作为损失函数。

5、smooth L1损失函数
smooth L1是一种将 MSE 与 MAE 结合起来,取两者优点的损失函数,其原理很简单,就是在误差接近 0 时使用 MSE,误差较大时使用 MAE
在这里插入图片描述
在这里插入图片描述
相比于L2损失函数,其对离群点(指的是距离中心较远的点)、异常值(outlier)不敏感,可控制梯度的量级使训练时不容易跑飞。

总结
在这里插入图片描述
存在的问题:

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

IoU Loss
在这里插入图片描述
图中第一行,所有目标的L1 Loss都一样,但是第三个的IoU显然是要大于第一个,并且第3个的检测结果似乎也是好于第一个的。
基于此IoU Loss被提出,其将4个点构成的box看成一个整体进行回归。如图:
在这里插入图片描述
IoU loss的定义如上,先求出2个框的IoU,然后再求个-ln(IoU),在实际使用中,实际很多IoU常常被定义为IoU Loss = 1-IoU。
其中IoU是真实框和预测框的交集和并集之比,当它们完全重合时,IoU就是1,那么对于Loss来说,Loss是越小越好,说明他们重合度高,所以IoU Loss就可以简单表示为 1- IoU。
在这里插入图片描述
在这里插入图片描述
显然IoU Loss比 L2 Loss更胜一筹,随着迭代次数的增加具有更低的loss,预测框的更准。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值