1 简介
本文根据2018年《Focal Loss for Dense Object Detection》翻译总结的。
图像识别的方法有两种,分别是one-stage和two-stage。
two-stage方法,如R-CNN,第一个stage是生成一个稀疏的含候选物体位置的集合,第二个stage是采用卷积网络识别每一个候选位置,将其识别为foreground 类别或者background。two-stage方法具有较高的准确率,其分类器是应用于一个稀疏的集合。
one-stage分类器应用于一个密集(dense)的集合。其速度快、准确率却低。
one-stage准确率低是因为foreground-background存在极度的类不平衡。为此我们修改了cross entropy loss,以使损失函数降低对容易分类的权重。Background容易分类准确。
2 Focal Loss
2.1 cross entropy(CE)loss
原cross entropy(CE)loss函数如下:
采用下面2式,可以将CE公式重写为:
2.2 Balanced Cross Entropy
引入α∈[0,1]因子为类别1,1-α为类别-1。α-balanced CE loss 公式如下:
2.3 Focal Loss
Focal loss的两个特性:1)当一个样本分类错误,p_t值较小,调节因子〖(1-p_t)〗^r接近于1,损失函数未受影响的。当p_t接近1时,调节因子趋于0,这样损失函数对于较好分类的样本就是权重下降的。2)参数r调整了易分类样本权重下降的比率。当r=0时,Focal loss等于cross entropy,当r增加,调节因子的效果相应增加。我们发现r=2效果较好。
如r=2,p_t=0.9的样本相比cross entropy低了100倍,p_t=0.968的样本相比cross entropy低了1000倍,这样就意味着增加了错误分类的重要性。
3 实验效果
RetinaNet是采用focal loss的网络。从图1可以看出来focal loss的准确率更高,从图2可以看出来focal loss在预测时间较小时也有很好的分数AP。
4 代码
https://blog.csdn.net/zephyr_wang/article/details/108690554