2019 sample-free(样本不平衡)目标检测论文阅读笔记
点击我爱计算机视觉标星,更快获取CVML新技术
本文转载自知乎,已获作者同意转载,请勿二次转载
(原文地址:https://zhuanlan.zhihu.com/p/100052168)
背景
《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的方法来解决的。
目标检测交流群
关注最新最前沿的目标检测技术,扫码添加CV君拉你入群,(如已为CV君其他账号好友请直接私信)
(请务必注明:目标检测)
喜欢在QQ交流的童鞋,可以加52CV官方QQ群:805388940。
(不会时时在线,如果没能及时通过验证还请见谅)
长按关注我爱计算机视觉