赞
踩
《Decoupling Representation and Classifier for Long-Tailed Recognition》
用于长尾识别的解耦表示和分类器
Bingyi Kang、Saining Xie、Marcus Rohrbach、Zhicheng Yan、 Albert Gordo、Jiashi Feng 和 Yannis Kalantidis
来自 Facebook AI 和 新加坡国立大学
视觉世界的长尾分布对基于深度学习的分类模型如何处理类不平衡问题提出了巨大的挑战。现有的解决方案通常涉及类平衡策略(class-balancing strategies),
在这项工作中,我们**将学习过程解耦(decouple)为表示学习和分类(representation learning and classification),并系统地探索不同的平衡策略如何影响长尾识别。**研究结果令人惊讶:
数据不平衡在学习高质量表示时可能不是一个问题;
通过最简单的实例平衡(自然)采样学习的表示,也可以通过仅调整分类器来实现强大的长尾识别能力。
我们进行了广泛的实验,并在常见的长尾基准测试上,如 ImageNet-LT、Places-LT 和 iNaturalist,取得了新的最先进性能,展示了通过使用一种直接的方法解耦表示和分类,可以超越精心设计的损失、采样策略,甚至是带有记忆的复杂模块。
背景介绍:
视觉识别研究在过去几年中取得了快速进展,这主要得益于深度卷积神经网络(CNNs)的使用和大型图像数据集,尤其是 ImageNet 挑战赛。这类数据集通常在训练集中每个对象/类的实例数量上是人为平衡的。然而,视觉现象遵循长尾分布,许多标准方法无法正确建模,导致准确度显著下降。受此启发,最近出现了一些工作,试图研究长尾识别,即在每个类的实例数量高度变化并遵循长尾分布的环境中进行识别。
长尾学习的常见方向:
在学习长尾数据时,一个常见的挑战是实例丰富(或头部)类主导了训练过程。学到的分类模型往往在这些类上表现更好,而对于实例稀少(或尾部)类的性能则显著较差。
问题与改进:
具体策略:
实验:
由于实际应用中普遍存在不平衡数据,长尾识别引起了越来越多的关注(Wang 等人,2017;Zhou 等人,2017;Mahajan 等人,2018;Zhong 等人,2019;Gupta 等人,2019)。近期的研究主要从以下三个方向展开:
数据分布重新平衡(Data distribution re-balancing)
沿着这个方向,研究人员提出了重新采样数据集以实现更平衡的数据分布。这些方法包括
类别平衡损失(Class-balanced Losses)
提出了各种方法,为每个类的不同训练样本分配不同的损失。
从头部类到尾部类的迁移学习(Transfer learning from head- to tail classes)
基于迁移学习的方法通过将学习自丰富训练实例的头部类特征迁移到代表性不足的尾部类,来解决训练数据不平衡的问题。最近的工作包括迁移类内方差(Yin et al., 2019)和迁移语义深层特征(Liu et al., 2019)。然而,设计特定的模块(例如外部记忆)以进行特征迁移通常是一项非平凡(non-trivial)的任务。
其他:
在我们的工作中,我们主张解耦表示和分类。我们证明,在长尾场景中,这种分离允许直接的方法实现高识别性能,而无需设计采样策略、平衡感知损失或添加记忆模块。
长尾识别的学习表征/学习长尾识别的表示
概述:
符号表示(Notation)
我们定义了本文中使用的符号表示。
采样策略(Sampling strategies)
在本节中,我们介绍了一系列旨在为表示学习和分类器学习重新平衡数据分布的采样策略。对于下面介绍的多数采样策略,从类别
j
j
j 采样数据点的概率
p
j
p_j
pj 由以下公式给出:
p
j
=
n
j
q
∑
i
=
1
C
n
i
q
(
1
)
p_j=\frac{n^q_j}{\sum^C_{i=1} n^q_i}\qquad\qquad(1)
pj=∑i=1Cniqnjq(1)
其中
q
∈
[
0
,
1
]
q\in[0, 1]
q∈[0,1] 且
C
C
C 是训练类别数量。不同的采样策略对应于
q
q
q 的不同值,下面我们将介绍对应于
q
=
1
q = 1
q=1、
q
=
0
q = 0
q=0 和 q$ = 1/2$ 的策略:
实例平衡采样(Class-balanced sampling)
这是采样数据的最常见方式,每个训练示例被选中的概率相等。对于实例平衡采样,概率 $p^{IB}_j $ 由公式 1 给出,其中 q = 1 q=1 q=1,即从类别 j j j 采样的数据点与训练集中类别的基数 n j n_j nj 成比例。
类别平衡采样(Class-balanced sampling)
平方根采样(Square-root sampling)
已经探索了先前采样策略的许多变体。一个常用的变体是平方根采样(Mikolov et al., 2013; Mahajan et al., 2018),其中 q q q 在上述公式 (1) 中设置为 1 / 2 1/2 1/2。
渐进均衡采样(Progressively-balanced sampling)
最近的方法(Cui et al., 2018; Cao et al., 2019)使用了混合采样方式,即上述采样策略的组合。在实践中,这包括首先在若干个时期中使用实例平衡采样,然后在最后的时期使用类别平衡采样。这些混合采样方法需要将切换采样策略之前的时期数作为一个显示的超参数设置。
在这里,我们实验了一种更柔和的版本,即渐进均衡采样,它随着学习的进展,逐渐在实例平衡和类别平衡采样之间“插值”。其类别
j
j
j 的采样概率/权重
p
j
p_j
pj 现在是时期
t
t
t 的函数,
p
j
P
B
(
t
)
=
(
1
−
t
T
)
p
j
I
B
+
t
T
p
j
C
B
(
1
)
p^{PB}_j(t)=\left(1−\frac{t}{T}\right)p^{IB}_j+\frac{t}{T}p^{CB}_j\qquad\qquad(1)
pjPB(t)=(1−Tt)pjIB+TtpjCB(1)
其中
T
T
T 是总时期数。附录中的图 3 描述了采样概率。
损失重加权策略(Loss re-weighting strategies)
针对不平衡数据的损失重加权函数已经得到了广泛的研究,而且本文的范围也不仅仅是检查所有相关的方法。更重要的是,我们发现一些最新报告高性能的方法很难训练和复现 而且在许多情况下需要大量的、特定于数据集的超参数调整。在附录的 A 部分中,我们总结了这一领域的最新、性能最佳的方法。在第 5 节中,我们展示了一些配备适当平衡分类器的基线方法,其性能与最新的损失重加权方法相比,即使不是更好,也相当不错。
长尾识别分类
概述:
当在平衡数据集上学习分类模型时,分类器权重通常与模型参数 θ \theta θ 一起训练,以提取表示 f ( x i ; θ ) f(x_i;\theta) f(xi;θ),通过最小化地面真实值(ground truth,指标准答案,此处指真实值) y i y_i yi 和预测 W T f ( x i ; θ ) + b \boldsymbol{W}^Tf(x_i;\theta)+\boldsymbol{b} WTf(xi;θ)+b 之间的交叉熵损失。这也是长尾识别的一个典型基线。
尽管已经提出了各种重新采样、重加权和从头部类别到尾部类别的表示迁移方法,但总体方案仍然是相同的:
在本节中,我们考虑在长尾识别中解耦表示和分类。
分类器重新训练(Classifier Re-training,cRT)
一个直接的方法是使用类别平衡采样重新训练分类器。也就是说,保持表示固定,我们随机重新初始化并使用类别平衡采样优化分类器权重 W \boldsymbol{W} W 和 b \boldsymbol{b} b 的一小部分时期。类似的方法也被最近在(Zhang et al., 2019)中用于长尾视频数据集上的动作识别。
最近类均值分类器(Nearest Class Mean classifier,NCM)
另一种常用的方法是首先在训练集上为每个类计算均值特征表示,然后使用余弦相似度或基于 L2 正则化均值特征的欧氏距离进行最近邻搜索(Snell et al., 2017; Guerriero et al., 2018; Rebuffi et al., 2017)。尽管这种方法很简单,但它是一个强大的基线(参见第 5 节的实验评估);余弦相似度的固有规范化减轻了权重不平衡问题(也请参见图 4)。
τ \tau τ-规范化分类器( τ \tau τ-normalized classifier)
我们研究了一种有效的方法来重新平衡分类器的决策边界,这是受到一个经验观察的启发:在与实例平衡采样联合训练后,权重 ‖ w j ‖ ‖w_j‖ ‖wj‖ 的范数与类别的基数 n j n_j nj 相关,而在使用类别平衡采样微调分类器后,分类器权重的范数趋于更加相似(参见图 2-left)。
受到上述观察的启发,我们考虑通过直接调整分类器权重范数来纠正决策边界的失衡,通过以下
τ
\tau
τ-规范化过程。形式上,设
W
=
w
j
∈
R
d
×
C
\boldsymbol{W}={w_j}\in\R^{d×C}
W=wj∈Rd×C,其中
w
j
∈
R
d
w_j\in\R^d
wj∈Rd 是类
j
j
j 对应的分类器权重。我们通过以下方式缩放
W
\boldsymbol{W}
W 的权重得到:
w
~
i
=
w
i
∣
∣
w
i
∣
∣
τ
(
3
)
\tilde{w}_i=\frac{w_i}{||w_i||^{\tau}}\qquad\qquad(3)
w~i=∣∣wi∣∣τwi(3)
可学习权重缩放(Learnable weight scaling,LWS)
另一种解释
τ
\tau
τ-规范化的方式是将它视为对每个分类器
w
i
w_i
wi 的幅度进行重新缩放,同时保持方向不变。这可以表示为
W
i
~
=
f
i
∗
w
i
,
f
i
=
1
∣
∣
w
i
∣
∣
T
\tilde{W_i}=f_i*w_i,\quad f_i=\frac{1}{||w_i||^T}
Wi~=fi∗wi,fi=∣∣wi∣∣T1
尽管对于
τ
\tau
τ-规范化通常通过交叉验证来选择
τ
\tau
τ,我们进一步在训练集上学习
f
i
f_i
fi,使用类别平衡采样(如 cRT)。在这种情况下,我们保持表示和分类器权重固定,只学习缩放因子
f
i
f_i
fi。在我们的实验中,我们将这种变体称为可学习权重缩放(LWS)。
数据集
我们在三个大规模的长尾数据集上进行了广泛的实验,包括 Places-LT、ImageNet-LT 和 iNaturalist 2018。
评估规程:
实施:
抽样策略和解耦学习
图片注解:
在使用 ResNeXt-50 的 ImageNet-LT 上,不同分类器对每个类别集合(split)的性能表现。彩色标记表示学习表示时使用的采样策略。
实验概述:
在图 1 中,我们比较了传统联合训练方案中不同采样策略与解耦学习方案的多种变体在 ImageNet-LT 数据集上的表现。
接下来,我们讨论几个关键观察结果。
结果分析:
在联合训练时,采样策略很重要
联合学习还是解耦学习?
对于图 1 中展示的大多数情况,使用解耦方法的整体性能显著更好,除了多样本情况之外的所有类别集合。
即使是最邻近类均值(NCM)的非参数方法在大多数情况下也非常有竞争力,而 cRT 和 τ \tau τ-规范化方法则大幅超过了联合训练的基线(即比联合学习的分类器高出 5%),甚至在渐进平衡采样的最佳联合训练设置中,整体准确率比联合训练的设置高出 2%。对于中等和少样本类别,增益分别达到了 5% 和 11%。
为了进一步证明将表示和分类器解耦是有益的,我们实验了同时微调骨干网络(ResNeXt-50)和线性分类器。在表 1 中,我们展示了当整个网络使用标准或较小(0.1×)的学习率进行微调、仅微调骨干网络的最后一个块,或仅重新训练线性分类器并固定表示时的结果。
整个网络微调的性能最差(46.3% 和 48.8%),而保持表示冻结的性能最佳(49.5%)。对于中等/少样本类别,这一趋势更为明显。
这个结果表明,对于长尾识别来说,将表示和分类器解耦是可取的。
实例平衡采样提供了最泛化的表示
在所有解耦方法中,当涉及到整体性能和除了多样本类别之外的所有分割时,我们发现实例平衡采样给出了最好的结果。这尤其有趣,因为它意味着数据不平衡可能在学习高质量表示时不是一个问题。
如何平衡分级器?
图片注解:
在图 2(左)中,我们实证地展示了所有分类器的权重向量的 L 2 L_2 L2 范数,以及按训练集中实例数量降序排序的训练数据分布。
在图 2(右)中,我们进一步研究了 τ \tau τ-规范化分类器的温度参数 τ \tau τ 变化时性能如何变化。该图显示,随着 τ \tau τ 从 0 增加,多样本准确率急剧下降,而少样本准确率急剧增加。
在长尾数据集上与最先进技术的比较
在本节中,我们将解耦方案的性能与其他最近的工作进行比较,这些工作在三个常见的长尾基准测试中报告了最先进的性能:ImageNet-LT、iNaturalist 和 Places-LT。结果分别展示在表 2、表 3 和表 4 中。
ImageNet-LT
图片注解:
ImageNet-LT 上不同骨干架构的长尾识别准确率。 † \dagger † 表示直接从 Liu et al. (2019) 复制的结果。 ∗ * ∗ 表示使用作者的代码复现的结果。 ∗ ∗ ** ∗∗ 表示使用我们的表示学习阶段实现的 OLTR。
表 2 展示了 ImageNet-LT 的结果。尽管相关的工作使用了 ResNet-10,但我们发现在这个数据集上使用更大的骨干架构可以显著提高性能。因此,我们展示了三个骨干网络的结果:ResNet-10、ResNeXt-50 和更大的 ResNeXt-152。
对于 Liu et al. (2019) 的最先进的 OLTR 方法,我们采用了论文中报告的结果,以及我们使用作者开源代码库复现的结果,该代码库有两个训练设置:代码库中建议的设置和我们用于表示学习的训练设置。
从表中我们可以看出,非参数解耦 NCM 方法的性能与最先进的方法相当。
我们还看到,通过重新训练或 τ \tau τ-规范化适当重新平衡分类器,我们得到的结果,无需额外的装饰,就可以超过所有骨干架构的当前最先进性能。
我们进一步尝试在解耦 cRT 设置的基础上添加 Liu et al. (2019) 的记忆机制,但记忆机制似乎并没有进一步提高性能(请参见附录 B.4)。
iNaturalist 2018
图片注解:
iNaturalist 2018 上的总体准确率。带有 † \dagger † 的行表示直接从 Cao et al. (2019) 复制的结果。我们展示了训练 90/200 个周期的结果。
我们进一步在 iNaturalist 2018 数据集上评估我们的解耦方法。我们展示了经过 90 和 200 个周期的结果,因为我们发现 90 个周期对于表示学习阶段来说不足以收敛;这与 Cao et al. (2019) 中的训练周期不同,他们在那里训练了 90 个周期。
从表 3 中我们可以看出,结果与 ImageNet-LT 案例一致:
Places-LT
图片注解:
Places-LT 上的结果,从 ImageNet 预训练的 ResNet152 开始。 † \dagger † 表示直接从 Liu et al. (2019) 复制的结果。
对于 Places-LT,我们遵循 Liu et al. (2019) 的协议,从完整的 ImageNet 数据集上预训练的 ResNet-152 骨干网络开始。
与 Liu et al. (2019) 类似,我们然后使用实例平衡采样微调骨干网络以进行表示学习。分类遵循我们的解耦方法,固定表示不变。
正如我们在表 4 中所看到的,所有三种解耦方法都超过了最先进的方法,包括 Lifted Loss (Oh Song et al., 2016)、Focal Loss (Lin et al., 2017)、Range Loss (Zhang et al., 2017)、FSLwF (Gidaris & Komodakis, 2018) 和 OLTR (Liu et al., 2019)。
再一次, τ \tau τ-规范化分类器给出了最佳的性能,特别是在中等和少样本类别中取得了显著的改进。
损失再权重策略
在这里,我们总结了我们在第 5 节中与之比较的一些最佳表现的损失重加权方法。
Focal loss(Lin et al., 2017)是在目标检测的背景下引入的,其中大多数常见基准都存在不平衡。Focal loss 的目的是通过降低容易样本的样本级分类损失来平衡模型训练。为此,给定样本
x
i
x_i
xi 对其真实类别
y
i
y_i
yi 的概率预测
h
i
h_i
hi,它将一个重加权因子
(
1
−
h
i
)
γ
(1-h_i)^\gamma
(1−hi)γ 与标准交叉熵损失 LCE 相加,其中
γ
>
0
\gamma>0
γ>0:
L
f
o
c
a
l
:
=
(
1
−
h
i
)
γ
L
C
E
=
−
(
1
−
h
i
)
γ
log
(
h
i
)
(
5
)
\mathcal{L}_{focal}:=(1−h_i)^\gamma\mathcal{L}_{CE}=−(1−h_i)^\gamma\log(h_i)\qquad\qquad(5)
Lfocal:=(1−hi)γLCE=−(1−hi)γlog(hi)(5)
对于容易样本(可能主导训练样本)以及它们对真实类别的较大预测概率
h
i
h_i
hi,相应的交叉熵损失将被降低。
最近,Cui et al. (2019) 提出了一种类平衡的 Focal 损失变体,并将其应用于长尾识别。他们对来自类别 j j j 的样本调制了 Focal 损失,平衡感知系数等于 ( 1 − β ) / ( 1 − β j n ) (1−\beta)/(1−\beta^n_j ) (1−β)/(1−βjn)。
非常最近,Cao et al. (2019) 提出了一种标签分布感知的边缘(LDAM)损失,鼓励少样本类别具有更大的边缘,他们的最终损失形式化为一个带有强制边缘的交叉熵损失:
L
L
D
A
M
:
=
−
log
e
y
^
−
Δ
j
e
y
^
−
Δ
j
+
∑
c
≠
j
e
y
^
−
Δ
c
(
6
)
\mathcal{L}_{LDAM}:=−\log\frac{e^{\hat{y}-\Delta_j}}{e^{\hat{y}-\Delta_j}+\sum_c\ne je^{\hat{y}-\Delta_c}}\qquad\qquad(6)
LLDAM:=−logey^−Δj+∑c=jey^−Δcey^−Δj(6)
其中
y
^
\hat{y}
y^ 是逻辑值,
Δ
j
\Delta_j
Δj 是一个类感知的边缘,与
n
j
1
/
4
n^{1/4}_j
nj1/4 成反比。
进一步分析和结果
抽样策略
在图 3 中,我们可视化了我们探索的四种采样策略的采样权重。在表 5 中,我们展示了在联合训练分类器和表示/骨干架构时,在 ImageNet-LT 上的“所有”类别的准确率。很明显,更好的采样策略在联合训练分类器和表示/骨干架构时有所帮助。
图片注解:
ImageNet-LT 的采样权重 p j p_j pj。类别按 x 轴上递减的 n j n_j nj 顺序排列。
图片注解:
使用不同采样策略联合学习表示和分类器时的 ImageNet-LT 准确率。本表中的结果是图 1 中呈现结果的一个子集。
τ \tau τ-标准化和 NCM 的分类判定界限
在图 4 中,我们展示了使用公式 (3) 规范化前后以及使用余弦距离时的分类器决策边界。平衡范数也导致更平衡的决策边界,使得少样本类别的分类器能够占据更多的空间。
图片注解:
不同分类器及其相应决策边界的说明,其中 w i w_i wi 和 w j w_j wj 分别表示类别 i i i 和 j j j 的分类权重, C i C_i Ci 是属于类别 i i i 在特征空间中的分类锥, m i m_i mi 是类别 i i i 的特征均值。从左到右:
表 6 对第 4 节中介绍的四种不同的分类器学习方法进行了比较分析。
改变骨干网结构的大小
ImageNet-LT
在图 5 中,我们比较了不同方法下不同骨干架构大小(模型容量)的性能,包括
我们观察到:
作者实现的 OLTR 在较大模型上过拟合,
使用我们的训练设置(不同的训练和 LR 调度)可以减轻过拟合,
在重新训练分类器时添加记忆单元不会增加性能。表 2 的额外结果在表 7 中给出。
iNaturalist 2018
图片注解:在 iNaturalist 2018 上使用不同骨干网络(ResNet-50、ResNet-101 和 ResNet-152)和不同训练周期(90 & 200)的综合结果
在表 8 中,我们呈现了表 3 结果的扩展版本。我们展示了每个分割的结果以及使用 ResNet-101 骨干网络的结果。正如我们在第 5 节中提到的,仅训练 90 个周期会得到次优的表示,而大型模型和更长的训练则在这个具有挑战性的大规模任务上获得更高的准确率。
更有趣的是,我们发现在重新平衡分类器后,多样本、中等样本和少样本分割的性能大致相等,只在多样本类别中略有优势。
关于确定 τ \tau τ 的探索
当前的 τ \tau τ-规范化策略确实需要一个验证集来选择 τ \tau τ,这在实际场景中可能是一个劣势。我们能做得更好吗?
在训练集上寻找 τ \tau τ 值。
我们还尝试直接在训练数据集上选择 τ \tau τ。令人惊讶的是,仅使用训练集选择的 τ \tau τ 值在测试集上的最终性能非常相似。
我们实现这一目标的方法是:从训练集中模拟一个平衡的测试分布。
首先,我们将整个训练集通过网络,为每个类别得到 top-1 准确率。
然后,我们计算每个类别的特定准确率并求平均值,将平均准确率作为确定 τ 值的指标。
如表 9 所示,我们比较了在所有三个数据集上使用训练集和验证集找到的 τ \tau τ 值。我们可以看到, τ \tau τ 的值和整体性能都非常接近,这证明了在训练集上寻找 τ \tau τ 的有效性。这种策略提供了一种在验证集不可用时找到 τ \tau τ 的实际方法。
在训练集上学习 τ \tau τ 值
我们进一步研究是否可以自动学习 τ \tau τ 值而不是网格搜索。为此,我们设置 τ \tau τ 作为一个可学习的参数,并在平衡采样的训练集上学习它,同时保持所有其他参数固定(包括骨干网络和分类器)。我们还比较了学习到的 τ \tau τ 值和表 9 中相应的结果(标记为“learn” = 3)。这进一步减少了搜索最佳 τ \tau τ 值的人工工作,并使策略更适用于实际使用。
MLP 分类器与线性分类器的比较
我们在实验中使用了不同层数(2层或3层)和不同隐藏神经元数量(2048 个或 512 个)的多层感知机(MLPs)。我们使用 ReLU 作为激活函数,将批量大小设置为 512,并在固定表示上使用平衡采样训练 MLP,训练 10 个周期,使用余弦学习率调度,学习率逐渐减小到零。我们在两个数据集上进行了实验。
在 ImageNet-LT 上,我们使用 ResNeXt50 作为骨干网络。结果总结在表 10 中。我们可以看到,当 MLP 变得更深时,性能变差。这可能意味着骨干网络已经足够学习到具有区分性的表示。
对于 iNaturalist,我们使用训练了 200 个周期的 ResNet50 模型的表示。我们只考虑一个隐藏维度为 2048,因为该数据集包含更多的类别。结果展示在表 11 中,并且显示当使用更深层的分类器时,性能下降更为严重。
用于分类的余弦相似度
我们尝试用带有(标记为“cos”)和没有(标记为“cos(noRelu)”)最后一个 ReLU 激活函数的余弦相似度分类器替换线性分类器,遵循 Gidaris & Komodakis (2018)。我们在表 12 中总结了结果,它们彼此相当。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。