Contrastive Learning based Hybrid Networks for Long-Tailed Image Classification
Abstract
在长尾图像分类中,判别式图像表示的学习起着非常重要的作用,因为它可以在不平衡的情况下实现分类器的学习。鉴于对比学习在表征学习中表现出的优越性,本文探索了一种有效的有监督的对比学习策略,并将其用于从不平衡数据中学习更好的图像表征,以提高分类精度具体来说提出了一种新的混合网络结构由有监督的对比损失学习图像表征和交叉熵损失学习分类器组成,其中学习从特征学习逐步过渡到分类器学习,体现了特征越强分类器越好的思想。我们探讨了特征学习中对比损失的两个变量,这两个变量的形式不同,但有一个共同的想法,即在归一化嵌入空间中将同一类的样本拉到一起,并将不同类的样本分开。其中之一是最近提出的有监督对比损失(SC),它是在现有的无监督对比损失的基础上,通过加入来自同一类的正样本而设计的。另一种是典型的监督对比(PSC)学习策略,它解决了标准SC丢失时的高强度记忆消耗问题,从而在有限的记忆预算下显示出更大的潜力。在三个长尾分类数据集上的扩展实验证明了所提出的基于对比学习的混合网络在长尾分类中的优势。
1. Introduction
在现实世界中,图像类通常呈长尾分布[25]。虽然一些公共类(头部类)可以有足够的图像样本,但一些不常见或罕见的类别(尾部类)可能会被有限的样本所低估。数据的不平衡性给无偏分类器的学习带来了很大的挑战。
现有的大多数工作都是通过缓解尾类中的数据不足来解决数据不平衡问题,以防止模型被头类所控制。典型的方法包括数据重采样[1,8,35,4,28]、损失加权[26,7,30,33]、边际修正[3]和数据扩充[19,6,29]。最近提出了一种新的方法,通过将表征学习和分类器学习分离为两个阶段来实现长尾图像分类[15,37,36]。这类工作的共同动机[15,37,36]是图像特征学习和分类器学习可能有利于不同的数据采样策略,因此其重点是为这两项任务确定合适的采样策略。具体来说,在交叉熵损失下,随机数据采样更有利于特征学习,而类平衡采样是一种更好的分类器学习方法。尽管取得了很好的精度,这些方法仍然保留了一个问题,即典型的交叉熵是否是从不平衡数据中学习特征的理想损失。直观地说,如图1所示,从典型交叉熵中学习到的特征分布可能是高度偏斜的,这可能导致有偏分类器[24,12],从而损害长尾分类。
在这项工作中,我们探索了有效的对比学习策略,并对其进行了调整,以便从不平衡的数据中学习更好的图像表示,从而促进长尾图像分类。具体来说,我们提出了一种新的混合网络结构,它由用于学习图像表示的对比损失和用于学习的交叉熵损失组成分类器。到为了体现更好的特征造就更好的分类器这一理念,我们遵循一个课程,将学习从特征学习逐步过渡到分类器学习。我们研究了有监督对比学习策略的两种变体,如图1所示,它们的形式各不相同,但有一个共同的想法,即在规范化嵌入空间中将同一类的样本拉到一起,并将不同类的样本分开。通过这样做,较少的特征,从而减少偏见的分类器有望获得。
我们探索的第一个对比学习是在不平衡情景中学习特征的最近提出的监督对比(SC)学习[18],它是从最先进的无监督对比学习[5]扩展而来的,通过将不同的课堂内样本作为每个锚定的积极因素。在无监督对比学习[5,9]中,特征学习和分类器学习分为两个独立的阶段,原始的SC学习[18]首先使用SC-loss学习特征,然后冻结特征来学习分类器。本文认为,在完全监督的情况下,这种两阶段学习可能不是一种最佳选择,这会损害特征和分类器的兼容性。我们提出了一个混合框架来联合学习特征和分类器,并通过实验证明了我们的联合学习模式的优势。
在SC学习中加入课堂内积极样本的一个问题是它会导致额外的记忆消耗量SC learning[18],将同一类到正片的距离与其他类到负片的距离进行对比,这导致内存消耗与正片大小和负片大小的乘积成线性关系。因此,在有限的内存预算下,负片大小需要缩小。这可能会影响从对比损失中学习到的特征的质量[5],特别是在处理具有大量类的数据集时,例如,不自然列表[11]。
为了解决前面提到的源于SC丢失的记忆瓶颈问题,我们进一步提出了一种典型的有监督对比(PSC)学习策略,该策略与标准SC学习具有相似的目标,但避免了显式的正负采样。在PSC学习中,我们为每个类学习一个原型,并强制将每个样本拉到其类的原型上,然后从所有其他类的原型上推开。从这个意义上说,pscs策略使得基于softmax的交叉熵的数据采样更加灵活有效。在有限的内存预算下处理大规模数据集具有明显的优势。此外,PSC损失还有其他一些可能有助于不平衡分类的特性,例如对数据采样不太敏感,以及通过使用每个类的多个协议捕获更精细的类内数据分布的可能性。
在三个长尾图像分类数据集上的实验表明,所提出的基于对比学习的混合网络能够明显优于基于交叉熵的同类网络,并建立了新的最先进的长尾图像分类性能。这项工作的贡献可以总结如下:
- 提出了一种用于长尾影像分类的混合网络结构。该网络由用于特征学习的对比损失和用于分类器学习的交叉熵损失组成。这两个学习任务是按照课程来执行的,以体现更好的功能可以简化学习的理念。
- 我们探索有效的监督对比学习策略来学习更好的特征以提高长尾分类的性能。针对标准监督对比学习带来的记忆瓶颈,提出了一种典型的监督对比学习方法。
- 我们发现有监督对比学习可以更好地代替典型的交叉熵损失,用于长尾分类中的特征学习。得益于学习到的更好的特性,我们的混合网络实质上实现了基于交叉熵的对等网络。
代码已经公开在https://k-han.github.io/HybridLT
图1 举例说明了基于交叉熵(上)、标准监督对比(SC)(左下)和原型监督对比(PSC)(右下)损失的长尾图像分类特征学习。交叉熵损失学习倾斜的特征,这会导致分类器有偏。有监督对比学习(下两个)学习更多的类内紧凑和类间可分离的特征,这有利于分类器学习。在标准的SC学习中,锚定样本和来自同一类的正样本一起被拉到一起,锚定被从其他类的负样本中推开。在PSC学习中,每个样本都被拉向其类的原型(用星号标记),并被推离其他类的原型。
2. Related Work
我们的工作与长尾分类和对比学习密切相关
2.1. Longtailed image classification
长尾分类是机器学习中一个长期存在的研究问题,其关键是克服数据不平衡问题[21,16]。鉴于深度神经网络在平衡分类任务中取得的巨大成功,越来越多的注意力转移到提出基于神经网络的长尾问题解决方案上分类本文主要研究基于神经网络的方法,大致可分为以下几类。
数据重采样 数据重采样是一种常用的人为平衡不平衡数据的策略。两种重采样技术是欠采样[1,28,8]和过采样[1,32,31]。欠采样丢弃头类中的少量数据,过采样重复从尾类中采样数据。结果表明,过采样会导致对尾部类的过度拟合[4,28],欠采样可能会丢失关于头部类的信息,但如果头部类的每个样本都接近同一类的其他样本,则可能会得到很好的结果[28]。
数据增强 如上所述,尽管过采样增加了从尾部类中看到更多数据的机会,但它不会生成新的信息,从而导致过拟合。一种补救方法是使用强大的数据扩充来丰富尾部类。现有的工作从不同的角度接近这一目标。[29]中的工作使用生成模型为尾部类生成新样本,作为现有实例的对流组合。另一系列研究试图将信息从头班转移到尾班。在[19]中,作者通过向头部样本添加可学习的噪声来生成尾部类的数据。在另一项工作[6]中,作者将图像的特征映射分解为类一般特征和类特定特征,并将头部图像的类一般特征和尾部图像的类特定特征相结合,合成新的尾部数据图像。在[23], 将类内角度方差从头部类转移到尾部类,以扩大尾部类的多样性。
损失重加权 除了上述数据库平衡策略外,另一系列研究建议通过修改损失函数来减轻数据不平衡的负面影响。损失重加权是为不平衡分类定制损失函数的一种简单但有效的方法,其基本思想是在损失函数中对尾部样本进行加权,对头部样本进行加权[17]。现有的解决方案主要不同于如何定义不同类别的权重。在类敏感交叉熵损失[14]中,分配给每个类的权重与样本数成反比。在类平衡损失[7]中,作者根据不同类的实际体积确定重加权系数,称为有效数。在文献[30]中,对训练样本的权值进行了优化,以最大限度地减少保留评估集的损失。
边界修改 研究表明,当数据集是可分离的时,低重加权的影响会减小[2]。一个直观的选择是将分隔符移近一个主导类[27]。在文献[3]中,作者提出了将每类裕度积分到交叉熵损失中。MARGIN与类的先验概率成反比,因此可以在尾部类和其他类之间执行更大的余量。工作[33]实现了另一种动机下的边际,即对每个尾部样本抑制头部样本产生的负方差。
解耦学习 解耦学习是近年来发展起来的一种非平衡分类方法。为了确定不同因素对长期识别能力的具体贡献,这项工作[15]将长期分类分解为两个独立的阶段:表征学习和分类器学习。这两个阶段都使用了交叉熵损失函数,得出了特征学习有利于随机数据采样和类平衡采样的结论学习。平行对此,工作[37]得出了类似的结论根据经验,在此外,在[37]中提出了一个双边分支网络,其中一个分支使用随机抽样来学习头数据,另一个分支使用反向抽样来强调失败的数据。这两项工作的一个共同点在于为支持长尾分类的不同学习任务选择合适的数据采样策略。但这两种研究都局限于交叉熵损失。
2.2. Contrastive learning
近年来,对比学习在无监督表征学习中显示出巨大的应用前景[5,9]。其基本思想是通过对比不同图像之间的一致性,使同一图像的不同增强视图之间的一致性达到最大。一些关键因素使对比损失在学习有用的表示时获得成功,包括适当的数据扩充、表示和对比损失之间可学习的非线性转换,以及负数据的大批量处理[5]。监督对比学习(SC)是对比学习的一个扩展,它通过整合标签信息来合成正面和负面的图像。在无监督特征学习的基础上,SC学习采用了两阶段的学习方式,第一阶段利用对比损失学习特征,第二阶段利用交叉熵损失学习分类器。
3.Main Approach
在这一部分中,我们首先提出了基于控制学习的混合网络的长尾分类框架。然后,我们详细介绍了作为混合网络一部分的两种有监督的对比学习方法。
图2 概述了提出的基于对比学习的混合网络结构。该网络由一个基于有监督对比学习(SCL)的特征学习分支和一个基于交叉熵(CE)损失的分类器学习分支组成。在这两个分支之间共享一个主干来提取图像表示,然后采用非线性MLP- f e ( ⋅ ) f_{e}(·) fe(⋅)结合 ℓ 2 {\ell}_{2} ℓ2规范化来转换图像表示以减少对比度损失,并在图像表示之上使用一个线性层 f c ( ⋅ ) f_{c}(·) fc(⋅)来预测分类。课程设计用于控制网络培训期间这两个分支的权重,即 α \alpha α和 1 − α 1-\alpha 1−α。
3.1. A Hybrid Framework for Longtailed Classification
图2示出了所提出的用于长尾图像分类的混合框架的概述。该网络由两个分支组成:一个用于图像表征学习的对比学习分支和一个用于分类器学习的交叉熵驱动分支。特征学习分支的目标是学习具有类内紧性和类间可分性的特征空间。分类器学习分支期望基于从同级分支获得的区分特征来学习较少偏向的分类器。为了实现更好的特征有助于分类器学习,从而产生更多的泛化分类器的想法,我们按照课程[37]在培训阶段调整这两个分支的权重。具体来说,特征学习在训练开始时起主导作用,分类器学习逐渐主导训练。
在这两个学习分支之间共享一个主干网络,例如ResNet[10],以学习每个图像
x
x
x的图像表示
r
∈
R
D
E
r \in {\mathcal{R}}^{{D}_{E}}
r∈RDE。投影头
f
e
(
⋅
)
{f}_{e}(·)
fe(⋅)将图像表示
r
r
r映射成更适合于对比的向量表示
z
∈
R
D
S
z \in {\mathcal{R}}^{{D}_{S}}
z∈RDS。我们将这种投影头
f
e
(
⋅
)
{f}_{e}(·)
fe(⋅)实现为一个具有一个隐层的非线性多层感知器(MLP)层。这样投影模块被证明对提高前一层的表示质量非常重要[5]。然后,对
z
z
z应用
ℓ
2
{\ell}_{2}
ℓ2标准化,以便内积可以用作距离度量。为了避免旋转的滥用,除非另有说明,否则我们使用z作为x的归一化表示,用于对比损失计算。然后,将有监督的对比损失
L
S
C
L
{\mathcal{L}}_{SCL}
LSCL应用于归一化表示的拓扑结构上进行特征学习。分类学习分支更简单,它将一个线性层
f
c
(
⋅
)
{f}_{c}(·)
fc(⋅)应用于图像表示
r
r
r,以预测用于计算交叉熵损失
L
C
E
{\mathcal{L}}_{CE}
LCE的类逻辑
s
∈
R
D
C
s \in {\mathcal{R}}^{{D}_{C}}
s∈RDC。由于两损失函数的性质不同,特征学习和分类器学习分支有不同的数据采样策略。特征学习分支以输入样本为基点
x
i
{x}_{i}
xi,与正样本
{
x
i
+
}
=
{
x
j
∣
y
i
=
y
j
,
i
≠
j
}
\left\{\mathbf{x}_{i}^{+}\right\}=\left\{\mathbf{x}_{j} \mid y_{i}=y_{j}, i \neq j \right\}
{xi+}={xj∣yi=yj,i=j}从同一类和其他类负样本
{
x
i
−
}
=
{
x
j
∣
y
i
≠
y
j
}
\left\{\mathbf{x}_{i}^{-}\right\}=\left\{\mathbf{x}_{j} \mid y_{i} \neq y_{j}\right\}
{xi−}={xj∣yi=yj}。特征学习分支的输入批被表示为
B
S
C
=
x
j
,
x
i
+
,
x
i
−
\mathcal{B}_{SC}=\mathbf{x}_{j},\mathbf{x}_{i}^{+},\mathbf{x}_{i}^{-}
BSC=xj,xi+,xi−。分类学习分支直接获取图像并标记成对输入
B
C
E
=
{
{
x
j
,
y
i
}
}
\mathcal{B}_{CE}=\{\{\mathbf{x}_{j},{y}_{i}\}\}
BCE={{xj,yi}}。混合网络的最终损失函数为:
L
hybrid
=
α
⋅
L
S
C
L
(
B
S
C
)
+
(
1
−
α
)
⋅
L
C
E
(
B
C
E
)
\mathcal{L}_{\text {hybrid }}=\alpha \cdot \mathcal{L}_{S C L}\left(\mathcal{B}_{S C}\right)+(1-\alpha) \cdot \mathcal{L}_{C E}\left(\mathcal{B}_{C E}\right)
Lhybrid =α⋅LSCL(BSC)+(1−α)⋅LCE(BCE)
其中
α
\alpha
α是随着epoch变化的权重,如图2所示
3.2. Supervised contrastive loss and its memory issue
监督对比损失[18]是对非监督对比损失[5]的扩展。SC损失和UC损失的关键区别在于锚定图像正负样本的组成。在UC丢失中,正面图像是锚图像的另一个增强视图。在SC-loss中,与另一个增强的对应部分不同,阳性部分还包括来自同一类的一些其他图像。在本文中,我们统一了锚
x
i
{x}_{i}
xi中所有正样本
{
x
i
+
}
=
{
x
j
∣
y
i
=
y
j
,
i
≠
j
}
\left\{\mathbf{x}_{i}^{+}\right\}=\left\{\mathbf{x}_{j} \mid y_{i}=y_{j}, i \neq j\right\}
{xi+}={xj∣yi=yj,i=j}(我们假设同一图像的不同视图具有不同的索引)。
x
i
{x}_{i}
xi的正定和负的定义也适用于
z
i
{z}_{i}
zi作为
z
i
+
{z}_{i}^{+}
zi+和
z
i
−
{z}_{i}^{-}
zi−席。假设小批量大小为n,SC损失函数被写成:
L
S
C
L
=
∑
i
=
1
N
L
S
C
L
(
z
i
)
\mathcal{L}_{SCL}=\sum_{i=1}^{N} \mathcal{L}_{SCL}(\mathbf{z}_{i})
LSCL=i=1∑NLSCL(zi)
L
S
C
L
(
z
i
)
=
−
1
∣
{
z
i
+
}
∣
∑
z
j
∈
{
z
i
+
}
log
exp
(
z
i
⋅
z
j
/
τ
)
∑
z
k
,
k
≠
i
exp
(
z
i
⋅
z
k
/
τ
)
\mathcal{L}_{S C L}\left(\mathbf{z}_{i}\right)=\frac{-1}{\left|\left\{\mathbf{z}_{i}^{+}\right\}\right|} \sum_{\mathbf{z}_{j} \in\left\{\mathbf{z}_{i}^{+}\right\}} \log \frac{\exp \left(\mathbf{z}_{i} \cdot \mathbf{z}_{j} / \tau\right)}{\sum_{\mathbf{z}_{k}, k \neq i} \exp \left(\mathbf{z}_{i} \cdot \mathbf{z}_{k} / \tau\right)}
LSCL(zi)=∣∣{zi+}∣∣−1zj∈{zi+}∑log∑zk,k=iexp(zi⋅zk/τ)exp(zi⋅zj/τ)
其中
∣
{
z
i
+
}
∣
{\left|\left\{\mathbf{z}_{i}^{+}\right\}\right|}
∣∣{zi+}∣∣表示正类anchor
z
i
{z}_{i}
zi的数量,
τ
>
0
\tau \gt 0
τ>0是标量温度参数
与UC损失[5]相比,SC损失可以灵活地包含任意数量的阳性。它通过对比阴性样本来优化阳性样本之间的一致性。然而,在SC丢失中使用withinclass正片的结果是,它导致内存消耗与正片大小和负片大小的乘积成线性关系。例如,当一个不同的类内映像以及一个可选视图被用作SCloss中的正片时,内存消耗将比相同大小的负片的UC损失增加一倍。在有限的GPU内存预算下,这限制了SC损耗的应用。一种解决办法是缩小底片的尺寸。但是,在处理包含大量类的数据集时,这可能会有问题,因为较小的负大小只会采样一小部分负类,这会影响学习表示的质量。
3.3. Prototypical supervised contrastive loss
为了同时解决记忆瓶颈问题,同时最大限度地保留SC丢失的特征学习特性,我们提出了一种原型监督对比(PSC)损失PSC损失,我们的目标是通过为每个类学习一个原型来达到类似的SC损失目标,并强制每个样本的不同增强视图接近其类的原型,而远离其余类的原型。使用原型的好处有两个-折叠。首先,它通过避免对正、负采样来实现更灵活的数据采样。因此,我们可以灵活地采用长尾分类中容易获得的数据抽样策略,如随机抽样和类平衡抽样。其次,在PSC丢失的情况下提高了数据采样效率。在PSC loss中,我们将每个样本与所有其他类的原型进行对比。如果数据集具有C类,则这基本上等同于负尺寸的
C
−
1
\mathcal{C} -1
C−1。这在处理包含大量类的数据集时非常重要,例如,不自然列表[11]。PSC损失函数是:
L
P
S
C
(
z
i
)
=
−
log
exp
(
z
i
⋅
p
y
i
/
τ
)
∑
j
=
1
,
j
≠
y
i
C
exp
(
z
i
⋅
p
j
/
τ
)
\mathcal{L}_{P S C}\left(\mathbf{z}_{i}\right)=-\log \frac{\exp \left(\mathbf{z}_{i} \cdot \mathbf{p}_{y_{i}} / \tau\right)}{\sum_{j=1, j \neq y_{i}}^{\mathcal{C}} \exp \left(\mathbf{z}_{i} \cdot \mathbf{p}_{j} / \tau\right)}
LPSC(zi)=−log∑j=1,j=yiCexp(zi⋅pj/τ)exp(zi⋅pyi/τ)
其中
p
y
i
\mathbf{p}_{y_{i}}
pyi是类
y
i
y_{i}
yi的原型表示,它被归类为
R
D
S
\mathcal{R}^{{D}_{S}}
RDS和
z
i
z_{i}
zi中的单位超球面,是
x
i
x_{i}
xi的正则化表示。
扩展到每个类多个原型 在上面的部分中,我们学习每个类一个原型。但是PSC损失可以简单地扩展到每个产品的多个原型同学们,同学们其基本原理是类内的样本可能遵循多模态分布,通过使用多个原型可以更好地建模。多原型监督对比(MPSC)损失函数可设计为:
L
M
P
S
C
(
z
i
)
=
−
1
M
∑
k
=
1
M
log
w
i
,
k
exp
(
z
i
⋅
p
y
i
k
/
τ
)
∑
j
=
1
,
j
≠
y
i
C
∑
m
=
1
M
exp
(
z
i
⋅
p
j
m
/
τ
)
\mathcal{L}_{M P S C}\left(\mathbf{z}_{i}\right)=\frac{-1}{M} \sum_{k=1}^{M} \log \frac{w_{i, k} \exp \left(\mathbf{z}_{i} \cdot \mathbf{p}_{y_{i}}^{k} / \tau\right)}{\sum_{j=1, j \neq y_{i}}^{C} \sum_{m=1}^{M} \exp \left(\mathbf{z}_{i} \cdot \mathbf{p}_{j}^{m} / \tau\right)}
LMPSC(zi)=M−1k=1∑Mlog∑j=1,j=yiC∑m=1Mexp(zi⋅pjm/τ)wi,kexp(zi⋅pyik/τ)
其中
M
M
M是每个类的原型数,
p
j
i
\mathbf{p}_{j}^{i}
pji 表示类
j
j
j的第
i
i
i个原型的表示,
w
i
,
k
(
w
i
,
k
≥
0
,
∑
k
=
1
M
w
i
,
k
=
1
)
\mathcal{w}_{i,k}(\mathcal{w}_{i,k} \ge 0, \sum_{k=1}^{M}\mathcal{w}_{i,k}=1)
wi,k(wi,k≥0,∑k=1Mwi,k=1)表示
z
i
z_{i}
zi与其类的第
k
k
k个原型之间的亲和力值,用于更精细地控制每个样本的亲和力水平。我们留下MPSC损失的详细评估作为未来工作。
4.Experiments
在这一部分中,我们首先介绍了三个用于我们实验的长尾图像分类数据集。然后,我们介绍了我们的系统的一些关键实现细节方法。之后因此,我们将我们提出的混合网络与最新的长尾图像分类进行了比较方法。最后为了突出我们的混合网络的一些重要性质,我们进行了一些烧蚀研究。
4.1. Datasets
我们在三个长尾图像分类数据集上进行了实验。其中的两个,长尾CIFAR-10和长尾CIFAR-100,是通过重新抽样从平衡的CIFAR[20]数据集中人工得到的。第三个数据集,iNaturalist 2018[11],是一个大型图像数据集,其中图像类别呈现长尾分布。
长尾CIFAR-10和CIFAR-100 原始CIFAR-10和CIFAR-100数据集是平衡的数据集。它们由50000张培训图片和10000张验证图片组成,图片大小为32×32,分10节和100节课分别如下[7, 3], 长尾版本是通过减少每个类的训练示例数而创建的,但验证集不变。不平衡比率用来表示最频繁和最不频繁类别的样本大小之间的比率,即2;=Nmax=Nmin。样本大小在不同的类中呈指数衰减。类似于大多数现有的工作[7,3,37],我们在实验中使用了10,50和100的不平衡比率。
iNaturalist 2018 The iNaturalist 2018[11]是一个庞大的真实世界物种分类数据集。共有8142种,训练437513张,验证图像24424张。数据集观察到不同物种类别的样本严重不平衡。我们在实验中使用了官方培训和验证分离。
4.2. Implementation details
在这一部分中,我们分别给出了长尾CIFAR和不饱和CIFAR实验的一些关键实现细节。
长尾CIFAR的实现细节对于长尾CIFAR-10和CIFAR-100,我们使用ResNet-32[10]作为主干网络来提取图像代表。我们的混合网络有两个分支,它们有独立的输入数据,如图2所示。两个分支共享的基本数据增强集包括大小为32×32的随机裁剪、水平翻转和概率为0.2的随机灰度。在SC丢失之后,我们还通过在PSC丢失中使用不同的数据增强来导出图像的不同视图。在我们的实验中,我们简单地使用有和没有颜色抖动作为两种不同的增强视图。我们对于基于SC和PSC的混合网络,使用512的批处理大小。分类器学习分支使用类平衡数据采样。我们使用动量为0.9、权重衰减为
1
×
1
0
−
4
1\times10^{-4}
1×10−4的SGD作为优化算法来训练杂交网络。网络被训练了200个epoch,学习率在第120个epoch和第160个epoch衰减了10倍。初始学习率为0.5。对于课程系数,我们使用抛物线衰减w.r.T epoch[37],即
α
=
1
−
1
(
T
/
T
m
a
x
)
2
\alpha=1-1(T/T_{max})^{2}
α=1−1(T/Tmax)2,其中T表示当前epoch,
T
m
a
x
T_{max}
Tmax表示最大epoch。对于基于SC的混合网络,式(3)中的温度
τ
\tau
τ固定为0.1。对于基于PSC的混合网络,CIFAR-10和CIFAR-100分别设置
τ
\tau
τ为1和0.1。
iNaturalist2018的实施细节对于iNaturalist2018,在现有的大部分工作之后,我们使用ESNET-50[10]作为骨干网。除了使用大小为224×224的随机作物外,数据扩充与长尾CIFAR数据集中使用的相似。为了安装两个NVIDIA2080TI GPU,我们对基于SC和PSC的混合网络都使用了100%的批量大小。使用动量为0.9、重量衰减为
1
×
1
0
−
4
1\times10^{-4}
1×10−4的SGD对网络进行了100个时代的训练。初始学习率为0.05,在60和80时衰减10倍。考虑到不自然表的类数较多,使得分类器学习更加困难,我们采用线性衰减的加权因子,即
α
=
1
−
1
(
T
/
T
m
a
x
)
2
\alpha=1-1(T/T_{max})^{2}
α=1−1(T/Tmax)2,对分类器学习分支赋予更高的权重。对于SC和PSC损耗函数,温度
τ
\tau
τ设置为0.1。对于SC损失函数,每个锚点的正样本数固定为2。
4.3. Comparison to stateoftheart methods
在本节中,我们将所提出的混合网络(包括基于SC和PSC损耗的网络)分别与长尾CIFAR和自然主义数据集上现有的长尾分类方法进行比较。
长尾CIFAR的实验结果表1给出了所提出的混合网络和现有方法在长尾CIFAR数据集上的比较。比较的方法涵盖了不平衡分类的各种思想,包括损失加权[7]、边际修正[3]、数据扩充[19]、解耦[37]和其他一些新提出的思想[34,13]。从表中可以看出,我们的混合网络在几乎所有设置上都优于比较的方法。
其中CE表示最简单的基线,直接利用交叉熵在长尾数据集上训练网络。与预期一样,该基线方法的性能最差,这揭示了交叉熵在处理不平衡数据时的局限性。尽管使用针对长尾数据的高级损失函数可以提高性能[3,7,22],但这些方法体现了特征学习和分类器学习的不同特性。BBN[37]进一步分离了头部数据和尾部数据建模。但BBN的几个因素损害了去耦合学习的全部潜力:1)它统一了倒数第二层中两个性质不同的数据流的表示;2)交叉熵不是两个流中不平衡数据的理想损失;3) 测试阶段的最终预测是由两个权重相等的分支的两个预测函数之和计算出来的,这与训练阶段不一致。我们的方法解决了即:1)特征学习分支中的投影模块将图像表示适配到更适合对比损失的空间;2) 我们使用不同的损失函数来学习特征和分类器,并得出结论:监督对比损失可以更好地替代非均衡数据特征学习中的交叉输入;3)使用单个分类器学习函数来预测每个样本的类标签,避免了训练和测试之间的差距。在我们的方法中,基于SC的混合网络a.k.aHybrid-SC的性能优于PSC对应的a.k.aHybrid-PSC,但后者的性能仍与比较的方法相当或更好。
iNaturalist2018的实验结果表2中提供了与iNaturalist2018一些现有工作的实验比较。再次,我们将我们的混合网络与各种方法进行比较。在这些比较的方法中,Decoupling[15]和BBN[37]与我们的建议关系最为密切,它们都是基于Decoupling learning的思想。以上分析了我们的方法在BBN上的优势。在不自然列表上,混合PSC比BBN高出1.8%。分类器再训练(cRT)是我们在文献[15]中选择比较好的一种方法,它是一种两阶段的方法,第一阶段学习图像特征,第二阶段冻结特征来学习分类器。他们使用交叉熵作为两个阶段的损失函数,但使用不同的数据采样策略。但是该方法存在两个局限性:1)两阶段学习策略损害了学习特征与分类器的兼容性;2)交叉熵损失不是从不平衡数据中学习图像特征的理想选择。我们的混合网络通过使用基于课程的学习策略来解决第一个限制,从特征学习平稳过渡到分类器学习。在BBN中也观察到了第二个限制,这可以通过我们的混合网络解决,如上所述。我们的混合PSC网络性能比解耦[15]高出近3%。
另一个有趣的观察结果是,混合PSC比混合SC性能更好。这一结果与我们的预期一致。请注意,对于这两个混合网络版本,我们使用相同的批处理大小100来进行测试。与iNaturalist数据集中的类数相比,这个批大小太小,无法为SC损失提供足够的负样本来学习高质量特征[5]。PSC损失避免了这个问题,因为在第二节中进行了分析。3.3,无论批量大小,每个样品都将与所有负原型进行对比。由于这个原因,混合PSC获得了更好的分类性能。一般来说我们可以说,在有限的GPU内存预算下,基于PSC的混合网络在处理大量类的不平衡数据集时,比SC丢失更具优势。
4.4. Ablation studies and discussions
在本节中,我们进行了一些消融实验研究来表征混合网络。具体地,我们研究了提出的PSC损失是否对数据采样不敏感,在特征学习中使用PSC损失相对于交叉熵损失的优势,以及基于课程的联合训练相对于两阶段学习策略的优势。
PSC损失对数据采样的敏感性 在解耦学习工作中[15,37],作者发现交叉熵在用于特征学习时对数据采样非常敏感。具体地说,他们发现随机抽样明显优于对特征进行类平衡抽样学习。为了例如,在[15]中,与交叉熵损失下的随机抽样相比,类平衡抽样可以导致大约5%的精度下降。由于我们工作中的PSC损耗具有与交叉熵相同的数据采样方式,我们在表3中验证了PSC损耗对数据采样的敏感性。从表中我们可以看出,我们的混合PSC网络通过使用随机抽样和类平衡抽样达到了相当的性能,这表明我们的 PSC可以缓解过度抽样(类平衡抽样属于过度抽样)导致的过度拟合问题。我们推测有两个可能的因素导致PSC丢失对数据的不敏感取样。首先在PSC丢失中,图像特征和原型都是
ℓ
2
{\ell}_{2}
ℓ2归一化的,这打破了类频率和特征范数之间的强相关性。其次,假设样本与其原型之间的亲和度得分为
s
i
y
i
=
z
i
⋅
p
y
i
/
τ
{s}_{i}^{{y}_{i}}=\mathcal{z}_{i}·\mathcal{p}_{{y}_{i}} / \tau
siyi=zi⋅pyi/τ。对于具有标签
y
i
∈
{
1
,
2
,
.
.
.
,
C
}
{y}_{i} \in \{ 1,2,...,\mathcal{C}\}
yi∈{1,2,...,C}的样本
x
i
{x}_{i}
xi,PSC损失
L
P
S
C
(
z
i
)
\mathcal{L}_{PSC}(\mathcal{z}_{i})
LPSC(zi)W.R.T,
s
i
y
i
{s}_{i}^{{y}_{i}}
siyi的梯度是常数,梯度W.R.T从负类
c
∈
{
1
,
2
,
.
.
.
,
C
}
y
i
c \in \{ 1,2,...,\mathcal{C} \} \ {y}_{i}
c∈{1,2,...,C} yi的亲和力原型为
exp
(
s
i
c
)
/
∑
y
∈
{
1
,
2
,
⋯
,
C
}
,
y
≠
y
i
exp
(
s
i
y
)
\exp \left(s_{i}^{c}\right) / \sum_{y \in\{1,2, \cdots, \mathcal{C}\}, y \neq y_{i}}^{} \exp \left(s_{i}^{y}\right)
exp(sic)/∑y∈{1,2,⋯,C},y=yiexp(siy)。分母排除了
s
i
y
i
{s}_{i}^{{y}_{i}}
siyi的支配项,因此产生了显著的梯度。正类的恒定梯度和负类的显著梯度有助于减少过采样中的过拟合,增强特征的类间可分性。
PSC损失是特征学习中交叉熵损失的更好替代品吗? 在这项工作中,我们声称监督对比损失有望从不平衡特征中学习到更好的特征,从而导致更好的长尾分类性能。为了验证这一点,我们用交叉熵损失替换了混合网络中的对比损失。结果见表4。可以看出,当使用交叉熵来学习图像特征时,性能明显下降。
&emsp**;两阶段学习与基于课程的联合学习** 在这项工作中,我们使用一个课程来平稳地将训练从特征学习过渡到分类器学习。为了证明这种学习策略的优势,我们首先选择原来的两阶段SC工作[18]作为基线,在第一阶段使用SC损失训练特征,然后在第二阶段固定特征来训练分类器舞台。从表5我们可以看到,这种两阶段训练方案的性能明显低于我们的基于课程的训练,因为它损害了特征和分类器之间的兼容性。为了进一步突出课程的重要性,我们将式(1)中的加权系数设为0.5。不过,令人不满意的结果仍然存在获得。什么时候在课程设置上,我们让被监督的对比学习者先主导训练,充分发挥他们学习区分特征的能力,有利于后期的分类器学习。
5. Conclusion
在这项工作中,我们通过提出一种新的混合网络来接近长尾图像分类,该网络由有监督的对比损失来学习图像特征和交叉熵损失来学习分类器。为了体现“特征越好,量词越好”的思想,我们制定了一套课程,使训练从特征学习顺利过渡到量词学习。提出了一种新的原型监控对比损失模型,用于从不平衡数据中学习特征,在有限的GPU预算下具有优势。在三个长尾分类数据集上的实验表明,我们的方法不仅明显优于现有的分类方法,而且还具有其他一些有利于不平衡分类的特性分类。到我们的知识,这是第一个研究如何最大化监督对比学习在长尾图像分类中的价值的工作。我们将继续这一方向作为我们今后的工作方向,以对多学科交叉学科的深入探索为第一步。