在线蒸馏论文翻译——
基于视觉识别的相互对比学习在线知识提取
paper:https://arxiv.org/abs/2207.11518
code:https://github.com/winycg/MCL
文章目录
摘要
教师免费在线知识蒸馏(KD)旨在协同训练多个学生模型的集合,并从彼此中提取知识。尽管现有的在线KD方法实现了理想的性能,但它们通常将类概率作为核心知识类型,而忽略了有价值的特征表示信息。我们提出了一个用于在线KD的相互对比学习(MCL)框架。MCL的核心思想是以在线方式在一组网络之间执行对比分布的相互交互和传递。我们的MCL可以聚合跨网络嵌入信息,并最大化两个网络之间相互信息的下界。这使得每个网络能够从其他网络学习额外的对比知识,从而获得更好的特征表示,从而提高视觉识别任务的性能。在最后一层之外,我们将MCL扩展到由辅助特征细化模块辅助的几个中间层。这进一步增强了在线KD的表示学习能力。关于图像分类和将学习转移到视觉识别任务的实验表明,与最先进的在线KD方法相比,MCL可以带来一致的性能提高。该优势表明,MCL可以引导网络生成更好的特征表示。我们的代码公开于https://github.com/winycg/MCL.
一、介绍
在过去十年中,深度卷积神经网络(CNN)在广泛的计算机视觉任务中取得了理想的性能,包括图像分类[1]、[2]、[3]、对象检测[4]、[5]、[6]和视频识别[7]、[8]、[9]。高性能模型通常需要大量的计算和存储资源。该缺点限制了在资源有限的边缘设备上部署这些高级模型。为了克服这个问题,许多工作旨在构建更小但更精确的神经网络。主流的模型压缩解决方案分为修剪[10]、参数量化[11]和知识蒸馏[12]、[13]、[14]、[15]、[16]。本文主要研究知识蒸馏(KD)来提高网络性能。
KD提供了一个直观有效的范例,通过从具有更好性能的大型教师网络中吸收知识来改善小型学生网络。Hinton’KD[12]将来自教师网络的课堂概率分布作为软标签,以监督学生的预测。基于这一思想,一些KD方法试图引导学生模仿老师的有意义的知识,如特征图[17]和精炼信息[18],[19],[20]。传统的KD遵循两阶段培训流程,需要预先培训大型教师网络。然而,我们手头可能没有一个规模可观的预训练模型。
为了克服这一问题,提出了在线KD[21],[22],[23],通过同时训练两个或多个学生网络来促进教师自由蒸馏。在线KD的思想是利用多个学生之间的协作学习。深度相互学习(DML)[21]表明,一组模型可以受益于类概率分布的相互学习,即最终预测。在这种同伴教学方式中,每个模型的学习效果都比在传统的监督训练中单独学习要好。现有的在线KD工作[21],[22],[23],[24],[25],[26]通常通过使用各种策略最小化对等网络之间的最终预测来关注结果驱动的蒸馏。这些方法忽略了提取对在线KD也有价值的特征信息。
与类后验不同,特征嵌入包含结构化知识,并且更易于捕获各种网络之间的依赖关系。尽管之前的AFD[27]试图以在线方式对齐中间特征图,但Zhang等人[21]指出,这将减少队列多样性,并损害相互学习的能力。为了有意义地处理特征嵌入,我们认为更理想的方法是从视觉表示学习的角度进行对比学习。
对比学习已被广泛证明是学习特征表示的有效框架[28],[29],[30],尤其是在最近的自我监督学习[31],[32],[33],[34],[35],[36],[37]中。对比学习的核心思想是通过对比损失在特征嵌入空间中将正对拉在一起并将负对推开。对比学习背后的成功在于学习到了比下游视觉识别任务更可取的良好特征[33],[34],[38]。从阶级概率的相互学习角度出发,我们假设在一组模型中进行相互对比学习(MCL)可能是可取的。得益于MCL,利用它是有意义的通过协作学习,可以更好地对每个网络进行视觉表示学习,从而提高识别性能。
图1:拟议的相互对比学习概述[39]。f1和f2表示两个不同的网络。vim是从fm和输入样本xi推断出的嵌入向量。虚线和虚线箭头表示我们希望通过对比损失来接近或分开的方向。我们还执行两个不同的基于软最大值的相似性分布之间的相互对齐。
MCL的主要核心是在一组模型之间执行对比分布的相互作用和传递。MCL包括香草对比学习(VCL)和交互式对比学习(ICL)。VCL遵循传统的对比范式,即正负对来自同一网络。与传统的VCL相比,我们提出的ICL在源自两个不同网络的不同嵌入空间之间形成对比相似性分布。我们证明了ICL的目标相当于最大化两个对等网络之间相互信息的下限。这可以理解为捕获依赖关系,并使网络能够从另一网络学习额外的对比知识。
受DML[21]的思想启发,我们还对来自由相同数据样本形成的各种网络的不同基于softmax的对比分布进行了相互对齐。与DML[21]类似,分布可以被视为监督其他分布的软标签。这种具有软标签的对等教学方式利用了嵌入在不同网络中的表示信息。通过两种类型的对比学习,我们可以导出软VCL标签和软ICL标签。尽管软VCL标签已应用于先前的KD作品[40],[41],但其锚定和对比嵌入仍然来自同一网络,限制了信息交互。相反,我们提出的软ICL标签聚合了跨网络嵌入来构建对比分布,这被证明比传统的软VCL标签更具信息性。
为了最大限度地提高MCL的有效性,我们将VCL和ICL与相互模仿总结为一个统一的框架,如图1所示。MCL帮助每个模型捕获额外的对比知识,以构建更好的表示空间。如DML[21]所述,由于网络从不同的初始条件开始,每个人都可以学习其他人没有的知识。MCL可以被视为在特征水平上的群体性对比损失。因此,我们可以很容易地将MCL与以前的逻辑级在线KD方法相结合。
除了最后一层,我们将MCL扩展到两个网络之间的中间层,称为分层MCL。中间嵌入由几个附加的特征模块进行细化。我们证明,与仅应用于最终层的MCL相比,分层MCL进一步最大化了互信息。实证研究也表明了我们提出的分层MCL的优势。此外,我们构造了一个门控模块,以使用所有特征嵌入来生成logit聚合的权重。权重将logit分布集合到虚拟同伴教师,该教师与其他同伴一起执行在线KD。
我们将分层MCL应用于CIFAR-100[42]和ImageNet[43]上各种架构的图像分类。MCL可以在基线方法上实现一致的性能提高,并优于其他在线KD方法。COCO2017[44]上关于将学习转移到对象检测和实例分割的大量实验显示了分层MCL学习良好特征的优势。注意,一组模型之间的协作学习是在培训阶段进行的。队列中的任何网络都可以在推断阶段保持。与原始网络相比,保持的网络不引入额外的推断成本。
本文的部分内容最初发表于会议版本[39]。本文在几个有价值的方面扩展了我们之前的工作:
- 我们提出了分层MCL,这是一种通过将MCL扩展到中间特征的改进版本。我们从理论和经验上证明了分层MCL优于先前的MCL[39]。
- 我们引入了一种逻辑级在线KD方法,通过使用门控模块聚合中间逻辑分布来构建强大的教师角色。这使得logits能够从虚拟教师升华到其他对等网络。
- 除了相同类型的网络对,我们还评估不同架构上的分层MCL。此外,我们还对下游图像分类、对象检测和实例分割进行转移学习。与竞争性在线KD方法相比,报告了令人鼓舞的结果,表明MCL可以导致更好的特征表示。
- 进行更详细的消融研究和分析,以检查分层MCL的每个组件。
二、相关工作
2.1 传统离线知识蒸馏
KD提供了一个优雅的想法,以改善由教师网络监督的小型学生网络,并提高其性能。开创性的Hinton的KD[12]旨在指导学生在相同的数据下模仿老师的软课堂预测。由于学生会学习到更好的预测分布,因此这种方法很有动力。卷积神经网络通常编码超出最终预测的富有成效的信息。近年来,已经提出了许多有洞察力的方法来从中间层挖掘知识。典型的知识可以是特征图[17]、[45]及其提取的信息,例如注意力图[18]、激活边界[20]和结构关系[46]、[47]等。
除了知识挖掘,另一条线旨在减少教师和学生之间的知识差距。例如,一些著作[48]、[49]介绍了一位助手,以便于学生理解老师的知识。RCO[50]和EKD[51]利用课程学习来监督学生和来自中级培训州的教师。然而,一个常见的缺点是离线KD遵循两阶段训练流程。它要求我们预先训练高容量的教师网络,然后从教师到学生执行KD,这非常耗时。
2.2在线知识提取
在线KD旨在在没有经过预先培训的教师的情况下提高学生的表现。在线KD的理念是利用多个学生网络之间的协作学习。DML[21]表明,一组模型可以从相互学习预测类概率分布中受益。CL[23]进一步将此思想扩展到具有多个分类器头部的分层架构。在逻辑信息上,AFD[27]使用对抗性训练范式将相互学习机制引入特征图。
与相互模仿相反,最近的一些方法,如ONE[22]、OKDDip[24]和KDCL[25],通过加权集合逻辑分布构建在线教师,但在各种聚合策略上有所不同。ONE[22]利用可学习门模块输出聚合权重。OKDDip[24]应用自我关注机制来衡量群体网络的相似性,并提高同伴的多样性,以构建更好的领导者网络。组长被视为教师角色,用于传授逻辑知识。KDCL[25]将聚合权重公式化为推广误差的最优解,由拉格朗日乘数求解。最近,PCL[26]为每个同伴引入了一个额外的时间平均网络作为教师角色。这是因为时间平均网络是根据平均模型权重生成的,这比当前模型更准确[52]。
我们可以得出结论,以前的方法通常在多个网络之间执行逻辑级蒸馏,并且主要在各种学习机制上有所不同。除了logit级别,我们的方法从表示学习的角度利用了协作学习。Moreoverwe可以很容易地将MCL与以前基于逻辑的方法结合在一起。
2.3对比学习
对比学习已被广泛用于监督和自我监督的视觉表征学习。对比学习的主要思想是通过对比损失将正对推近,将负对推离[53],以获得辨别空间。在监督场景中,标签通常指导对比对的定义。正对由来自同一类的两个样本形成,而来自不同类的两种样本形成负对。对比学习广泛用于深度度量学习,如图像分类[29]、人脸识别[28]、人物重新识别[54]和图像检索[55]。最近,自监督对比学习可以指导网络学习用于下游视觉识别任务的预训练特征。在自我监督场景中,由于我们没有标签信息,正对通常由同一样本的两个视图形成,而负对由不同样本形成。对比学习最大化了相同数据的不同增强视图与负样本之间的一致性,以通过对比损失学习不变表示[33],[34],[38]。我们的重点是利用对比表示学习来改进在线KD,使每个网络都能学习更好的视觉识别特征。
2.4基于嵌入的关系蒸馏
与最终类后验相比,潜在特征嵌入封装了更多的结构信息。以前的一些KD方法传递基于嵌入的关系图,其中每个节点表示一个样本[46],[47]。最近,MMT[40]使用软软最大三重丢失来学习来自其他网络的相对相似性,以对人Re-ID进行无监督域自适应。为了在自我监督的MoCo[33]上压缩网络,SEED[41]将基于软InfoNCE[56]的对比分布从教师传输到学生。先前作品的一个共同特点是,对比分布通常是从同一网络构建的,限制了对等信息交互。相反,我们聚合跨网络嵌入来建模交互式对比分布,并最大化两个网络之间的相互信息。
三、相互对比学习
3.1体系结构制定
符号:类似于ResNet[1]的分类网络 f ( ⋅ ) f(\sdot) f(⋅)可以被划分为特征提取器 φ ( ⋅ ) \varphi (\sdot) φ(⋅)和线性分类器 g ( ⋅ ) g(\sdot) g(⋅)。f将输入图像x映射到logit向量 z z z,即 z = f ( x ) = g ( φ ( x ) ) z=f(\textit{\textbf{x}})=g(\varphi(\textit{\textbf{x}})) z=f(x)=g(φ(x))。此外,我们添加了一个额外的投影模块 ζ ( ⋅ ) \zeta(\sdot) ζ(⋅),它包括两个具有中间ReLU的连续线性层。 ζ ( ⋅ ) \zeta(\sdot) ζ(⋅)是将特征提取器的特征嵌入转化为潜在嵌入 v ∈ R d \textit{\textbf{v}}∈ \R ^d v∈Rd,即 v = ζ ( φ ( x ) ) \textit{\textbf{v}}=\zeta(\varphi(\textit{\textbf{x}})) v=ζ(φ(x)),其中 d d d是嵌入尺寸。嵌入 v \textit{\textbf{v}} v用于对比学习。
训练图:整个训练图包含用于协作学习的 M ( M ⩾ 2 ) M(M\geqslant2) M(M⩾2)个分类网络,由 { f m } m M = 1 \{f_m\}^M_m=1 {fm}mM=1表示。队列中所有相同的网络都用不同的权重初始化,以学习不同的表示。这是相互学习成功的先决条件。队列中的每个 f m f_m fm都配备了额外的嵌入投影模块 ζ m \zeta_m ζm。整体训练图如图2所示。
推理图:在测试阶段,我们丢弃所有投影模块
{
ζ
m
}
m
=
1
M
\{\zeta_m\}^M_{m=1}
{ζm}m=1M,并保留一个网络用于推断。保留的网络的架构与原始网络相同。也就是说,我们没有引入额外的推断成本。此外,我们可以选择队列中的任何表单进行最终部署。
图2:从[39]修改的
f
1
f_1
f1和
f
2
f_2
f2两个网络之间的MCL概述。
3.2 Vanilla对比学习Vanilla Contrastive Learning(VCL)
对比损失的目的是在潜在嵌入空间中推动正对接近和负对分离。给定输入样本 x 0 x^0 x0作为锚点,我们检索1个正样本 x 1 x^1 x1和 K ( K ⩾ 1 ) K(K\geqslant1) K(K⩾1)个负样本 { x k } k = 2 K + 1 \{\textit{\textbf{x}}^k\}^{K+1}_{k=2} {xk}k=2K+1。对于监督学习,正样本来自与锚点相同的类,而负样本来自不同的类。为了便于表示,我们将锚嵌入表示为 v m 0 v^0_m vm0,将正嵌入表示为 v m 1 v^1_m vm1,将 K K K个负嵌入表示为 { v m k } k = 2 K + 1 \{\textit{\textbf{v}}^k_m\}^{K+1}_{k=2} {vmk}k=2K+1。 m m m表示嵌入是从 f m fm fm生成的。这里,通过 l 2 l_2 l2归一化对特征嵌入进行预处理。
我们使用点积来测量锚和对比嵌入之间的相似度分布,并使用softmax归一化。因此,我们可以获得对比概率分布:
其中
τ
τ
τ是恒定温度。
p
∈
R
K
+
1
\textit{\textbf{p}}∈ \R^{K+1}
p∈RK+1用归一化概率分布测量相对样本相似性。大概率表示锚和对比嵌入之间的高相似度。我们使用交叉熵损失来在对比分布
p
m
\textit{\textbf{p}}_m
pm上迫使正对接近和负对离开:
这里,
p
m
k
\textit{\textbf{p}}^k_m
pmk是
p
m
\textit{\textbf{p}}_m
pm的第
k
k
k个元素。这种损失相当于
(
K
+
1
)
(K+1)
(K+1)路基于软最大值的分类损失,它迫使网络正确地对正样本进行分类,也称为InfoNCE损失[56]。当将对比学习应用于
M
M
M个网络队列时,一般方法是总结每个对比损失:
3.3交互式对比学习Interactive Contrastive Learning(ICL)
然而,香草对比学习并没有为协作学习建立跨网络关系模型。这是因为对比分布是从网络自身的嵌入空间中学习的。为了充分利用各种对等网络之间的信息交互,我们提出了一种新的交互式对比学习(ICL)来建模跨网络交互,以学习更好的特征表示。我们为两个并行网络 f a f_a fa和 f b f_b fb的情况制定ICL,其中 a , b ∈ 1 , 2 , ⋅ ⋅ , M a,b∈ {1,2,··,M} a,b∈1,2,⋅⋅,M, a ≠ b a\ne b a=b,然后进一步将ICL扩展到 { f m } m = 1 M \{f_m\}^M_{m=1} {fm}m=1M中的两个以上网络。
要进行ICL,我们首先修复
f
a
f_a
fa并枚举
f
b
f_b
fb。给定从
f
a
f_a
fa中提取的锚嵌入
v
a
0
\textit{\textbf{v}}^0_a
va0,我们枚举从
f
b
f_b
fb中提取的正嵌入
v
b
1
\textit{\textbf{v}}^1_b
vb1和负嵌入
v
b
k
}
k
=
2
K
+
1
\textit{\textbf{v}}^k_b\}^{K+1}_{k=2}
vbk}k=2K+1。这里,
{
v
a
k
}
K
+
1
K
=
0
\{\textit{\textbf{v}}^k_a\}K+1 K=0
{vak}K+1K=0和
{
v
b
k
}
k
=
0
K
+
1
\{\textit{\textbf{v}}^k_b\}^{K+1}_{k=0}
{vbk}k=0K+1都相应地从相同的
K
+
2
K+2
K+2样本
{
x
k
}
k
=
0
K
+
1
\{\textit{\textbf{x}}^k\}^{K+1}_{k=0}
{xk}k=0K+1生成,如图1a所示。从
f
a
f_a
fa到
f
b
f_b
fb的对比概率分布可以表示为:
其中
q
a
→
b
∈
R
K
+
1
\textit{\textbf{q}}_{a→b}∈ \R^{K+1}
qa→b∈RK+1。类似于等式(2),我们在对比分布上使用交叉熵损失
q
a
→
b
\textit{\textbf{q}}_{a→b}
qa→b:
这里,
q
a
→
b
k
\textit{\textbf{q}}^k_{a→b}
qa→bk是质量保证的第
k
k
k个元素
q
a
→
b
\textit{\textbf{q}}_{a→b}
qa→b。我们可以观察到,等式(2)和等式(5)之间的主要区别在于用于生成对比分布的各种类型的嵌入空间。与方程(2)相比,方程(5)采用了来自另一个网络的对比嵌入,而不是网络自己的嵌入空间。它可以对多个对等网络之间的各种嵌入空间中的显式校正或依赖性进行建模,促进信息通信以学习更好的特征表示。
此外,与等式(2)相比,我们将最小化等式(5)的优势归因于最大化
f
a
f_a
fa和
f
b
f_b
fb之间的互信息
I
(
v
a
,
v
b
)
\mathit{I}(\textit{\textbf{v}}_a,\textit{\textbf{v}}_b)
I(va,vb)的下界,其公式为:
附录中提供了公式(5)推导公式(6)的详细证明。直观地,当已知来自fa的锚嵌入时,互信息
I
(
v
a
,
v
b
)
\mathit{I}(\textit{\textbf{v}}_a,\textit{\textbf{v}}_b)
I(va,vb)测量来自
f
b
f_b
fb的对比特征嵌入中的不确定性的减少。这可以理解为,每个网络可以从受益于等式(5)的其他网络获得额外的对比知识。因此,它可以导致比等式(2)的独立对比学习更好的表征学习。随着
K
K
K的增加,相互信息
I
(
v
a
,
v
b
)
\mathit{I}(\textit{\textbf{v}}_a,\textit{\textbf{v}}_b)
I(va,vb)会更高,这表明
f
a
f_a
fa和
f
b
f_b
fb可以从彼此学习更多的共同知识。
当扩展到
{
f
m
}
m
M
=
1
\{f_m\}^M_m=1
{fm}mM=1时,我们在M个网络中的每两个网络中执行ICL,以模拟完全连接的依赖关系,导致总体损失如下:
3.4具有在线相互模仿的软对比学习
深度相互学习的成功[21]表明,每一个网络都可以通过在线同伴教学方式相互学习其他网络的软类概率分布来更好地概括。这是因为每个网络的后验类输出可以被视为监督他人的自然软标签。基于这一思想,期望从对比学习中导出软对比分布作为软标签,例如, p m \textit{\textbf{p}}_m pm从VCL中导出 q a → b \textit{\textbf{q}}_{a→b} qa→b来自ICL。理论上, p m \textit{\textbf{p}}_m pm和 q a → b \textit{\textbf{q}}_{a→b} qa→b也可以被视为后验类。因此,为了更好地进行表征学习,对这些对比分布进行相互模仿是合理的。
具体而言,我们利用Kullback-Leibler(KL)-散度迫使每个网络的对比分布对齐队列中其他网络提供的相应软标签。本文侧重于相互模拟VCL和ICL的两种对比分布:
3.4.1软Vanilla对比学习(软VCL)
为了从
f
m
f_m
fm中细化
p
m
\textit{\textbf{p}}_m
pm,软伪标签是分别从
{
f
l
}
l
=
1
,
l
≠
m
l
=
M
\{f_l\}^{l=M}_{l=1,l\ne m}
{fl}l=1,l=ml=M生成的对等对比分布
{
p
l
}
l
=
1
,
l
≠
m
l
=
M
\{\textit{\textbf{p}}_l\}^{l=M}_{l=1,l\ne m}
{pl}l=1,l=ml=M。我们使用KL散度强制
p
m
\textit{\textbf{p}}_m
pm对齐它们。对于
{
f
m
}
m
=
1
M
\{f_m\}^M_{m=1}
{fm}m=1M的队列应用软VCL,总损失可公式化为:
### 3.4.2软交互式对比学习(软ICL)
给定两个网络
f
a
f_a
fa和
f
b
f_b
fb,我们可以导出交互式对比分布
q
a
→
b
\textit{\textbf{q}}_{a→b}
qa→b和
q
b
→
a
\textit{\textbf{q}}_{b→a}
qb→a使用ICL。强制要求质量保证之间的一致性是有意义的→b和qb→a用于软ICL的相互校准。当扩展到
{
f
m
}
m
=
1
M
\{f_m\}^M_{m=1}
{fm}m=1M时,我们在
M
M
M个网络中的每两个网络中执行软ICL,导致总体损失如下:
这里,
q
b
→
a
\textit{\textbf{q}}_{b→a}
qb→a是从梯度反向传播中分离出来的用于稳定性的软标签。
3.4.3与软VCL和软ICL的讨论
我们注意到,一些先前的工作[40],[41]已经探索了使用香草对比分布 p \textit{\textbf{p}} p作为软标签。这些工作通常使用来自同一网络的嵌入来构建对比关系,如等式(2)所示。相反,我们提出了一种交互式对比分布 q \textit{\textbf{q}} q来执行软ICL。直观地说, q \textit{\textbf{q}} q聚合跨网络嵌入来建模软标签,这比从单个嵌入空间构建的 p \textit{\textbf{p}} p信息量更大。此外,精炼更好的 q \textit{\textbf{q}} q可能会降低 L a → b I C L L^{ICL}_{a→b} La→bICL 进一步最大化 f a f_a fa和 f b f_b fb之间的互信息 I ( v a , v b ) \mathit{I}(\textit{\textbf{v}}_a,\textit{\textbf{v}}_b) I(va,vb)的下限。与软VCL相比,软ICL可以促进多个网络之间更充分的交互。根据经验,我们发现软ICL通过充分利用协作对比学习挖掘更好的性能增益,如第5.5节所验证的。
3.5 MCL整体损失
为了充分利用协作学习,我们将所有对比损失术语概括为
M
M
M个网络队列中MCL的总体损失:
其中
α
α
α和
β
β
β是权重系数。正如我们在第5.5节中的实证研究所建议的,对于硬交叉熵损失,我们设置
α
=
0.1
α=0.1
α=0.1,对于软KL发散损失,我们设定
β
=
1
β=1
β=1。
四、分层相互对比学习Layer-wise Mutual Contrastive Learning(L-MCL)
原始MCL将对比学习应用于来自最终层的那些特征嵌入。这忽略了表示输入图像的抽象过程的中间特征。为了进一步改进表征学习,我们提出了分层相互对比学习(L-MCL)。它通过允许从中间层进行表示学习来进一步挖掘MCL。此外,L-MCL可以进一步最大化两个对等网络之间相互信息的下限,有利于在线知识转移。
4.1 体系结构制定
训练图: 总体训练图包含
M
(
M
⩾
2
)
M(M\geqslant2)
M(M⩾2)个分类网络,由
{
f
m
}
m
=
1
M
\{f_m\}^M_{m=1}
{fm}m=1M表示,具有用于协作学习的增强模块,如图3所示。第
M
M
M个分类网络
f
m
(
⋅
)
f_m(\sdot)
fm(⋅)类似于ResNet[1],可分为特征提取器
φ
m
(
⋅
)
\varphi _m(\sdot)
φm(⋅)和线性分类器
g
m
(
⋅
)
g_m(\sdot)
gm(⋅),其中
φ
m
=
φ
m
[
L
]
∘
φ
m
[
L
−
1
]
⋅
⋅
⋅
φ
m
[
1
]
\varphi_m= \varphi^{[L]}_m \circ \varphi^{[L−1]}_m···\varphi^{[1]}_m
φm=φm[L]∘φm[L−1]⋅⋅⋅φm[1],
L
L
L是级的数量,单位为
φ
m
\varphi_m
φm。在每个中间阶段之后,
φ
m
[
l
]
\varphi^{[l]}_m
φm[l],其中
l
=
1
,
2
,
⋅
⋅
,
L
−
1
l=1,2,··,L− 1
l=1,2,⋅⋅,L−1,我们附加了一个辅助特征细化模块
r
m
[
l
]
(
⋅
)
r^{[l]}_m(·)
rm[l](⋅)、一个用于对比学习的投影头
ζ
m
[
l
]
(
⋅
)
ζ^{[l]}_m(·)
ζm[l](⋅)和一个用于学习地面真值标签的线性分类器
g
m
[
l
]
(
⋅
)
g^{[l]}_m(·)
gm[l](⋅)。特征细化模块
r
m
[
l
]
(
⋅
)
r^{[l]}_m(·)
rm[l](⋅)包括逐块卷积模块和输出嵌入的全局平均池。为了便于记法,我们将第
l
l
l级的特征表示为
F
m
[
l
]
,
l
=
1
,
2
,
⋅
⋅
,
L
F^{[l]}_m,l=1,2,··,L
Fm[l],l=1,2,⋅⋅,L:
因此,给定输入图像
x
\textit{\textbf{x}}
x,我们有
L
L
L个对比嵌入
v
m
[
1
]
,
⋅
⋅
,
v
m
[
L
]
\textit{\textbf{v}}^{[1]}_m,··,\textit{\textbf{v}}^{[L]}_m
vm[1],⋅⋅,vm[L]和
L
L
L个类逻辑
z
m
[
1
]
,
.
⋅
⋅
,
z
m
[
L
]
\textit{\textbf{z}}^{[1]}_m,.··,\textit{\textbf{z}}^{[L]}_m
zm[1],.⋅⋅,zm[L],其公式如下:
这里,
l
=
1
,
2
,
⋅
⋅
,
L
l=1,2,··,L
l=1,2,⋅⋅,L。我们将
g
m
[
l
]
=
g
m
g^{[l]}_m=g_m
gm[l]=gm和
ζ
m
[
l
]
=
ζ
m
ζ^{[l]}_m=ζ_m
ζm[l]=ζm表示为最终层之后的分类器和投影头。
推理图:在测试阶段,我们丢弃所有辅助组件,保留一个网络进行推理。保持的网络的架构与原始网络相同,没有额外的推理成本。
4.2 分层MCL
除了最后一层,我们还在对等网络之间的相同中间层上进行MCL。给定队列
{
f
m
}
m
=
1
M
\{f_m\}^M_{m=1}
{fm}m=1M,每个网络中有
L
L
L个阶段,原始MCL处理
{
v
m
[
L
]
}
m
=
1
M
\{v^{[L]}_m\}^M_{m=1}
{vm[L]}m=1M的最终特征嵌入。逐层MCL进一步以逐层方式将相互对比学习扩展到中间和最终嵌入
{
{
v
m
[
l
]
}
m
=
1
M
}
l
=
1
L
\{\{v^{[l]}_m\}^M_{m=1}\}^L_{l=1}
{{vm[l]}m=1M}l=1L:
其中
L
1
∼
M
L
_
M
C
L
L^{L\_MCL}_{1∼M}
L1∼ML_MCL是M个网络中对应于等式(10)的原始MCL损耗。
图3:我们在两个网络
f
1
f_1
f1和
f
2
f_2
f2上提出的分层MCL和逻辑级在线KD方法的概述。
4.3 分层MCL的理论见解
在附录中,我们证明了MCL可以最大化两个对等网络fa和fb之间的相互信息的下界。当扩展到分层MCL时,我们认为它可以进一步最大化互信息的上限。由于从中间层
φ
m
[
l
]
(
l
<
L
)
\varphi^{[l]}_m(l<L)
φm[l](l<L)到最终层
φ
m
[
l
]
\varphi^{[l]}_m
φm[l]的映射是确定性的,因此由于
H
(
v
m
[
l
]
)
H(\textit{\textbf{v}}^{[l]}_m)
H(vm[l])的熵不等式,
v
m
[
l
]
\textit{\textbf{v}}^{[l]}_m
vm[l]上的信息被
H
(
v
m
[
l
]
)
⩾
H
(
v
m
[
L
]
)
H(\textit{\textbf{v}}^{[l]}_m)\geqslant H(\textit{\textbf{v}}^{[L]}_m)
H(vm[l])⩾H(vm[L])。这导致
f
a
f_a
fa和
f
b
f_b
fb之间最终嵌入的互信息
I
(
v
a
[
L
]
,
v
b
[
L
]
)
\mathit{I}(\textit{\textbf{v}}^{[L]}_a,\textit{\textbf{v}}^{[L]}_b)
I(va[L],vb[L])的上界:
分层MCL优化了互信息
{
I
(
v
a
[
l
]
,
v
b
[
l
]
)
}
l
=
1
L
\{\mathit{I}(\textit{\textbf{v}}^{[l]}_a,\textit{\textbf{v}}^{[l]}_b)\}^L_{l=1}
{I(va[l],vb[l])}l=1L,并帮助网络有意义地从彼此学习更多共同知识。
4.4 逻辑级在线知识蒸馏
对于监督图像分类,我们通过传统的交叉熵损失
L
c
e
L_ce
Lce训练M个具有辅助分量的网络
{
f
m
}
m
=
1
M
\{f_m\}^M_{m=1}
{fm}m=1M,其中地面真值标签y作为基本任务损失:
这里,
σ
σ
σ表示softmax函数。任务丢失是相互学习的前提,它引导网络学习任务感知信息。
除了特征层面,以前的在线KD方法通常在一组网络之间进行逻辑层面的协作学习。类概率分布已被广泛证明是一种相互学习的信息形式。我们进一步在分层MCL的训练架构上提出了一种简单而有效的集成蒸馏。对于每个网络
f
m
f_m
fm,我们通过
{
w
m
[
l
]
}
l
=
1
L
\{w^{[l]}_m\}^L_{l=1}
{wm[l]}l=1L的融合权重聚合多分支逻辑
{
z
m
[
l
]
}
l
=
1
L
\{\textit{\textbf{z}}^{[l]}_m\}^L_{l=1}
{zm[l]}l=1L,以构建表示为
z
m
e
n
s
\textit{\textbf{z}}^{ens}_m
zmens的虚拟教师角色:
其中
w
m
[
l
]
w^{[l]}_m
wm[l]是第l层逻辑的重要性权重
z
m
[
l
]
\textit{\textbf{z}}^{[l]}_m
zm[l]。我们创建了一个可学习的门模块
G
m
G_m
Gm,以根据作为输入线索的输入特征嵌入
{
F
m
[
l
]
}
l
=
1
L
\{ F^{[l]}_m\}^L_{l=1}
{Fm[l]}l=1L的信道级联来产生
w
w
w的聚合权重:
其中
w
m
=
[
w
m
[
1
]
,
w
m
[
2
]
,
⋅
⋅
,
w
m
[
L
]
]
\textit{\textbf{w}}_m=[w^{[1]}_m,w^{[2]}_m,··,w^{[L]}_m]
wm=[wm[1],wm[2],⋅⋅,wm[L]]。门模块
G
m
G_m
Gm包括两个具有中间ReLU激活并由softmax终止的线性层,其中具有
L
L
L个神经元的最后一层输出权重值。
z
m
e
n
s
\textit{\textbf{z}}^{ens}_m
zmens也通过交叉熵损失
L
c
e
L_{ce}
Lce由标签
y
y
y监督,以使
G
m
G_m
Gm可学习:
给定队列
{
f
m
}
m
=
1
M
\{f_m\}^M_{m=1}
{fm}m=1M,我们可以获得相应的M个集合逻辑
{
z
m
e
n
s
}
m
=
1
M
\{\textit{\textbf{z}}^{ens}_m\}^M_{m=1}
{zmens}m=1M。然后我们通过KL发散以传统的对等教学方式在
M
M
M个网络之间执行相互学习。给定第
a
a
a个网络的最终逻辑
z
a
[
L
]
\textit{\textbf{z}}^{[L]}_a
za[L],另一个
M
−
1
M−1
M−1网络的集成逻辑
{
z
b
e
n
s
}
b
=
1
,
b
≠
a
M
\{\textit{\textbf{z}}^{ens}_b\}^M_{b=1,b\ne a}
{zbens}b=1,b=aM被视为教师来监督
f
a
f_a
fa:
其中
T
T
T是温度常数,我们根据[22]设置
T
=
3
T=3
T=3。如[57]所示,梯度不通过教师分布
z
b
e
n
s
z^{ens}_b
zbens传播,以避免模型崩溃问题。
4.5培训和优化
4.5.1对比样本挖掘
对比学习中的一个关键问题是对比样本挖掘。我们考虑以下两种实现:
- 基于批处理的挖掘:我们创建了一个类感知采样器来构造小批量。批量大小为B的小批量由B/2类组成。每个类别有两个样本,其他来自不同类别的样本为阴性样本。我们将每个样本视为当前小批量中的锚实例,将其他样本视为对比实例。
- 基于内存的挖掘:批量大小限制了可用对比样本的数量。Wang等人[60]表明,特征嵌入在整个训练过程中缓慢漂移。我们在训练期间创建了一个在线内存库[61],以存储过去迭代中的大量嵌入。这使我们能够为每个训练步骤从记忆库中检索足够的对比样本。
根据我们在第5.5节中的实证研究,我们对小规模数据集(如CIFAR-100[42])使用基于批处理的挖掘,对大规模数据集(例如ImageNet[43])使用基于内存的挖掘。在CIF AR-100和ImageNet上使用各种挖掘方法实现MCL的伪代码如附录所示。
4.5.2总体损失
我们总结了协作学习中基于嵌入的分层MCL和基于逻辑的分类损失:
我们在图3中说明了培训框架的概述。
五、实验
在本节中,我们评估了在CIFAR-100[42]和ImageNet[43]分类任务上提出的分层MCL(为简单起见称为L-MCL),并将其与各种网络对上最先进的在线KD方法进行了比较。对图像分类、检测和分割进行了广泛的转移实验,以检验学习的特征表示的有效性。最后,我们展示了详细的消融研究和参数分析,以研究每个组件。
5.1 CIFAR-100分类结果
CIFAR-100数据集:CIFAR-100[42]是由自然图像组成的分类数据集。它包括来自100个班级的50K训练图像和10K测试图像。作为通用协议,我们遵循标准的数据扩充和预处理流水线[2],即随机裁剪和翻转。每个图像的输入大小为 32 × 32 32×32 32×32。
实施细节:所有网络都由SGD训练,动量为
0.9
0.9
0.9,批量大小为
128
128
128,权重衰减为
5
×
1
0
−
4
5×10^{−4}
5×10−4。我们使用的余弦学习率从
0.1
0.1
0.1开始,在
300
300
300个时期内逐渐降低到
0
0
0。正如Chen等人[34]所建议的,我们使用
τ
=
0.1
τ=0.1
τ=0.1进行相似性校准,
d
=
128
d=128
d=128作为对比嵌入大小。我们采用基于小批量的对比样本挖掘,并设置
K
=
126
K=126
K=126(即批量大小
−
2
−2
−2) 作为阴性样本的数量。我们报告了三次运行的平均结果和标准偏差(平均值±标准偏差),以进行公平比较。关于超参数策略的更多分析见第5.5节。
表1:通过在CIFAR-100上联合训练具有相同架构的两个网络,在线KD方法的前1准确率(%)。粗体数字是各种方法中最好的结果,而下划线数字是第二好的。
表2:通过在CIFAR-100上联合训练具有不同架构的两个网络,在线KD方法的前1准确率(%)。粗体数字是各种方法中最好的结果,而下划线数字是第二好的。
在具有相同架构的两个对等网络下与SOTA在线KD方法的比较:如表1所示,我们首先研究了L-MCL的有效性,这是我们先前提出的MCL的改进方法[39]。一些用于图像分类的流行骨干网络,如ResNets[1]、WRN[58]、HCGNets[3]和ShuffleNetV2[59],被用于评估性能。此外,还比较了许多具有代表性的在线KD方法,如DML[21]、ONE[22]、AFD[27]、KDCL[25]和PCL[26],以验证我们的L-MCL的优势。表1中所示的所有结果都是通过联合训练具有相同架构的两个网络实现的。正如预期的那样,与独立训练方法相比,所有在线KD方法在各种网络架构中一致地提高了分类性能。结果表明,一个网络可以从与另一个网络的对等教学中受益。
我们提出的L-MCL优于之前的SOTA PCL,在ResNets、WRN、ShuffleNet和HCGNet系列上的平均精度分别提高了 1.04 % 1.04\% 1.04%和 1.05 % 1.05\% 1.05%以及 1.60 % 1.60\% 1.60%和 0.73 % 0.73\% 0.73%。此外,很难说哪种方法是第二好的方法,因为不同的方法对于不同的体系结构或数据集都是更好的。可以得出结论,以前的在线KD方法侧重于在多个网络中提取逻辑级别的类概率,但主要不同于各种学习策略。然而,探索单一类型的逻辑级知识可能会限制在线KD方法的性能改进。除了逻辑层面的提炼,我们的L-MCL旨在通过利用协作学习来进行对比表征学习。与基线相比,L-MCL在ResNets、WRNs、ShuffleNet和HCGNet家族中的平均准确率分别提高了 4.25 % 4.25\% 4.25%、 4.15 % 4.15\% 4.15%、 5.60 % 5.60\% 5.60%和 4.05 % 4.05\% 4.05%。
在两种不同架构的网络下与SOTA在线KD方法的比较:如表2所示,我们进一步对在线KD方法的两种不同网络架构进行了实验,其中“Net2”表示比“Net1”更高的容量网络。与相同网络对的情况相比,我们观察到一些类似的性能改进结论。所有在线KD方法通常会提高网络对的各种组合的性能。结果表明,现有的在线KD方法通常不依赖于特定于体系结构的线索。与其他方法相比,我们的L-MCL获得了最佳的精度增益。它还超过了最好的竞争对手PCL的八个网络对,在Net1和Net2上的平均精度分别提高了 0.76 % 0.76\% 0.76%和 0.86 % 0.86\% 0.86%。结果验证了我们的L-MCL的可扩展性,可以在不同的体系结构设置下正常工作。
此外,我们还发现了处理两个不同网络的L-MCL的其他观察结果。即使与作为合作伙伴的较低网络(Net1)相结合,高容量网络(Net2)仍然可以获得显著的性能改进。例如,ResNet-110与ResNet-32组合时获得 4.19 % 4.19\% 4.19%的增益。请注意,ResNet-322( 70.91 % 70.91\% 70.91%)与ResNet110( 75.29 % 75.29\% 75.29%)之间的基线性能差距非常大。WRN家族也有类似的观察结果。当WRN-16-2网络被选择作为伙伴时,WRN-40-2获得 3.21 % 3.21\% 3.21%的改进。这里,WRN-16-2与WRN40-2的性能比较为 72.55 % 72.55\% 72.55%与 76.89 % 76.89\% 76.89%。此外,我们观察到,通过与不同容量的各种网络合作,给定网络的性能改进可能是近似的。例如,当ResNet-110与ResNet-32、ResNet-56和WRN-28-4组合时,其精度分别提高了 4.25 % 4.25\% 4.25%、 4.19 % 4.19\% 4.19%和 4.58 % 4.58\% 4.58%。类似地,当WRN-16-2、WRN-28-6和ResNet-566用作合作伙伴时,WRN40-2的精度提高了 3.21 % 3.21\% 3.21%、 3.27 % 3.27\% 3.27%和 3.51 % 3.51\% 3.51%,这种优势允许我们将L-MCL应用于资源受限场景,以通过选择轻量级网络作为伙伴来增强目标网络。
表3:在CIFAR-100上使用相同架构联合训练三个网络的前1准确率(%)。粗体数字表示各种方法中的最佳结果,而下划线数字表示第二最佳结果。
将在线KD方法扩展到三个网络:如表3所示,我们在三个网络上进行了在线KD方法的实验。随着队列中网络数量的增加,大多数方法通常会比两个网络的情况获得更好的准确性。这是因为更多的网络可以为协作学习获取更丰富的知识。我们的L-MCL始终取得最佳性能,在ResNet、WRN和ShuffleNet系列上分别以 1.10 % 1.10\% 1.10%、 1.35 % 1.35\% 1.35%和 1.25 % 1.25\% 1.25%的平均收益超过了之前的SOTA PCL。结果进一步验证了我们的说法,即进行对比表征学习是在线KD的有效方法。似乎在线KD方法的性能增益可能在三个网络上饱和。例如,应用于三个网络的L-MCL仅在六个网络架构中实现了0.36%的平均增长,而与两个网络的对应网络相比。
少镜头场景下的对比:实际上,可用的培训样本可能很少。如图4所示,我们通过保持 25 % 25\% 25%、 50 % 50\% 50%和 75 % 75\% 75%的训练样本,在少数镜头场景下对各种在线KD方法进行了实验。我们采用分层抽样,使新制作的训练集班级均衡。为了公平比较,我们在保留原始测试集不变的情况下,对每个少镜头比率使用相同的数据分割策略。我们的L-MCL可以在不同的少射比中始终优于其他竞争方法。当使用 25 % 25\% 25%、 50 % 50\% 50%和 75 % 75\% 75%的培训样本进行培训时,它以 1.73 % 1.73\% 1.73%、 1.18 % 1.18\% 1.18%和 1.26 % 1.26\% 1.26%的利润率超过了最好的竞争对手PCL。结果表明,L-MCL能够更好地推广到少数镜头场景,这可能归因于用于学习一般特征的对比学习。相比之下,以前的在线KD方法通常依赖于类概率蒸馏,这可能会过度拟合有限集,但会将更差的结果推广到测试集。
5.2 STL-10和TinyImageNet上的图像分类转移学习结果
STL-10和TinyImageNet数据集:STL-10[62]包含
10
10
10个类别的
5
K
5K
5K个标记训练图像和
8
K
8K
8K个测试图像。TinyImageNet1包括
200
200
200个班级的
100
K
100K
100K训练图像和
10
k
10k
10k测试图像。在转移学习设置下,每个输入图像被下采样到
32
×
32
32×32
32×32,以匹配CIFAR-100的大小。我们遵循与CIFAR-100相同的数据扩充和预处理流程。
表4:线性分类方案下STL-10和TinyImageNet的Top-1准确度(
%
\%
%)。我们冻结在CIFAR-100上预训练的特征提取器,并在全局平均池化后对特征进行线性分类器训练。
实施细节:我们冻结在CIFAR-100上预训练的特征提取器,并在传输的数据集上训练线性分类器。我们使用了动量为 0.9 0.9 0.9、批量大小为 64 64 64、权重衰减为 0 0 0的SGD优化器。初始学习率从 0.1 0.1 0.1开始,在总共 100 100 100个时期内的第 30 30 30、 60 60 60和 90 90 90个时期衰减 10 10 10。
STL-10和TinyImageNet迁移学习的比较:在线KD方法的一个理想特性是引导网络获取可以很好地转移到其他未发现的语义识别任务的通用特征表示。我们遵循线性分类协议[33]来量化特征的可转移性。网络由CIFAR-100预处理并用作冻结特征提取器。我们训练一个有监督的线性分类器(一个完全连接的层,后跟softmax)来执行 10 10 10路(对于STL-10)或 200 200 200路(对于TinyImageNet)分类。
如表4所示,我们观察到,与基线相比,当前的在线KD方法不能有效提高下游分类性能。我们推测,基于逻辑的蒸馏可能会使网络偏向原始任务。相比之下,我们的MCL或 L − M C L L-MCL L−MCL可以显著提高下游分类。L-MCL在STL10和TinyImageNet上的平均利润率分别为 4.38 % 4.38\% 4.38%和 4.42 % 4.42\% 4.42%,取得了最好的结果并优于基线。结果表明,我们的L-MCL可以引导网络学习良好的广义特征表示。
图4:在具有不同百分比训练数据的少镜头场景下,各种在线KD方法的Top-1准确率(
%
\%
%)。在WRN-40-2主干上评估性能。我们分别保留训练集的
25
%
25\%
25%、
50
%
50\%
50%、
75
%
75\%
75%和
100
%
100\%
100%样本。我们保持原始测试集不变。
表5:使用ResNet-18网络对ImageNet分类的各种在线KD方法进行比较,并基于Mask RCNN框架将学习转移到COCO-2017。我们使用“bbox mAP”和“segm mAP”分别评估对象检测和实例分割的性能
5.3 ImageNet分类结果
ImageNet数据集:ImageNet[43]是一个大规模图像分类数据集,包含 1000 1000 1000个类中的 120 120 120万张训练图像和 50 K 50K 50K张验证图像。作为通用协议,我们遵循标准的数据扩充和预处理流水线[2]。每个图像的输入大小为 224 × 224 224×224 224×224。
实施细节:所有网络都由SGD训练,动量为 0.9 0.9 0.9,批量大小为 256 256 256,权重衰减为 1 × 1 0 − 4 1×10^{−4} 1×10−4.初始学习率从 0.1 0.1 0.1开始,在总共 90 90 90个时期内的 30 30 30和 60 60 60个时期衰减 10 10 10。如Wu等人所建议的。[61],我们在ImageNet上使用 τ = 0.07 τ=0.07 τ=0.07进行相似性校准, d = 128 d=128 d=128作为对比嵌入大小。我们采用基于记忆的对比样本挖掘,从在线记忆库中检索一个正嵌入和 K = 8192 K=8192 K=8192个负嵌入。关于超参数策略的更多分析见第5.5节。
在具有相同架构的两个对等网络下与SOTA在线KD方法的比较:如表5所示,我们在更具挑战性的ImageNet上进一步进行了实验,以比较应用于两个ResNet-18网络的各种在线KD方法。我们的L-MCL仍然可以在大型ImageNet上实现最佳分类性能。它以 0.52 % 0.52\% 0.52%的顶级精度增益击败了之前的SOTA PCL。结果证明了大规模数据集上表示学习的相互对比学习的可扩展性。
表6:CIFAR-100上基于特征的LMCL中损失项的消融研究。
5.4 COCO-2017上转移学习到对象检测和实例分割的结果
COCO-2017数据集:COCO-2017[44]是用于对象检测和实例分割的广泛采用的数据集。它包括 120 k 120k 120k张训练图像和 5 k 5k 5k张验证图像,包含 80 80 80个对象类别。
实施细节:我们基于MMDetection进行了目标检测实验[63]。所有实验都在 8 8 8个GPU上使用同步SGD实现,每个GPU有两个图像。我们采用具有 12 12 12个时期的 1 x 1x 1x学习调度器。其他设置之后是默认的MMDetection。
COCO-2017上的转移学习与对象检测和实例分割的比较:我们在ImageNet上使用各种在线KD方法作为Mask RCNN[5]上的骨干,使用预训练的ResNet-18进行下游对象检测和示例分割。如表5所示,与基线相比,使用L-MCL在ImageNet上训练ResNet18特征提取器在下游检测和分割任务中实现了显著的mAP增益。此外,我们的L-MCL在对象检测和实例分割方面的mAP改进分别为 0.7 % 0.7\% 0.7%和 0.6 % 0.6\% 0.6%,优于PCL。结果证明了L-MCL在学习下游语义识别任务的更好表示方面的有效性。
5.5消融研究和参数分析
L-MCL中损失项的消融研究:如表6所示,我们观察到对比学习的每个损失项都有助于提高成绩。与基线相比,ICL在ResNet-110和WRN-40-2上实现了 3.14 % 3.14\% 3.14%和 2.46 % 2.46\% 2.46%的精度改进,而传统VCL获得了 1.89 % 1.89\% 1.89%和 0.77 % 0.77\% 0.77%。这是因为ICL通过聚合跨网络嵌入比VCL信息量更大,并且旨在最大化网络之间的相互信息。我们进一步比较了VCL和ICL及其衍生的软标签。 L I C L + L S o f t _ I C L L^{ICL}+L^{Soft\_ICL} LICL+LSoft_ICL的损失组合在ResNet-110和WRN-40-2上分别以 1.43 % 1.43\% 1.43%和 1.08 % 1.08\% 1.08%的准确度裕度优于 L V C L + L S o f t _ V C L L^{VCL}+L^{Soft\_VCL} LVCL+LSoft_VCL。结果验证了我们的说法,即ICL及其软标签比传统VCL及其软标记更重要。最后,将VCL和ICL归纳为一个统一的框架可以最大化协作表示学习的性能增益。
表7:CIFAR-100上基于特征的L-MCL和基于逻辑的在线KD(OKD)损失的消融研究。
表8:CIFAR-100上基于特征的L-MCL在不同阶段使用不同特征嵌入的消融研究。
基于特征的L-MCL和基于logit的在线KD的损失项消融研究:除了功能级别的L-MCL,我们还进行了逻辑级别的在线KD以进行联合学习。如表7所示,我们检查了在线KD中每个组件的贡献。与基线相比,应用L-MCL(即 L L _ M C L L^{L\_MCL} LL_MCL)在ResNet-110和WRN-40-2上获得 3.52 % 3.52\% 3.52%和 2.80 % 2.80\% 2.80%的准确度增益,而我们提出的逻辑级在线KD(即 L t a s k _ G + L l o g i t L^{task\_G}+L^{logit} Ltask_G+Llogit)达到 1.84 % 1.84\% 1.84%和 1.75 % 1.75\% 1.75%。结果表明,基于特征的L-MCL比基于逻辑的在线KD有更多的改进。如果没有门控机制(即 w / o w/o w/o L t a s k _ G L^{task\_G} Ltask_G),逻辑级在线KD退化为集成逻辑的简单平均聚合(即,方程(16)中的 w m [ l ] = 1 / L w^{[l]}_m=1/L wm[l]=1/L)。在ResNet-110和WRN40-2上,它分别降低了 0.67 % 0.67\% 0.67%和 0.79 % 0.79\% 0.79%的利润率。结果证明了使用门控模块的加权聚合的优势。最后,将基于特征的L-MCL和基于logit的在线KD结合到一个统一的框架中,可以将性能增益最大化到 3.87 % 3.87\% 3.87%和 3.84 % 3.84\% 3.84%。
LMCL各种特征嵌入的消融研究:L-MCL与之前的MCL的一个关键区别是来自不同阶段的各种特征嵌入用于对比学习。从不同卷积阶段生成的特征嵌入通常编码各种表示信息模式[14]。这促使我们在最终嵌入之外执行中间特征的分层MCL。如表8所示,我们探索了MCL不同阶段的各种嵌入组合。在 v [ 1 ] v^{[1]} v[1]、 v [ 2 ] v^{[2]} v[2]和 v [ 3 ] v^{[3]} v[3]上独立执行MCL,平均准确率分别提高了 1.15 % 1.15\% 1.15%、 1.78 % 1.78\% 1.78%和 2.23 % 2.23\% 2.23%。我们可以观察到,由于更高级的语义信息,来自更深层的嵌入往往会获得更好的性能。我们还研究了( v [ 1 ] v^{[1]} v[1], v [ 3 ] v^{[3]} v[3])和( v [ 2 ] v^{[2]} v[2], v [ 3 ] v^{[3]} v[3])的两种组合,它们分别以 0.33 % 0.33\% 0.33%和 0.52 % 0.52\% 0.52%的平均裕度优于最终嵌入 v [ 3 ] v^{[3]} v[3]。结果表明,将MCL应用于中间层可以进一步提高最终层的性能。最后,使用( v [ 1 ] v^{[1]} v[1], v [ 2 ] v^{[2]} v[2], v [ 3 ] v^{[3]} v[3])的所有特征嵌入可以最大化性能增益。
图5:在不同数量的负样本下,两种不同的对比样本挖掘方法的比较。负数为
K
−
2
K− 2
K−2(由于正对是从同一批中检索的,因此偏移了2)和
K
K
K。
不同样本挖掘方法和阴性样本数量的影响:如图5所示,我们研究了两种不同的对比样本挖掘方法(参见第4.5节),并联合使用了不同数量的否定。我们分别在代表小数据集和大数据集的CIFAR-100和ImageNet上进行了实验。首先,这两种对比样本挖掘法都受益于更大的K。并且K将在存储器组的某个容量下饱和。这一观察结果类似于记忆库机制下的一些先前的自我监督工作[33]、[61]。它还表明,更多的负样本可以引导网络学习更好的特征表示。这可能是因为增加的相互信息鼓励网络之间更多的知识转移,如等式(6)所述。
表9:CIFAR-100和ImageNet上各种对比嵌入维度的前1精度(%)。
图6:超参数
α
α
α和
β
β
β的敏感性分析。
通常,在相同K条件下,基于小批量的方法优于基于记忆库的方法,因为相同小批量内的对比特征嵌入是一致的[33]。然而,批量大小限制了小批量中可用的阴性样本。如图5a所示,即使批大小很小,在小规模CIFAR-100上,内存组的性能上限也低于小批量的性能上限。相反,如图5b所示,具有更多负面影响的基于内存库的机制打破了大规模ImageNet上基于小批量的对应机制的性能上限。我们推测这是因为所需的负样本数量可能与对比学习的数据集大小正相关。ImageNet通常需要比CIFAR-100更多的负样本来学习更好的特征。总体而言,我们分别对CIFAR-100和ImageNet使用基于小批量和基于内存库的采样方法 − 2 −2 −2) 对于CIFAR-100, K = 8192 K=8192 K=8192对于ImageNet。
对比嵌入维度的影响:我们研究了嵌入维度d对计算CIFAR-100和ImageNet上L-MCL对比分布的影响。我们从 d = 32 d=32 d=32开始到 d = 256 d=256 d=256,发现精度性能从 32 32 32稳步提高,在 128 128 128达到稳定,在 256 256 256达到饱和
损失系数α和β的影响:如图6所示,我们研究了权重系数 α α α和 β β β的影响,其中 α ∈ ( 0 , 1 ] α∈(0,1] α∈(0,1]和 β ∈ ( 0 , 1.5 ] β∈(0,1.5] β∈(0,1.5]。我们发现 α ∈ [ 0.05 , 0.4 ] α∈[0.05,0.4] α∈[0.05,0.4]与监督学习相比,基于InfoNCE的对比学习效果良好,但当 α α α大于 0.4 0.4 0.4时,性能会降低。我们推测,对比学习的百分比越大,可能会影响原始的监督任务丢失。此外,我们还观察到基于KL散度的β在权重为 1.0 1.0 1.0时工作良好。本文选择 α = 0.1 α=0.1 α=0.1和 β = 1.0 β=1.0 β=1.0作为最佳选择。
MCL是否使网络更相似?随着MCL的相互模仿,人们可能会问,队列中不同网络的输出嵌入是否会变得更相似。为了回答这个问题,我们可视化了具有独立训练和MCL的两个ResNet-32的学习嵌入空间,如图7所示。我们观察到,与独立训练基线相比,使用MCL训练的两个网络确实显示出更相似的特征分布。然而,MCL训练的网络实现了比基线更好的精度性能。这一观察表明,使用MCL的各种网络可以从其他人那里学习更多的公共知识。此外,与独立训练相比,MCL可以使每个网络学习更具鉴别性的嵌入空间,从而有利于下游分类性能。
图7:具有独立训练的两个ResNet-32(Net1和Net2)的嵌入空间的T-SNE可视化(左)和我们的MCL(右)在来自[39]的CIFAR-10数据集[42]上。同一圆圈中的簇来自同一类。
六、结论
我们提出了相互对比学习,这是一种在线KD方法,从对比表征学习的角度训练一组模型。在中间和最终特征层上执行逐层MCL,以促进充分的知识交互并最大化两个网络之间的相互信息。包括图像分类和对象检测在内的一系列视觉识别任务的实验结果表明,分层MCL在学习更好的特征方面具有优势。这进一步导致了比其他流行的登录级在线KD方法更好的性能。我们希望我们的工作能够促进未来的研究,以利用表征学习来提高在线KD,而不仅仅关注逻辑级知识。