相关论文阅读:【论文学习】Geoffrey Hinton... Distilling the knowledge in a neural network.
Abstract
我们通常希望将表征知识从一个神经网络转移到另一个神经网络。例如,将一个大的网络提炼成一个更小的网络,将知识从一种模态转移到另一种,或者将一组模型集合集成成一个单一的估计器。知识蒸馏是解决这些问题的标准方法,它使教师和学生网络的概率输出的KL之间的差异最小化。我们证明,这一目标(KL散度)忽略了教师网络的重要结构知识。这启发了另一个目标,通过这个目标,我们训练学生在教师的数据表示中获取更多的信息。我们把这个目标表述为对比学习(contrastive learning)。实验表明,我们的新目标在单模型压缩、集成蒸馏和跨模态传输等任务上优于知识蒸馏和其他前沿蒸馏器。我们的方法在许多迁移任务中设置了一种新的最先进的技术,当与知识蒸馏相结合时,有时甚至优于教师网络。
1 Introduction
知识蒸馏(KD)将知识从一个深度学习模型(教师)转移到另一个(学生)。Hinton等人(2015)最初提出的目标最小化了教师和学生输出之间的KL divergence。当输出是一个分布时,这个公式是直观的。然而,通常我们更希望转移一种关于表征的知识,.例如,在“cross-modal distillation(跨模态蒸馏)”的问题,我们可能希望转移图像处理网络的表征到声音或深度处理网络,这样图像的深度特性和相关的声音或深度特性是高度相关的。在这种情况下,KL发散是不定义的。
表征知识是结构化的——这些维度表现出复杂的相互依赖关系。以输入为条件,Hinton(2015)引入的原始KD目标将所有维度(输出的类别概率的向量)视为独立的。令是教师网络的输出,是学生网络的输出。传统的优化KL散度的目标函数.这样一个分解的目标不足以传递结构知识,即输出维度i和j之间的依赖性。这类似于图像生成中的情况,由于输出维之间的独立性假设,L2目标产生模糊的结果。
如果采用L2目标函数(即最小化预测和真实图像之间的欧几里得距离),由于它同样假设了输出(在这种情况下是图像的每个像素)之间的独立性,这往往会导致生成的图像模糊不清。这是因为这样的目标函数不能捕捉和重现像素之间的依赖关系,从而无法准确反映图像中的结构化信息。
为了克服这个问题,我们想要一个能够捕获相关性和更高阶输出依赖性的目标。为了实现这一目标,在本文中,我们利用了对比目标家族(Gutmann & Hyvärinen, 2010; Oord et al., 2018; Arora et al., 2019; Hjelm et al., 2018)。这些目标函数近年来已成功地应用于密度估计和表示学习,特别是在自监督设置中。在这里,我们使它们应用到从一个深度网络到另一个深度网络的知识提炼任务。
该图展示了三种知识蒸馏的类型:模型压缩、跨模态转移(RGB to depth)、集成蒸馏
如阴影圆圈所示,对于相同的输入,约束目标鼓励教师和学生将其映射到表征空间中相近的位置),并将不同的输入映射到同一空间中相互远离的位置。
我们的目标最大化了教师和学生表征之间的互信息(Mutual Information)的下界。我们发现,这导致在一些知识转移任务上有更好的性能。我们推测,这是因为对比目标能更好地传递教师表征中的所有信息,而不是仅仅传递输出中关于条件独立的类概率的知识。有些令人惊讶的是,对比目标甚至提高了最初提出的提取类概率知识的任务的结果,例如,将一个大型CIFAR100网络压缩成一个更小的网络。我们认为,这是因为不同类概率之间的相关性包含了调整学习过程的有用信息。我们的论文建立了两个主要独立发展的文献之间的联系:知识蒸馏和表示学习。这种联系允许我们利用来自表示学习的强大方法来显著改进知识蒸馏上的SOTA(State of the arts 的缩写,指的是在某一个领域做的Performance最好的model)。我们的贡献是:
其中,ARI的计算方法为
2 Related Work
这一节介绍了一些相关工作,我认为最重要的是Hinton当年提出的知识蒸馏的内容。其次是说明了本文使用的对比学习目标的创新性。.我们在本文中使用的对比目标与CMC中使用的对比目标相同(Tian et al.,2019)。但我们从不同的角度,给出了一个严格的证明,我们的目标是互信息的下界。
3 Method
对比学习的关键思想:学习一种表征,使得在“positive”对中两者的表征向量在表征空间中接近,在“nagetive”对中,两者的表征向量远离。文章老是提到hinton的那篇的KD目标是有原因的,从KL散度的公式和互信息的公式来看,两者之间有联系。变量x与y的互信息与它俩的联合分布与边际分布乘积关联性很强,互信息越大,两个分布就越不相似,KL散度就越大。具体的公式之后再补,先挖个坑。
3.1 Contrastive Loss
给定两个深度神经网络,分别为教师网络和学生网络。令为网络的输入;把神经网络倒数第二层(logits层的上一层)输出来的向量称为和。令表示一个训练样本,表示另一个随机选取的样本。我们的目标是拉近和,推远和。为了便于表示,我们分别为学生和教师的数据表示定义了随机变量和:
下面就证明:最大化联合分布,边际分布之间的KL散度,我们就可以最大化学生表征和教师表征之间的互信息。
- KL散度:即相对熵,衡量同一个随机变量的两个分布和之间的差异。
- 互信息:
定义关于潜在变量的分布,表示元组来自联合分布(同一输入),表示元组来自边际分布的乘积。
在我们的输入中,假定给1对“一致对”(相同输入在和中的输出)和N对“不一致对”(不同输入在和中的输出),容易得到:
通过贝叶斯规则,可以推导出的后验概率为:
观察到后验概率与互信息的联系如下(取倒数后再取log):
最后一项恰巧为互信息的表达式。重排后,不等号两侧分别对取期望,可以得到互信息的下界MI bound:
是教师和学生嵌入式分布的互信息。证明了通过优化学生网络的参数来最大化一个特定对数期望函数,可以提高教师网络和学生网络之间互信息的最低估计值。但问题是,不知道的真实分布。解决方案:通过拟合一个模型来估计分布。为了拟合该模型,用了来自两个条件概率分布和。在这个模型下,我们最大化了数据的对数似然值,来训练:
将称为critic。这个命名反映了它的角色:评估并给出一个分数,这个分数将用来衡量学习到的表征的质量。这意味着学习过程的目标是找到能够最大化这个critic给出的评分的表示(在后面的证明体现出来)。假设该模型的最优形式具有足够的表达力能够精确地模拟或估计给定教师网络和学生网络情况下的真实条件概率分布。(这是理想状态,表明在理论上,如果模型足够强大,能够完美地捕获这个条件概率分布,通过Gibbs' inequality来证明)那么可以重写等式(9):
因此,我们可以看到最优critic是一个期望下界互信息的估计量。我们希望学习一个学生模型,最大化其表征和教师模型表征之间的互信息,提出以下优化问题:
这里的一个明显的困难是,取决于当前的学生。我们可以通过削弱(12)中的界限限制得到(在右侧加入一个严格负的值::
最后一行利用了极大似然估计的性质,将互信息的下界转化成极大似然函数。最终的学习任务为(参数包括学生模型中的参数和模型中的参数):
这表明我们在学习的同时优化。对于任何一个h,也是一个优化互信息的下界(一个较弱的表示)的表示,因此我们的公式并不依赖于h的完美优化。
在本文中模型的函数形式选择如下:
M是数据集的容量,是蒸馏温度。在实际应用中,和的维度可能不同,函数和将它们映射到相同维度,并在内积前用L-2范数进行归一化。等式(18)的灵感来自NCE (Gutmann & Hyvärinen, 2010; Wu et al., 2018).
- L-2范数(也称为欧几里得范数):是向量的元素平方和的平方根。归一化意味着将向量的长度缩放到1,这样做可以确保不同向量之间的比较不会因为它们的绝对大小而产生偏差,而是集中于它们的方向或者在向量空间中的相对位置。
- 计算内积:在维度转换和归一化之后,计算这两个向量的内积。内积(或点积)是衡量两个向量相似度的一种方式,它可以反映出两个向量在方向上的相似程度。
//下面是其他的目标函数
3.2 Knowledge Distillation Objective
要求学生网络的最后输出与教师网络的输出尽可能相似。目标函数如下:
3.3 Cross-Modal Transder Loss
在跨模态转移的任务中,采用等式(10)作为对比损失函数。此外,也考虑了其他目标函数,包括前面提到的KD损失,还有注意力转移等。该任务在成对但是未标记的数据集上训练,.在这种情况下,对于关于源模态的原始训练任务,这些数据没有真正的标签y,因此我们忽略了我们测试的所有目标中的项。先前的跨模态工作大多采用L2回归或KL散度。
3.4 Ensemble Distillation Loss
在集成蒸馏中,有M>1个教师网络和1个学生网络。我们采用对比框架,定义每个教师网络和学生网络的特征之间的多个成对对比损失。这些损失加在一起,得到最终损失(最小化):
4 Experiments
我们在三个知识蒸馏任务中评估了我们的对比表示蒸馏(CRD)框架。
数据集:(1) CIFAR-100;(2) ImageNet;(3) STL-10 ;((4) TinyImageNet;(5) NYU-Depth V2
Table1和Table2都表明CRD是唯一总是优于KD的方法(而且也优于所有其他方法)。
4.1 Model Compression
我们在CIFAR-100和ImageNet上使用各种容量的学生-教师组合进行实验,如ResNet(He等人,2016)或宽ResNet(WRN)(扎戈鲁伊科和科莫达基斯,2016b)。Table1是在架构相同的教师和学生网络上进行试验的结果,Table2是在架构不同的教师和学生网络上进行实验的结果。我们发现使用我们的损失函数(CRD,对比表示蒸馏损失)的模型,始终优于其他目标函数构建的蒸馏模型,包括KD(平均相对提升57%)。我们还发现KD目标函数本身表现得相当好,其他方法都不能始终优于KD方法。另一个发现,当把教师网络和学生网络的架构从相同变换为不同时,提取中间层表征的方法往往比从最后几层提取的表现差。例如,AT和FitNet方法甚至比朴素学生模型(无蒸馏)还要差。相反,在最后几个层上提取表征的PKT,SP和CRD表现得比较好。这可能是因为,不同架构风格的模型可能有着各自的从输入到输出的解决方案路径,强制模仿中间表征可能会与路径偏差相冲突。
捕获类间的相关性
在图2中,我们计算教师和学生对数相关矩阵的差值;对于三种不同的学生模型:用AT. KD和CRD训练的无蒸馏学生模型。明显发现,CRD目标函数捕获了logit中最相关的结构,者通过教师和学生之间更小的差异来展现。这种更紧密的匹配反映在降低的错误率上。简而言之,使用CRD目标的蒸馏方法使学生网络能更好地模仿教师网络的行为,从而提高了学生网络的性能。
Results on ImageNet
补充说明:
-
Top-1 Accuracy:指的是模型预测的最高概率(即置信度最高)的类别正好是正确类别的比例。简单来说,就是模型预测最可能的那个类别与真实类别一致的频率。这是最直接的分类准确率衡量方式。
-
Top-5 Accuracy:在多类别的分类任务中,特别是当类别数目非常多的情况下,Top-5 Accuracy 成为一个有用的衡量标准。它指的是如果模型预测的概率最高的前五个类别中包含了正确的类别,那么这次预测就被认为是正确的。Top-5 Accuracy 通常用于那些类别非常多,且分类难度较高的任务中,比如图像识别
表征的可转移性
我们对表征感兴趣,表征学习最基本的一个目标是获取一般性的知识,即看不到的在训练过程中转移到任务或数据集上的知识。因此,我们测试我们蒸馏得到的知识的转移效果。训练框架为WRN-6-2的学生模型,通过从WRN-40-2的教师模型或者在CIFAR100的训练集上直接训练。学生网络在蒸馏后,作为一个“冻结的表征提取器”使用,特别是使用它的最后一层(logit的上一层)来提取STL-10或TinyImageNet数据集上的图像表征(这意味着学生网络不再更新,而是用来聘雇在新任务上的泛化能力或表征的转移能力)。然后,我们训练一个线性分类器进行分类,在STL-10数据集上,该分类器的任务是从10个类别中选择正确的,在TinyImageNet是数据集上,要从200个类别中选择正确的,以此来量化学生网络学习到的表征在不同任务上的转移能力(如果这些表示在新的、未见过的数据集如STL-10或TinyImageNet上使得线性分类器能够达到较高的准确率,这表明这些表示具有较好的泛化和转移能力,即它们捕捉到了足够通用的特征,这些特征不仅对原始任务CIFAR100上的训练有效,也对新任务有效)。在Table4中,我们比较了CRD和更多基本目标函数如KD、AT的学生模型的准确率。在这种情况下,除FitNet外的所有蒸馏方法都提高了在STL-10和TinyImageNet上的学习表示的可转移性。虽然教师在原始的CIFAR100数据集上表现最好,但它的表示法将最差的表现转移到其他两个数据集上。这可能是老师的表现偏向于最初的任务。令人惊讶的是,使用CRD+KD蒸馏的学生不仅在CIFAR100上与老师匹配(见Table4),而且比老师好得多,例如在STL-10上提高了3.6%,TinyImageNet上提高了4.1%。
4.2 Cross-Modal Transfer
我们考虑了一个实际的背景:模态有大量标记然而模态没有。将知识在这两个模态间传递是普遍的挑战。例如,大规模的RGB数据集很容易获取,但是其他模态比如说深度图像很难大规模地标记,但是具有广泛的应用。我们在两种情况下证明看CRD在跨模态传输方面的潜力:(a)从亮度转移到色度;(b)从RGB转移到深度图像。
从亮度转移到色度
L表示亮度,ab表示色度。我们首先在TinyImageNet上用有监督学习训练亮度网络。然后,我们用不同的目标函数,在未标记的训练集STL-10上训练,将知识从亮度网络转移到色度网络。.为了方便起见,我们对学生和教师使用相同的架构(它们也可以是不同的)。最后,我们通过两种方法来评估色度网络的知识:(1)linear probing:我们冻结ab网络,并在不同层的特征上训练一个线性分类器,对STL-10 ab图像进行10分类。(2)fully finetuning:对ab网络进行完全微调,获取最优准确度。我们还使用随机初始化而不是蒸馏的ab网络作为baseline。图3所示的结果表明,CRD在传输跨模态知识方面比其他方法更有效。此外,我们还注意到KD+AT并没有改善KD,这可能是因为对亮度和色度的attention不同,而且更难转移。
从RGB到深度图像
我们将一个在ImageNet上预先训练过的ResNet-18教师的知识转移到一个在深度图像上操作的5层学生CNN上。我们在NYU-Depth训练集上遵循类似的转移程序,此外我们使用Hjelm等人(2018)提出的对比局部特征和全局特征的技巧,以克服深度域数据样本不足的问题。然后,进一步训练学生网络去预测深度图像上的语义分割标签。我们注意到,知识转移和下游训练都是在同一组图像上进行的,表明训练集没有用额外的数据进行学生网络的训练。实验结果(Table5)显示,所有的蒸馏方法都能从RGB的ResNet教师模型成功转移知识到处理深度图像的CNN学生模型。其中,FitNet的表现超过了传统的知识蒸馏(KD)方法和结合了注意力转移(AT)的KD方法。CRD(对比表示蒸馏)方法在所有比较的方法中表现最佳,根据平均像素预测准确率和所有类别的平均交并比(mean Intersection-over-Union)来看,CRD显著优于其他所有方法。
4.3 Distillation from an Ensemble
我们研究了基于KL散度和CRD的任务,使用损失函数(21)。每个老师和学生的网络结构是相同的,但是多个教师的集合仍然能为学生提供丰富的知识。在CIFAR100数据集上比较KD和CRD的效果,我们使用WRN-16-2和ResNet-20,它们的单模型错误率分别为26.7%和30.9%。蒸馏的结果如图4所示,其中改变了教师模型的数量。CRD的工作始终优于KD。
4.4 Ablative Study
InfoNCE v.s. CRD.
InfoNCE,另一种对比目标,它通过softmax函数从一组干扰物中选择一个正的目标输出(对比学习的内容)。当使用相同数量的nagetive样本时,我们将该目标函数的训练结果与我们的进行对照。结果如Table6所示。
Negative Sampling.
给出锚定的后,考虑两个负样本策略:(1)对于没有标签的无监督学习,选择负样本;(2)对于有监督学习,选择负样本。
4.5 Hyper-parameters and Computation Overhead
在我们的对比目标函数中,主要的两个超参数:(1)负样本数量;(2)温度。我们采用WRN-40-2作为教师,采用WRN-16-2作为学生进行参数分析。在CIFAR100上进行了实验,结果如图5所示。
计算成本,我们使用RmageNet上的ResNet-18进行说明。CRD使用了额外的260MFLOPs,这大约是最初的2个GFLOPs的12%。
5 Conclusion
我们开发了一种新的神经网络蒸馏技术,使用对比目标的概念,这通常用于表示学习。我们在许多应用程序上试验了我们的目标,如模型压缩、交叉模态传输和集成蒸馏,在所有这些任务中都显著优于其他蒸馏目标。我们的对比目标是唯一一个在各种知识转移任务中始终优于知识蒸馏的蒸馏目标。先前的目标在与KD结合时只超过了KD。对比学习是一种简单而有效的目标,具有实际效益。