论文:Focal Loss for Dense Object Detection
引言:
目前最好的物体检测都是基于两个平台(two stage),和推荐驱动的机制(proposal-driven mechnism),如R-CNN。近期的集合为一个平台(one stage)的工作有YOLO和SSD,他们比前者更快
我们提出了一个新的损失函数用于类的区分(class imbalance),这个损失函数是一个动态缩放的交叉熵Loss(cross entropy loss),当正确分类的可信度提升时,缩放因子会衰退至0。
(我们提出的Focal Loss 就是正常的交叉熵Loss加上一个
(1−pt)γ
的因子, 可以减少好的分类的样本的Loss, 设置
γ
)
直观上,缩放椅子可以自动缩小简单样本的贡献的参数,从而可以更快的关注困难样本。实验显示我们提出的Focal Loss可以训练出更高的准确性的(one stage detector),其表现出了启发式取样和困难样本挖掘的效果。
我们提出了一个使用Focal Loss的网络:取名叫RetinaNet,效果很好
Focal Loss :
cross entropy是这样的:
其中 y∈{±1}
为了标注的方便,我们设 pt :
我们尝试引进一个权重因子 α∈[0,1] 控制class 1 ,
容易区分的样本组成loss的主要部分并决定着梯度,然而
α
可以平衡正负样本的重要性,但不能区分容易和困难样本,所以我们重写了损失函数。
我们为cross entropy添加一个调节因子
(1−pt)γ
:
当一个样本被分类错误时, pt 很小,所以 (1−pt)γ 很大,对loss的影响很小,当 pt 趋近1时,因子趋近0,所以对于分类好的loss权重下降。
在实验中我们也使用了 α
有 α 的效果比没有的好,最后还发现计算 p 时使用sigmoid操作可以有更好的数的稳定性。
RetinaNet:
Feature Pyramid Network Backbone
金字塔的每一层用来检测不同的尺度
从图中可以看出左边是ResNet,中间为提取出feature map(加号为UpSampling后相加),然后用两个子网络相连,输出类别和边框。
实验结果
实验比较:
设
设
γ=2
和设
γ=0
相比(相当于cross entropy),提高
2.9
AP
Focal Loss和OHEM相比,提高
3.2
AP