一文读懂focal loss

什么是Focal Loss?

Focal Loss最先是在目标检测的领域提出的,目标检测的框架一般分为两种:基于候选区域的two-stage的检测框架(fast r-cnn);基于回归的one-stage的检测框架(yolo),two-stage效果好,但速度慢;one-stage效果一般,但速度快,于是乎,作者就去探寻为啥one-stage效果一般,最终发现的原因是 正负样本不均衡导致。于是作者就提出了一个牛逼哄哄的办法,使用Focal Loss这种损失函数,来尝试解决这一问题!值得一提的是,Focal Loss同样可以用在别的领域,比如,NLP。

Focal Loss的原理是什么?

说原理之前,先普及下基本概念,什么是易分类样本?什么是难分类样本?举例:

  • 当样本标签为1(正样本)时,如果预测概率为0.9,那就是易分类样本,如果预测概率为0.1,那就是难分类样本;
  • 如果预测概率为0.5,那无论样本标签是正还是负,都是难分类样本;

当一个数据集正负样本极度不均衡时,那么很多负样本都是易分类样本,多数正样本都是难分类样本。

Focal Loss核心思想是:整体缩放Loss,易分类样本缩放的比难分类样本更多,从而损失函数中就凸显了难分类样本的权重,使得模型在训练时更专注于难分类的样本。

先看下交叉熵损失函数,如下:
在这里插入图片描述

  • y’=0.9,易分类样本,属于y=1的样本,那么损失L1=-log0.9,非常接近0的一个正数
  • y’=0.6,难分类样本,无论是y=1还是y=0,损失L2都会相对比较大
  • 最终总的损失函数是将每一个样本对应的损失函数相加,所有样本权重一致。

那么Focal Loss改进的直观想法是如何的呢?上面binary loss最终每个样本的权重都是一致的,我们能不能设计一个系数,让易分类样本权重降低,难分类样本权重提高呢?完全可以!

Focal Loss的定义见下图:
在这里插入图片描述
暂定先取α=0.25,γ=2。这两个参数需要根据具体的数据来进行参数调整。

  • y’=0.9,易分类样本,属于y=1的样本,那么损失L1’=-α(0.1)γ*log0.9,相比原来的的L1,显著降低了很多!
  • y’=0.6,难分类样本,无论是y=1还是y=0,损失L2都会相对比较大。L2’=-(1-α)(0.6)γ*log(0.4),相比原来的L2虽然也降低了,但是没有上述L1’降低的那么多!
  • 虽然最终总的损失函数是将每一个样本对应的损失函数相加,但此时所有样本权重并不是一致的了,易分类样本的损失函数显著降低了很多,相当于权重变小,难分类样本的损失函数虽然也缩放了,但是缩放降低的比例比易分类样本要小,相当于权重变大了!从而实现了损失函数中更加侧重于难分类样本(hard example)!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值