【论文笔记_知识蒸馏_对比学习_2020】CONTRASTIVE REPRESENTATION DISTILLATION

请添加图片描述
(representational knowledge暂译为表征知识)
代码地址::http://github.com/HobbitLong/RepDistiller

摘要

我们通常希望将表征知识从一个神经网络转移到另一个神经网络。例如,将一个大的网络提取为一个小的网络,将知识从一个感官模态转移到另一个感官模态,或将一组模型整合到一个估计器中。知识提炼是解决这些问题的标准方法,它将教师和学生网络的概率输出之间的KL差异最小化。我们证明了这个目标忽略了教师网络的重要结构知识。这激发了另一个目标,通过这个目标,我们训练学生在教师的数据表示中获取更多的信息。我们把这个目标描述为对比学习。实验表明,我们的新目标在各种知识转移任务上都优于知识蒸馏和其他前沿蒸馏器,包括单模型压缩、集成蒸馏和跨模式转移。我们的方法在许多迁移任务中开创了新的技术水平,有时甚至在与知识蒸馏相结合时优于教师网络。

1.介绍

知识提炼(KD)将知识从一个深度学习模型(教师)转移到另一个深度学习模型(学生)。Hinton等人(2015)最初提出的目标是将教师和学生输出之间的KL差异最小化。当输出是一个分布,例如类上的概率质量函数时,该公式具有直观意义。然而,我们通常希望传递有关representation的知识。例如,在“跨模态蒸馏”问题中,我们可能希望将图像处理网络的表示转移到声音(Aytar等人,2016)或深度(Gupta等人,2016)处理网络,这样图像的深度特征和相关的声音或深度特征高度相关。在这种情况下,KL发散是不确定的。

表征知识是结构化的——维度表现出复杂的相互依赖性。最初的KD目标(Hinton等人,2015年)将所有维度视为独立的,以输入为条件。让yT成为老师的输出,yS成为学生的输出。那么原始的KD目标函数ψ具有全因子形式:请添加图片描述. 这种带因素的目标不足以传递结构知识,即输出维度i和j之间的依赖关系。这与图像生成中的情况类似,在图像生成中,由于输出维度之间的独立性假设,L2目标会产生模糊的结果。

为了克服这个问题,我们想要一个目标,捕捉相关性和高阶输出依赖性。为了实现这一点,在本文中,我们利用了对比目标家族(Gutmann&Hyvärinen,2010;Oord等人,2018;Arora等人,2019;Hjelm等人,2018)。近年来,这些目标函数已成功地用于密度估计和表征学习,尤其是在自我监督环境中。在这里,我们让他们适应从一个深层网络到另一个深层网络的知识蒸馏任务。我们表明,致力于研究表现空间很重要,类似于最近的工作,如Zagoruyko和Komodakis(2016a);Remero等人(2014年)。然而,请注意,这些工作中使用的损失函数并没有明确尝试捕捉表征空间中的相关性或高阶相关性。

请添加图片描述
图1:我们考虑的三种提取设置:(a)压缩模型,(b)将知识从一种模式(例如RGB)转移到另一种模式(例如深度),(c)将网络集合提取到单个网络中。对比目标鼓励教师和学生将相同的输入映射到接近的表示(在某些度量空间中),并将不同的输入映射到遥远的表示,如阴影圈所示。

我们的目标是最大化教师和学生之间的互信息的下限。我们发现,这会在多个知识转移任务中产生更好的表现。我们推测,这是因为对比目标能更好地传递教师表征中的所有信息,而不仅仅是传递关于条件独立输出类概率的知识。有些令人惊讶的是,对比目标甚至改善了最初提出的提取类概率知识的任务的结果,例如,将大型CIFAR100网络压缩为性能几乎相同的较小网络。我们认为这是因为不同类别概率之间的相关性包含有用的信息,可以规范学习问题。我们的论文在两个主要独立发展的文献之间建立了联系:知识蒸馏和表征学习。这种联系使我们能够利用表征学习的强大方法,显著提高知识蒸馏的SOTA。
我们的贡献是:
1.基于对比的目标,用于在深度网络之间传递知识。
2.模型压缩、跨模态传输和整体蒸馏的应用。
3.对标12种最新蒸馏方法;CRD优于所有其他方法,例如,与原始KD相比,平均相对改善57%(Hinton等人,2015),令人惊讶的是,后者的表现次之。

2.相关工作

3.方法

对比学习的关键思想非常普遍:学习在某个度量空间中接近“积极”对的表征,并将“消极”对之间的表征分开。图1直观地解释了我们如何为我们考虑的三项任务构建对比学习:模型压缩、跨模态转换和集成蒸馏。
3.1对比损失
给定两个深度神经网络,一个教师fT和一个学生fS。让x作为网络输入;我们将倒数第二层(在logits之前)的表示分别表示为fT(x)和fS(x)。设xi代表训练样本,xj为另一个随机选取的样本。我们希望在分开fS(xi)和fT(xj)的同时,令fS(xi)和fT(xi)的表示形式更接近。为了便于表示,我们分别为学生和教师的数据表示定义了随机变量S和T:
请添加图片描述
直观地说,我们将考虑联合分布P(s,t)和边际分布p(s)p(t)的乘积,这样,通过最大化这些分布的KL散度,我们可以最大化学生和教师表示之间的互信息。为了建立一个能够实现这一目标的适当损失,让我们定义一个带有潜变量C的分布q,它决定是从联合(C=1)还是边缘(C=0)的乘积中提取元组(fT(xi),fS(xj)):
请添加图片描述
现在,假设在我们的数据中,对于每N个不一致对(从边缘的乘积中提取;向T和S提供独立的随机提取输入),我们得到1个一致对(从联合分布中提取,即向T和S提供相同的输入)。那么潜在C的前提是:
请添加图片描述
通过简单的操作和贝叶斯规则,C=1类的后验概率如下所示:
请添加图片描述
接下来,我们观察到互信息的联系,如下所示:
请添加图片描述
然后将两边的期望值比如p(t,S)(相当于q(t,S | C=1))重新排列,得到:
请添加图片描述
其中I(T;S)是教师和学生嵌入分布之间的互信息。因此,最大化请添加图片描述(学生网络S的参数)增加了互信息的下限。然而,我们不知道真正的分布q(C=1 | T,S);相反,我们通过拟合模型h:{T,S}→ [0,1]和数据分布q(C=1 | T,S)中的样本来估计它,其中T和S代表嵌入的域。我们最大化了该模型下数据的对数可能性(二元分类问题):
请添加图片描述
我们称h为critic,因为我们将学习优化critic分数的表达。假设有效的表达h,h(T,S)=q(C=1 | T,S)(通过Gbbi’s不等式;参见第6.2.1节证明),因此我们可以用h重写等式9:
请添加图片描述
因此,我们可以看到,最优critic是一个估计量,其期望下限是互信息。我们希望训练一个学生,使其表达和教师表达之间的互信息最大化,并提出以下优化问题:
请添加图片描述
这里的一个明显的困难是,最佳的临界点是h∗ 取决于现在的学生。我们可以通过削弱(12)中的界限来规避这个困难:
请添加图片描述
第一行是通过简单地添加请添加图片描述到(12)中的边界。这个术语是严格负的,所以不平等性成立。最后一行来自以下事实:Lcritic(h∗) 上界Lcritic(h)。用式(15)优化我们的学生:
请添加图片描述
这表明我们可以在学习h的同时共同优化fS。我们注意到,由于(16),请添加图片描述,对于任何h,也是一个表示,它优化了互信息的下限(较弱的一个),因此我们的公式不依赖于h被完美优化。 我们可以选择用满足h:{T,S}h→ [0, 1]的任何函数族来表示. 在实践中,我们使用以下方法:
请添加图片描述
其中M是数据集的基数,τ是调整浓度水平的温度。实际上,由于S和T的维数可能不同,gS和gT会对它们进行同维度的线性变换并且在内积之前,通过L-2范数对其进行进一步规范化。

等式(18)的形式受NCE启发(Gutmann&Hyvärinen,2010;Wu等人,2018)。我们的公式类似于InfoNCE loss(Oord et al.,2018),因为我们最大化了互信息的下限。然而,我们使用了不同的目标和界限,在我们的实验中,我们发现这比InfoNCE更有效。

实施:理论上,等式16中的N越大,MI的下限越紧。在实践中,为了避免使用非常大的batch size,我们遵循Wu et al.(2018)的方法,实现了一个内存缓冲区,用于存储从以前批次计算的每个数据样本的潜在特征。因此,在训练期间,我们可以有效地从内存缓冲区中检索大量负样本。

3.2知识蒸馏目标
Hinton等人(2015)提出了知识蒸馏损失。除了学生输出yS和一个one-hot标签y之间的常规交叉熵损失外,它还通过最小化学生网络输出概率之间的交叉熵,要求学生网络输出与教师输出尽可能相似。总的目标是: 请添加图片描述
其中ρ是温度,α是平衡权重,σ是softmax函数。 …

3.3跨模态传输loss
在图1(b)所示的跨模态转换任务中,教师网络在具有大规模标记数据集的源模态X上进行训练。然后,我们希望将知识转移到学生网络,但将其调整到另一个数据集或模式Y。但教师网络的功能对于帮助学生在另一个领域学习仍然很有价值。在这个迁移任务中,我们使用对比损失公式10来匹配学生和教师的特征。此外,我们还考虑其他蒸馏目标,如KD在前一节中讨论的,注意力转移Zguruyko和KoODaKIS(2016A)和FitNet Romero等。(2014)。这样的传输是在成对但未标记的数据集 请添加图片描述。在这种情况下,对于源模态上的原始训练任务,此类数据没有真正的标签y,因此我们忽略了我们测试的所有目标中的H(y,yS)项。之前的跨模态工作Aytar等人(2016年);Hoffman等人(2016b;a)使用L2回归或KL散度。

3.4整体蒸馏损失
在图1(c)中所示的整体蒸馏的情况下,我们有M>1个教师网络fTi和一个学生网络fS。我们通过定义每个教师网络fTi和学生网络fS的特征之间的多个成对的对比损失来创建对比框架。这些损失加在一起得到最终损失(要最小化):
请添加图片描述

4.实验

我们在三个知识提炼任务中评估了我们的对比表征蒸馏(CRD)框架:(a)将一个大型网络模型压缩为一个小型网络;(b) 跨模式知识转移;(c) 从一群教师到单个学生网络的整体升华。
数据集
(1) CIFAR-100(Krizhevsky&Hinton,2009)包含50K训练图像,每类0.5K图像和10K测试图像。(2) ImageNet(邓等人,2009年)提供120万张来自1K课程的图像用于培训,50K用于验证。(3) STL-10(Coates等人,2011年)包括一个训练集,包括10个类别的5K标记图像和100K未标记图像,以及一个8K图像的测试集。(4) TinyImageNet(邓等人,2009年)有200个课程,每个课程有500个培训图像和50个验证图像。(5) 纽约大学深度V2(Silberman et al.,2012)由1449幅室内图像组成,每幅图像都标有密集深度图像和语义图。
4.1模型压缩
请添加图片描述
表1:在许多蒸馏方法(我们的是CRD)的CIFAR100上,学生网络的测试精度(%);其他方法的引用见附录。↑ 表示优于KD,↓ 表示表现不佳。我们注意到,CRD是始终优于KD的唯一方法(也优于所有其他方法)。我们用方法表示,我们在论文的基础上使用了我们的重新实现;对于所有其他方法,我们使用作者提供或作者验证的代码。平均5次以上。*

4.2跨模态转移

4.3从集合中蒸馏

4.4消融实验

4.5超参数和计算开销

5.结论

我们开发了一种新的神经网络蒸馏技术,使用对比目标的概念,这通常用于表征学习。我们在模型压缩、跨模态传输和集成蒸馏等许多应用上对我们的目标进行了实验,在所有这些任务中都比其他蒸馏目标有显著的优势。我们的对比目标是唯一在各种知识转移任务中始终优于知识蒸馏的蒸馏目标。之前的目标只有在与KD结合时才能超过KD。对比学习是一个简单而有效的目标,具有实际意义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值