2019 sample-free(样本不平衡)目标检测论文阅读笔记
背景
《Is Sampling Heuristics Necessary in Training Deep Object Detectors?》是2019 挂在arXiv上的论文,作者来自于中科大,也是之前ResObj的作者(张凯:2019 ResObj(样本不平衡问题,学习方法)目标检测论文阅读笔记)。并且该论文代码也开源了。
论文地址:
http://arxiv.org/abs/1909.04868
代码 地址 :
https://github.com/ChenJoya/sampling-free
一、研究动机
该论文关注还是样本不平衡问题,但是解决的思路不同于之前的基于soft-sampling的方法( RetinaNet、GHM、IoU-balanced sampling ),这类方法都会比较依赖于超参的调整。
作者的另一篇论文ResObj是通过引入obj分支来处理样本不平衡问题,额外增加了计算量和带宽。该论文则是提出了 sample-free 的机制,主要包含三种策略:
1)偏置初始化;
2)引导损失函数权重;
3)类别分数阈值自适应。
二、具体方法
1)focal loss的分析
首先是将RetinaNet中的focal loss去掉,直接改成CE,作者发现loss会直接爆炸,这个时候将分类loss的权重设为五千分之一,才可以训练,但是最后的性能只有 6.9 。这是因为严重的样本不平衡导致。
为了解决该问题,类似于RetinaNet(仔细读RetinaNet论文,确实也有介绍),引入bias initialization,发现设置为0.01,权重设为五百分之一,性能有 17.9% ;再将设置更小( ),性能可以达到 35.6 ,和采用focal loss相差就不大。具体如下图所示:

进一步地,由于采用bias initialization,类别的分数普遍降低,所以将阈值降低,性能还能进一步提升,达到 36.2 ,比较接近focal loss的性能。
2) sample-free机制
1 Optimal Bias Initialization
作者重写了CE-loss:

其中,N代表总的样本数,代表正样本数,C代表类别数。
不同取值对应的loss如下图所示:

并且为了求得L的最小值,简单利用其导数可以求得

得到:

实际上,该方法是将样本不平衡中对负样本的抑制放在初始化中。
在RetinaNet中,正样本比值约为千分之一,C约为80,所以最优的约为 .
2)Guided loss
由于回归loss是只有正样本的,不存 在 正负样本不平衡问题,所以作者希望通过回归loss的大小来引导分类的loss:

其中,r为:

这里cls的权重是超参,需要进行调整。
3)Class-Adaptive Threshold
这里把之前上一节的分析进一步的拓展,每一类别的分数都自适应改变,其阈值如下:

三、实验结果

总体,实验结果还是比较完整的,one-stage的YOLOv3,RetinaNet,two-stage的Faster RCNN,Cascade RCNN,anchor-free的FoveaBox,均能取得类似或者更好的结果。
另外,作者还对比分析了GHM:

在公平对比GHMR的情况下,两者性能也是较为接近的,但是该方法 速度上会有优势 ,因为GHM要先计算一次梯度,再做统计。
四、总结分析
作者通过三种简单的技巧(主要是利用初始化来抑制样本不平衡)有效地提升了目标检测的性能,其结果在各个检测器上相比soft-sampling的方法其性能相似或者更好,但是超参的调整更少,并且也没有增加计算量。该论文的发现和结论还是蛮有意思的。
另一方面,该论文实际关注的还是正负样本不平衡,显式意义上并不能涵盖难易样本不平衡,不同IoU的样本不平衡这类同样重要的问题,目前这些问题主要还是通过soft-sampling的方法来解决的。