Is Sampling Heuristics Necessary in Training Deep Object Detectors? 论文笔记

我个人认为,这篇论文的行文逻辑比较清晰,实验数据也比较充分,可以作为自己写论文的一个范本进行学习。

作者首先从一阶段与二阶段检测器的简要介绍开始,指出两者的共同点之一是都有采用anchor的机制,而其采用的anchor数量作者用massive来形容,但事实上只有很少的anchors会与物体相交较多,那么不采用anchor可以吗?当然可以,作者接着介绍了anchor-free的方式,最后引出本文想要解决的问题——the imbalance between foreground and background .

现有的解决此类问题的方法,主要可以分为hard samplingsoft sampling
前者指从所有样本中,挑选一部分出来,主要的方法有:①mini-batch biased sampling,②online hard example mining(OHEM), ③Iou-balanced sampling等。
后者指为所有样本给予不同的权重,主要的方法有:①Focal loss,②gradient harmonizing mechanism(GHM)等。

诸如以上的这些sampling heuristics的方法,①只解决了训练过程中的不平衡问题,但没有解决推理过程中的不平衡。并且②会引入额外的超参,增加调参的难度。

既然存在这么多问题,那我们可以摒弃sampling heuristics的方法吗?现有的一些通过级联(cascade)的方式来减少背景样本的方法,尝试在这个方向有所突破,但①其会产生较多的计算量,②并且他们中的大多数还是没有完全摒弃sampling heuristics的方法。

这样看来不采用sampling heuristics的方法来训练检测器是不太现实的?作者首先对Non-Sampling Model进行训练,发现影响 非sampling heuristics 训练效果的关键在于:分类损失的体量与稳定性(其中稳定性由初始设置的偏置量大小决定,在保证速度的前提下,避免分类损失被负样本所淹没).
由此出发,提出了如下三个点,来构成本篇论文。
Guided Loss Scaling
使用动态的w来约束分类损失的大小。
用作者的原话来说就是:
Use the regression loss value of the current mini-batch as the “target” of the rescaled classification loss value.

Is Sampling Heuristics Necessary in Training Deep Object Detectors? 论文笔记
Is Sampling Heuristics Necessary in Training Deep Object Detectors? 论文笔记

代码形式如下(Pytorch):
Is Sampling Heuristics Necessary in Training Deep Object Detectors? 论文笔记我们可以看到,这里的w是两个标量进行计算,即只改变分类损失的大小,其内部组成的比例没有改变,即不会改变梯度的方向

作者这样做的理由也有如下三点:
1.基于之前对Non-Sampling Model进行的实验,无论是Focal Loss 还是 CE Loss,让分类损失与回归损失的数值相差不大时,会有较好的训练效果。
Is Sampling Heuristics Necessary in Training Deep Object Detectors? 论文笔记2.使用回归损失作为分类损失的导向,是简单好操作的。
3.回归损失不会被前后景不平衡所影响。

Optimal Bias Initialization
也是基于之前对Non-Sampling Model进行的实验,发现当初始偏置到10的-5次方的时候,训练不会被负样本淹没。
Is Sampling Heuristics Necessary in Training Deep Object Detectors? 论文笔记
同时,π = 1e-5时,整体的loss也最低,大大降低了训练初期梯度爆炸的风险
Is Sampling Heuristics Necessary in Training Deep Object Detectors? 论文笔记

作者通过CE对π进行求导,训练使得整体loss最低时的π值

Is Sampling Heuristics Necessary in Training Deep Object Detectors? 论文笔记

Is Sampling Heuristics Necessary in Training Deep Object Detectors? 论文笔记
因此当π = Nf / N*C的时候,使得初始的CE值最小,避免其被负样本所淹没。
RetinaNet中(不同网络这个值应该不一样)偏得统计得取N / Nf = 1000,C取COCO数据集的80类,因此得到π的最优值为1.25乘10的-5次方。

而计算出π值还未结束,本节的标题是最优偏置初始化,那为什么是偏置?

这里的π是经过最后一层神经网络分类分支的激活函数(sigmoid等)得到的值,而卷积层刚开始的时候初始化为0,即sigmoid(wx + bias) = sigmoid(bias) = π。
因此此时bias=-log(1-π/π),即bias的最优初始化值为:
Is Sampling Heuristics Necessary in Training Deep Object Detectors? 论文笔记
Adaptive Thresholding
类别自适应阈值的提出,其实是为了解决第二点初始化带来的负面影响,即使得RetinaNet-None预测的概率平均值是远远低于RetinaNet-FL,因此为了提高召回率,得降低这个阈值。
对每个类别,我们可以采用不同的过滤阈值。这里提出一种基于训练样本的类别自适应阈值(class-adaptive threshold):
Is Sampling Heuristics Necessary in Training Deep Object Detectors? 论文笔记
其中第一项是正样本在负样本所占的比例,而第二项是各个类别在所有类中的所占比例。

实验验证及分析过程
挖个坑,后面再写。

上一篇:git中Please enter a commit message to explain why this merge is necessary.


下一篇:day7-列表和列表推导式