论文(3) Focal Loss

Focal Loss由KaiMing大神提出,旨在解决目标检测中类别不均衡问题,尤其是在One-Stage网络中。它通过修改Cross Entropy Loss,增加调制系数(1−pt)γ(1−pt)γ和平衡因子αtαt,优化了对难例的关注。Focal Loss在RetinaNet中得到应用,显著提升了COCO数据集上的检测效果。
摘要由CSDN通过智能技术生成

Focal Loss

@(目标检测)

Focal Loss是KaiMing大神提出来的,这篇文章的重点在于分析了one-stage网络的检测精度为什么会弱于two-stage的网络。当原理分析出来之后,其实公式的更改就很简单了。这篇paper也自建了一个网络RetinaNet [1] [ 1 ] ,在COCO数据集上的检测效果达到了40%的效果,提升效果非常明显。
这里写图片描述


这篇文章提出One-Stage网络检测精度较于Two-Stage网络差的原因主要是Class Imbalance,类别不均衡。

这个类别不均衡包括了一个数据集里面,
- 不同类的物体数量差距巨大(比如一个数据集里面每张图片车很多人很少);
- 同类物体的图片里前景和背景的数量差距巨大(比如一张图片本身很大,但是里面只有一个孤零零的小人);
- 样本与样本检测的难易(easy exampling 和 hard example,有些图片里面的人可能比较大很好检测,有些图片里的人比较小就难检测了);

等等,数据集自带的数据不平衡的弊端,会严重影响数据集训练出来的网络效果。

One-Stage的网络,会对每个图片预测出成千上万个备选框 (作者举例如DPMs,SSD等,但是Yolo好像不是这样啊。Yolo v1一共预测98个框子,Yolo v2倒是上千了。),备选框多了会导致两个问题。
1. 负例样本数远超正例样本数会导致网络训练不到足够的正例样本的特征,这使得训练没有什么效果。
2. 负例样本数量多,容易学习,会导致训练方向完全导向学习负例样本的方向。

这两个问题很好理解。其实就是负例样本贡献的loss太多,会把正例样本贡献的loss给淹没掉,所以模型训练就跑偏了。

为什么Two-Stage的网络就不会出这种问题呢?
因为它们在生成预测框的时候,首先控制了数量,其次控制了正负样例的比例,还有诸如OHEM等方法去控制样本难易程度等,所以就不会,详情见RCNN系列。

回到文章,那面对样本类别不均衡,难易不均衡的问题,应该如何解决呢?

Focal Loss Definition

作者的想法很简单:既然用的是不平衡的数据集,那么为什么要用平衡的loss函数呢?
首先给出公式。

FL(pt)=αt(1pt)γlog(pt) F L ( p t ) = − α t ( 1 − p t ) γ l o g ( p t )

其中,
pt={ p,1p,if y=1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值