论文分析了one-stage网络训练存在的类别不平衡问题,提出能根据loss大小自动调节权重的focal loss,使得模型的训练更专注于困难样本。同时,基于FPN设计了RetinaNet,在精度和速度上都有不俗的表现
论文:Focal Loss for Dense Object Detection

Introduction
目前state-of-the-art的目标检测算法大都是two-stage、proposal-driven的网络,如R-CNN架构。而one-stage检测器一直以速度为特色,在精度上始终不及two-stage检测器。因此,论文希望研究出一个精度能与two-stage检测器媲美的one-stage检测器
通过分析,论文认为阻碍one-stage精度主要障碍是类别不平衡问题(class imbalance):
- 在R-CNN架构检测器中,通过two-stage级联和抽样探索法(sampling heuristics)来解决类别不平衡问题。proposal阶段能迅速地将bndbox的数量缩小到很小的范围(1-2k),过滤了大部分背景。而第二阶段,则通过抽样探索法来保持正负样本的平衡,如固定的正负样本比例(1:3)和OHEM
- one-stage检测器通常需要处理大量的bndbox(~100k),密集地覆盖着各位置、尺度和长宽比。然而大部分bndbox都是不含目标的,即easy background。尽管可以使用类似的抽样探索法(如hard example mining)来补救,但这样的效率不高,因为训练过程仍然被简单的背景样本主导,导致模型更多地学习了背景而没有很好地学习检测的目标
在解决以上问题的同时,论文产出了两个成果:
- 新的损失函数focal loss,该函数能够动态地调整交叉熵大小。当类别的置信度越大,权重就逐渐减少,最后变为0。反之,置信度低的类别则得到大的权重

- 设计了一个简单的one-stage检测器RetinaNet来演示focal loss的有效性。该网络包含高效的特征金字塔和特别的anchor设定,结合一些多种近期的one-stage detectgor的trick(DNN/FPN/YOLO/SSD),达到39.1的AP精度和5fps的速度,超越了所有的单模型,如图2所示
FocalLoss

Balanced Cross Entropy
交叉熵损失函数如图1最上曲线,当置信度大于0.5时,loss的值也不小。若存在很多简单样本时,这些不小的loss堆积起来会对少样本的类别训练造成影响

一种简单的做法是赋予不同的类不同的权重 α \alpha α,即 α \alpha α-balanced 交叉熵。在实际操作中, α \alpha α属于一个预设的超参,类别的样本数越多, α \alpha α则设置越小
Focal Loss Definition
α \alpha α-balanced 交叉熵仅根据正负样本的数量进行权重的平衡,没有考虑样本的难易程度。因此,focal loss降低了容易样本的损失,从而让模型更专注于难的负样本

focal loss在交叉熵的基础上添加了调节因子 ( 1 − p t ) γ (1-p_t)^{\gamma} (1−pt)γ,其中 γ ≥ 0 \gamma\ge0 γ≥0是超参数。 γ ∈ [ 0 , 5 ] \gamma\in[0,5] γ∈[0,5]的loss曲线如图1所示,focal loss有两个特性:
- 当一个样本被误分且置信度很低时,调节因子会接近1,整体的loss都很小。当置信度接近1的时候,调节因子会接近于0,整体的loss也被降权了
- 超参数 γ \gamma γ平滑地调整了简单样本的降权比例。当 γ = 0 \gamma=0 γ=0,Focal loss与交叉熵一致,随着 γ \gamma γ增加,调节因子的影响也相应增加。当 γ = 2 \gamma=2 γ=

针对one-stage目标检测器的类别不平衡问题,提出Focal Loss改进交叉熵损失函数,使其能自动调节权重,专注困难样本。设计RetinaNet检测器,结合FPN和Focal Loss,实现精度与速度的双重提升。
最低0.47元/天 解锁文章
660

被折叠的 条评论
为什么被折叠?



