Abstract
模型蒸馏是一种有效的、广泛应用的将知识从教师转移到学生网络的技术。典型的应用程序是从一个强大的大型网络或集成转移到一个小型网络,这更适合于低内存或快速执行的需求。在本文中,我们提出了一种深度相互学习(DML)策略,而不是在静态预定义的教师和学生之间的一种方式转移,一群学生在整个培训过程中协作学习和相互教学。我们的实验表明,多种网络架构受益于相互学习,并在CIFAR-100识别和市场-1501人重新识别基准上取得了引人注目的结果。令人惊讶的是,没有人需要事先建立强大的教师网络——相互学习一个简单的学生网络是有效的,而且优于一个更强大但静态的教师的蒸馏。
1 Introduction
深度神经网络在许多问题上都实现了最先进的性能,但通常的深度或宽度都非常大,并且包含大量的参数[6,25]。这样做的缺点是,它们的执行可能会很缓慢,或者需要存储大内存,这限制了它们在具有低内存或快速执行要求的应用程序或平台上的使用。这导致了一个更小更快的模型研究的快速增长领域。实现紧凑而精确的模型已经通过多种方式实现,包括显式的节约架构设计[8]、模型压缩[20]、剪枝[13]、二值化[18]和最有趣的模型蒸馏[7]。
基于蒸馏的模型压缩与观察到的[3,2]有关,即小型网络通常具有与大型网络相同的表示能力;但与大型网络相比,它们只是更难训练和找到正确的参数来实现所需的功能。也就是说,限制似乎在于优化的难度,而不是网络大小[2]。为了更好地学习一个小的网络,蒸馏方法从一个强大的(深度和/或宽的)教师网络(或网络集成)开始,然后训练一个较小的学生网络来模拟教师[7,2,16,3]。模拟教师的班级概率[7]和/或特征表示[2,19]传递了超出传统监督学习目标的额外信息。学习模仿老师的优化问题比直接学习目标函数更容易,小得多的学生可以匹配甚至超过大的老师[19]。
在本文中,我们探讨了一个不同但相关的模型蒸馏思想——相互学习。蒸馏从一个强大的大型的和预先训练过的教师网络开始,并向一个未经训练的小学生进行单向的知识转移。相比之下,在相互学习中,我们从一群未经训练的学生开始,他们同时学习一起解决任务。具体来说,每个学生都接受了两种损失的训练:一种是传统的监督学习损失,另一种是将每个学生的班级后验概率与其他学生的班级概率相结合的模仿损失。 它就是这样受过训练的结果表明,在这种基于同伴教学的场景中,每个学生的学习能力比在传统的监督学习场景中单独学习要好得多。此外,以这种方式训练的学生网络比通过一个更大的预先训练的教师的传统蒸馏训练的学生获得更好的效果。此外,虽然传统的蒸馏理解需要一个教师比预期的学生更大、更强大,但事实证明,在许多情况下,与独立学习相比,多个大型网络的相互学习也能提高性能。
拟议的程序为什么要起作用,这也许根本不明显。当学习过程开始于所有小的、未经训练的学生网络时,额外的知识从何而来?为什么它会收敛到一个好的解决方案,而不是被“盲人引导盲人”的群体思维所束缚。关于这些问题的一些直觉可以通过考虑以下问题来获得:每个学生主要受到传统的监督学习损失的指导,这意味着他们的表现通常会提高,他们不能任意地作为一个群体进入群体思维。在监督学习中,所有的网络很快就会为每个训练实例预测出相同的(真实的)标签;但由于每个网络都来自于一个不同的初始条件,它们对下一个最有可能的类的概率的估计是不同的。正是这些次要的量在蒸馏[7]和相互学习中提供了额外的信息。在相互学习中,学生群体有效地汇集了他们对下一个最有可能的班级的集体估计。根据每个训练实例,发现每个训练实例的其他最可能的类并进行匹配,会增加每个学生的后验熵[4,17],这有助于他们收敛到一个更鲁棒(更平坦)的最小值,并更好地推广到测试数据。这与最近在深度学习[4,17]中关于高后验熵解(网络参数设置)的鲁棒性的工作有关,但有一个比盲熵正则化更明智的替代选择。
总的来说,相互学习提供了一种简单而有效的方法,通过与其他网络队列的协作训练来提高网络的泛化能力。与预先训练的静态大网络的蒸馏相比,小同伴的协作学习甚至取得了更好的性能。此外,我们观察到: (i)效能随着队列中网络数量的增加而增加(通过仅在小网络上训练,更多的网络可以适合一个GPU进行有效的相互学习);(ii)它适用于各种网络结构和由大小网络混合组成的异构队列;(iii)即使是在队列中相互训练的大型网络也能比独立训练提高性能。最后,我们注意到,虽然我们的重点是获得一个单一的有效网络,但整个队列也可以作为一个高效的集成模型
2 Deep Mutual Learning
2.1 Formulation
我们用两个网络的队列来制定了所提出的DML方法(见图1)。扩展到更多的网络是很简单的。2.3).给定来自M个类的N个样本X = {xi} N i=1,我们用yi∈{1,2,…,M}将相应的标签集表示为Y = {yi} N i=1。由神经网络Θ1给出的样本xi的m类的概率计算为
其中logit z m是Θ1中“软tmax”层的输出.
对于多类分类,训练网络Θ1的目标函数定义为预测值与正确标签之间的交叉熵误差,
,我将一个指示器函数定义为
传统的监督损失训练网络来预测训练实例的正确标签。为了提高Θ1在测试实例上的泛化性能,我们使用另一个对等网络Θ2,以其后验概率p2的形式提供训练经验。为了测量两个网络的预测p1和p2的匹配性,我们采用了库背Leibler(KL)散度。
从p1到p2的KL距离计算为
网络Θ1的总体损失函数LΘ1被定义为
同样,网络Θ2的目标损失函数LΘ2也可以计算为
通过这种方式,每个网络既学习正确预测训练实例的真实标签(监督损失LC),也学习匹配其对等点的概率估计(KL模拟损失)。
2.2 Optimisation
相互学习策略在每个基于小批的模型更新步骤和整个训练过程中执行。在每次迭代中,我们计算两个模型的预测,并根据另一个模型的预测更新两个网络的参数。Θ1和Θ2的优化是迭代进行,直到收敛。算法1总结了优化细节。
2.3 Extension to Larger Student Cohorts
所提出的DML方法自然地扩展到学生队列中更多的网络。给定K个网络Θ1,Θ2,…,ΘK(K≥2),优化Θk的目标函数,(1≤k≤K)变为
式(8)表明,对于K个网络,每个学生的DML有效地将队列中的其他K−1网络作为K−1教师来提供学习经验。方程(4)是(8)与K = 2的特情况。请注意,我们已经添加了系数K1−1,以确保训练主要是由对真实标签的监督学习来指导的。对具有两个以上网络的DML进行优化是算法1的一个直接扩展。它可以通过在一个设备上学习每个网络,并在设备之间传递小的概率向量来分布。
有两个以上的网络,一个有趣的替代学习策略是把所有其他K−1网络作为一个老师提供平均学习经验,这将非常类似于蒸馏方法但在每个小批量模型更新。那么Θk的目标函数可以写成
在我们的实验中(见第二节。3.6),我们发现,单一集成教师或DML_e的DML策略比K−1教师的DML表现更差。这是因为建立教师集合的模型平均步长(公式(9))使教师的后验概率在真实的课堂上达到峰值,从而减少了所有班级的后验熵。因此,这与DML的目标之一是相矛盾的,即产生具有高后验熵的鲁棒解。
3 Experiments
3.1 Datasets and Settings
在我们的实验中使用了两个数据集。CIFAR-100 [11]数据集由来自100个类别的32张×32张彩色图像组成,它们被分为50000张训练图像和10000张测试图像。报告了前1个分类精度。Market-1501 [27]数据集被广泛用于人的再识别问题,旨在将不同的不重叠的人关联起来相机视图。它包含了32,668张图像,其中1501个身份来自6个摄像头的视角,其中751个身份用于训练,750个身份用于测试。根据解决这个问题[28]的最新方法,我们对网络进行751路分类训练,并使用最后一个池化层的结果特征作为测试时最近邻匹配的表示。这是一个比CIFAR-100更具挑战性的数据集,因为该任务是实例识别,因此更细粒度,而且数据集更小,带有更多的类。对于评估,使用了标准的累积匹配特征(CMC)秩k精度和平均平均精度(mAP)指标[27]。
Implementation Details我们在张量流[1]中实现了所有的网络和训练程序,并在一个NVIDIA GeForce GTX 1080 GPU上进行了所有的实验。对于CIFAR-100,我们遵循[25]的实验设置。具体来说,我们使用带有Nesterov动量的SGD,并将初始学习率设置为0.1,动量设置为0.9,小批量大小设置为64。学习率每60个时代下降0.1次,我们训练了200个时代。数据增强包括水平翻转和从每边填充4个像素的图像中随机裁剪,用原始图像的反射填充缺失的像素。对于市场-1501,我们使用Adam优化器[10],学习率lr = 0.0002,β1 = 0.5,β2 = 0.999,小批量大小为16。我们对所有的模型进行了10万次迭代的训练。我们还报告了在ImageNet上有和没有预先训练的结果。
Model Size在我们的实验中使用的网络包括典型学生规模的紧凑网络: Resnet-32 [6]和MobileNet [8];以及典型教师规模的大型网络:控制V1[21]和宽ResNet WRN-28-10 [25]。表1比较了CIFAR-100上所有网络的参数数。
3.6 How and Why does DML Work?
在本节中,我们试图给出一些关于我们的深度相互学习策略是如何以及为什么会起作用的见解。最近有一波研究的主题“为什么深网推广”[4,26,9],提供了一些见解如:虽然通常有许多解决方案(深网络参数设置)产生零训练误差,其中一些概括比其他人由于在宽山谷而不是狭窄的缝隙[4,9]——小扰动不会彻底改变预测功效;而且深度网络在找到这些好的解决方案[26]方面比预期的要好,但是通过使深度网偏向于具有更高的后向熵[4,17]的解决方案,可以增强找到鲁棒最小值的趋势。
更好的质量的解决方案和更健壮的最小值 考虑到这些见解,我们对DML过程进行了一些观察。首先,我们注意到,在我们的应用程序中,网络与训练数据的拟合非常完美:训练精度达到100%,分类损失达到最小值(图3(a))。然而,正如我们之前所看到的,DML在测试数据上表现得更好。因此,DML似乎不是帮助我们找到一个更好(更深层次)的训练损失最小值,而是帮助我们找到一个更广泛/更鲁棒的最小值,从而更好地概括测试数据。受[4,9]的启发,我们使用MobileNet进行了一个简单的测试来分析在市场-1501上发现的最小值的鲁棒性。对于DML模型和独立模型,我们比较了在每个模型参数中加入具有变量标准差σ的独立高斯噪声前后学习模型的训练损失。我们看到两个最小值的深度是相同的(图3(a)),但在添加这个扰动后,独立模型的训练损失会上升,而DML模型的损失增加得要小得多。这表明DML模型找到了一个更广泛的最小值,这有望提供更好的泛化性能[4,17]。
How a Better Minima is Found DML如何帮助找到这样一个更好的最小值?当要求每个网络匹配其对等网络的概率估计时,给定网络预测零而老师/对等网络预测非零的不匹配会受到严重惩罚。因此DML的整体效果是,每个网络独立会把一个小质量一小的二级概率,所有网络DML倾向于聚合他们的预测二级概率,和(我)把更多的质量二级概率,和(2)非零质量更不同的二级概率。我们通过比较图3©.中训练的ResNet-32对CIFAR-100与独立训练的ResNet-32模型获得的排名前5位的类的概率来说明这种效应对于每个训练样本,根据模型产生的后验概率对前5个类进行排序(第1类是真实的类第二类2是第二个最可能的类,以此类推)。在这里我们可以看到,在独立学习中,质量分配到前1以下的概率比DML学习要快得多。这可以通过DML训练模型和独立训练模型的所有训练样本的熵值平均值分别为1.7099和0.2602来量化。因此,我们的方法与基于熵正则化的方法[4,17]有联系,以寻找宽极小值,但通过“合理”选择的相互概率匹配,而不是盲目的高熵偏好。
DML with Ensemble Teacher 在我们的DML策略中,每个学生都由队列中的所有其他学生单独教授,无论队列中有多少学生(Eq。 (10)).在第二节中。2.3,讨论了另一种DML策略,即要求每个学生匹配队列中所有其他学生的整体预测(Eq。 (11)).人们可能有理由认为这种方法会更好。由于集成预测比个体预测更好,它应该提供一个更清晰、更强的教学信号——更像传统的蒸馏。在实践中,整体教学的效果比同伴教学的效果更差(见图4 (a))。通过分析集成的教学信号,与同伴教学相比,集成目标在真实标签上的峰值比同伴目标要尖锐得多,导致DML的预测熵值大于DML_e(见图4 (b))。因此,虽然集成的噪声平均特性可以有效地做出正确的预测,但它实际上不利于提供一个教学信号,其中二级类概率是信号中的显著线索,高熵后向导致模型训练的更鲁棒解决方案。
4 Conclusion
我们提出了一种简单而普遍适用的方法来提高深度神经网络的性能,通过训练他们在一个与同行的队列和相互蒸馏。通过这种方法,我们可以获得紧凑的网络,比那些从静态教师中提取的网络表现更好。DML的一个应用是获得紧凑/快速和有效的网络。我们还表明,这种方法也有希望提高大型强大网络的性能,并且以这种方式训练的网络队列可以作为一个集成来进一步提高性能。