长尾目标检测-Seesaw Loss[转载]

论文信息: Seesaw Loss for Long-Tailed Instance Segmentation
代码链接:https://github.com/open-mmlab/mmdetection/tree/master/configs/seesaw_loss
整体信息:这是 MMDet 团队参加 LVIS 2020 竞赛获得rank1时提出地损失函数,这篇文章指出了限制检测器在长尾分布数据上性能的一个关键原因:施加在尾部类别(tail class上的正负样本梯度的比例是不均衡的。因此,我们提出 Seesaw Loss 来动态地抑制尾部类别上过量的负样本梯度,同时补充对误分类样本的惩罚。 Seesaw Loss 显著提升了尾部类别的分类准确率,进而为检测器在长尾数据集上的整体性能带来可观的增益。由于原作在知乎上已有讲解,我就不班门弄斧,直接搬运过来,侵权删。

Motivation

在长尾分布的数据集中(例如:LVIS),大部分训练样本来自头部类别(head class),而只有少量样本来自尾部类别(tail class)。因此在训练过程中,来自头部类别的样本会对尾部类别施加过量的负样本梯度,淹没了来自尾部类别自身的正样本梯度。这种不平衡的学习过程导致分类器倾向于给予尾部类别很低的响应,以降低训练的loss。如下图所示,我们统计了在 LVIS v1.0 上训练Mask R-CNN过程中,施加在每个类别的分类器上正负样本累计梯度的分布。

img

显然,头部类别获得的正负样本梯度比例接近1.0,而越是稀有的尾部类别,其获得的正负样本梯度的比例就越小。由此带来的结果就是分类的准确率随着样本数的减少而急剧下降,进而严重影响了检测器的性能。

方法

为了方便直观理解,我们可以把正负样本梯度不均衡的问题,类比于一个一边放有较重物体而另一边放有较轻物体的跷跷板(Seesaw),如下图所示。为了平衡这个跷跷板,一个简单可行的方案就是缩短重物一侧跷跷板的臂长,即减少重物的重量在平衡过程中的权重。回到正负样本梯度不均衡的问题,我们提出了 Seesaw Loss 来动态地减少由头部类别施加在尾部类别上过量的负样本梯度的权重,从而达到正负样本梯度相对平衡的效果。

img

Seesaw Loss的数学表达如下,

$y{i} \in{0,1}$ 是one-hot label, $\mathbf{z}=\left[z{1}, z{2}, \ldots, z{C}\right]$ ,是每一类预测的 logit。此时,对于一个第 i类的样本,它施加在第 j类上的负样本梯度为

这里我们可以发现 $S{ij}$就像一个平衡系数,通过调节 $S{ij}$,我们可以达到放大或者缩小第 i类施加在第 j 类上的负样本梯度的效果。这样,我们就可以通过选择合适 $S_{ij}$来达到平衡正负样本梯度的目的。

在 Seesaw Loss 的设计中,我们考虑了两方面的因素,一方面我们需要考虑类别间样本分布的关系(class-wise),并据此减少头部类别对尾部类别的”惩罚” (负样本梯度);另一方面,盲目减少对尾部类别的惩罚会增加错误分类的风险,因为部分误分类的样本受到的惩罚变小了,因此对于那些在训练过程中误分类的样本我们需要保证其受到足够的”惩罚”。据此, $S_{ij}$由两项相乘得到,

$M{ij}$ (Mitigation Factor)用来缓解尾部类别上过量的负样本梯度, $C{ij}$ (Compensation Factor)用来补充那些错误分类样本上的”惩罚”。

1. Mitigation Factor

img

既然正负样本梯度不平衡的问题来自于样本数量的不平衡,那么一种直接有效的办法就是根据不同类别之间样本数量的相对比例来进行调节。在训练过程中,Seesaw Loss在线地统计每一类的累计训练样本数量 $N{ij}$ 并根据如下公式计算$M{ij}$ ,

也就是说当第 i类比第j类出现地 就会自动根据两类之间不平衡的程度来减少第 i类对第j类施加的负样本梯度。此外,我们在线地累计样本数量,而非使用预先统计的数据集样本分布,这样的设计主要是因为一些高级的样本 sampling 方式会改变数据集的分布(例如:repeat factor sampler, class balanced sampler 等)。在这种情况下,预先统计的方式无法反映训练过程中数据的真实分布。

2. Compensation Factor

img

为了防止过度减少负样本梯度而带来的分类错误,Seesaw Loss会增加对那些错误分类样本的惩罚。具体来说,如果一个第i 类的样本错误分给了第 j类,Seesaw Loss会根据两类之间的分类置信度的相对比值来适当的增加对第 j类的惩罚。$C_{ij}$的计算如下,

3. Normalized Linear Activation

受到face recognition,few-shot learning等领域的启发,Seesaw Loss在预测分类logit的时候对weight和feature进行了归一化处理,即

实验

img

Seesaw相比于 EQL 和 BAGS 两种专门为 LVIS 数据设计的方法取得了显著的性能优势,在 end-to-end 训练的情况下在 test-dev 上取得高达30.0 AP的精度。