论文阅读-《Focal Loss for Dense Object Detection》

本文探讨了一阶段检测器精度低于二阶段检测器的原因,主要在于极端的前景-背景类别不平衡。为解决这一问题,文章提出了Focal Loss,这是一种动态调整的交叉熵损失,通过降低简单样例的权重,提升模型训练效果。实验表明,Focal Loss能显著改善one-stage检测器的性能,使其在精度上接近或超过two-stage检测器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FAIR. ICCV2017 Oral Kaiming He & RBG

1.Motivation

一直以来,one-stage detector都以快著称,yolo刚发布的时候表明了是主打速度的,但是这些one-stage detector的精度要比two-stage detector,比如faster rcnn差不少。本文的目的就是为了探讨为什么one-stage detector相比two-stage detector精度要差。

2.Contribution

本文的贡献在于指出了one-stage detector精度不高的原因在于extreme forground-background class imbalance,这种不平衡导致了训练的时候存在大量的easy examples(包括easy positive和easy negative,但主要是easy negative),这些easy example虽然每一个的loss会比较小,但是因为数量巨大,主导了最终的loss,导致最后训练出来的是一个degenerated model。

为此,作者提出了一个dynamically scaled cross entropy loss,即focal loss来替换原来detector classification部分的standard cross entropy loss。通过降低训练过程中easy example的权重,提高了模型的训练效果,使得one-stage detector在精度上能够达到乃至超过two-stage detector。

3.Focal Loss

3.1standard cross entropy loss

原来的分类loss是各个训练样本交叉熵的直接求和,也就是各个样本的权重是一样的。如下图所示:
1
CE表示cross entropy,p表示预测样本属于1的概率,y表示label,y的取值为{+1,-1},这里仅仅以二分类为例,多分类分类以此类推。
为了表示简便,我们用p_t表示样本属于true class的概率。所以(1)式可以写成
1

我们可以将cross entropy loss的曲线画出来,如下图最上面这根蓝线所示:
1
从蓝线我们可以看出来,对于well-classified样本(true class的预测概率大于0.6为例),他们的loss仍然不算小。对于yolo/ssd这类one-stage detector,他们没有rpn这类proposal网络,而是对图像上densely sampled window进行检测,这样的话负样本的数量会远远超过正样本的数量,而负样本里面绝大多数又是easy example,也就是说,对于one-stage detector来说,虽然单个easy example的loss不大,但是所有easy example的loss加起来就会远远超过hard example的loss了。当hard example的loss对于模型的更新没有什么影响的时候,得到的分类模型的分类边界往往不够准确,对于hard example比较容易分错。

3.2balanced cross entropy

既然one-stage detector在训练的时候正负样本的数量差距很大,那么一种常见的做法就是给正负样本加上权重,负样本出现的频次多,那么就降低负样本的权重,正样本数量少,就相对提高正样本的权重,如下式所示:

CE(pt)=αtlog(pt
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值