对于one stage方法来说,detection部分要直接处理大量的候选位置,其中负样本要占据绝大部分,SSD的策略是采用hard mining,从大量的负样本中选出loss最大的topk的负样本以保证正负样本比例为1:3.
onestage 不好的原因在于:正负样本比例极度不平衡,负样本绝大部分都是简单样本,构成了大部分的损失,并主导了梯度。
什么是“类别不平衡”:
- 一幅正常的图像中需要检测的object不会很多,顶多就那么几个object。这就意味着绝大多数的bbox是属于background,使得foreground-background类别不平衡。
- bbox中background太多导致分类器对于目标更不准确,所以目标检测的精度很低。
- two-stage中RPN对anchor进行简单的二分类,大幅筛选掉background的bbox,但是也不能完全解决类别不平衡问题,只能说是在很大程度上减轻了“类别不平衡”对检测精度所造成的影响。
因此,通过重塑标准的交叉熵loss来解决,并且设计了RetinaNet来验证效果。
OHEM(online Hard Example Mining)是近年兴起的另一种筛选example的方法,它通过对loss排序,选出loss最大的example来进行训练,这样就能保证训练的区域都是hard example。这个方法有个缺陷,它把所有的easy example都去除掉了,造成easy positive example无法进一步提升训练的精度。
我们从二元分类的交叉熵(CE)损失开始引入焦点损失
- (1)为标准交叉熵损失,y=1为ground-truth,p是为该类gt的概率。
为了方便计算,重写为:
Balanced Cross Entropy也可以平衡正负样本
- α是给正样本的权重,1-α是给负样本的权重,可以看到α=0.75时取得最好结果
- 对于BCE来说label=0权重为1-α,label=1权重为α;对于CE来说label=0权重为1-α,label>=1的权重都为α
- 对于样本过多的类别,设置较低的权重,比如给负样本设置<0.5的权重,这样也会使减轻被easy example主导的情况,但是实验效果不如Focal loss
γ
gamma
γ = 0 就是CE
- α:为了解决 Class Imbalance 问题而引入,对于样本数过多的那一类样本,α应设得较低,这样就降低了该类样本对于Loss的重要性
- γ:为了降低易分样本的权重,专注于训练难分负样本而引入,(1 - Pt)∈(0,1),当样本易分类时,(1 - Pt)很小,(1 - Pt)^γ会变得更小,这样就减少了简单易分类样本的重要性,相对增加了那些误分类样本的重要性
γ 和 α t gamma和α_t γ和αt的最优值是相互影响的,所以在评估准确度时需要把两者组合起来调节。作者在论文中给出 γ = 2 、 α t = 0.25 gamma=2、α_t=0.25 γ=2、αt=0.25最优
单单就α-balanced Focal Loss用在single stage检测中,α和γ的作用是有重合部分的,因为大量负样本就是easy example,它的权重需要下降,即α和γ都要对它改变。
原文链接
直觉上来说,调制因子减少了易分样本的损失贡献,拓宽了样例接收到低损失的范围。举例来说,当γ=2时,一个样本被分类的Pt=0.9的损失比CE小100多倍。这样就增加了那些误分类的重要性(它们损失被缩了4倍多,当Pt<0.5且γ=2)



