其他分享
首页 > 其他分享> > Is Sampling Heuristics Necessary in Training Deep Object Detectors? 论文笔记

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.

在这里插入图片描述
在这里插入图片描述

代码形式如下(Pytorch):
在这里插入图片描述我们可以看到,这里的w是两个标量进行计算,即只改变分类损失的大小,其内部组成的比例没有改变,即不会改变梯度的方向

作者这样做的理由也有如下三点:
1.基于之前对Non-Sampling Model进行的实验,无论是Focal Loss 还是 CE Loss,让分类损失与回归损失的数值相差不大时,会有较好的训练效果。
在这里插入图片描述2.使用回归损失作为分类损失的导向,是简单好操作的。
3.回归损失不会被前后景不平衡所影响。

Optimal Bias Initialization
也是基于之前对Non-Sampling Model进行的实验,发现当初始偏置到10的-5次方的时候,训练不会被负样本淹没。
在这里插入图片描述
同时,π = 1e-5时,整体的loss也最低,大大降低了训练初期梯度爆炸的风险
在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述
因此当π = 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的最优初始化值为:
在这里插入图片描述
Adaptive Thresholding
类别自适应阈值的提出,其实是为了解决第二点初始化带来的负面影响,即使得RetinaNet-None预测的概率平均值是远远低于RetinaNet-FL,因此为了提高召回率,得降低这个阈值。
对每个类别,我们可以采用不同的过滤阈值。这里提出一种基于训练样本的类别自适应阈值(class-adaptive threshold):
在这里插入图片描述
其中第一项是正样本在负样本所占的比例,而第二项是各个类别在所有类中的所占比例。

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

标签:Heuristics,Training,Necessary,训练,heuristics,样本,损失,sampling,loss
来源: https://blog.csdn.net/AIWCZ/article/details/120687559