出品 | AI科技大本营(ID:rgznai100)【导语】知识蒸馏是一种模型压缩技术,它利用训练好的大网络(教师网络)去教小网络(学生网络)。较小的网络经过训练后,可有类似于大网络的性能。这样就可以在诸如手机或其他移动端设备等小型设备上部署此类模型。在今天的文章中,将为大家介绍关于几个重要的知识蒸馏的工作进展。(Distilling the Knowledge in a Neural Network | NIPS 2014)
论文地址:
https://arxiv.org/pdf/1503.02531.pdf
在本文中,作者训练了与大模型有相同泛化方式的小模型。在训练小模型的同时,使用大模型的类概率作为目标损失来传递大模型的泛化能力。如果大模型是各种简单模型的集合,则将其预测分布的几何或算术平均值作为目标损失。 在测试知识蒸馏过程中,作者使用60,000个训练样本中训练了一个带有两个隐藏层的大型神经网络,每个隐藏层有1200个神经元。使用dropout和权重正则对网络进行了正则化。输入图像在任何方向上会抖动两个像素。该网络有67个测试结果错误的样例。较小的网络有两个隐藏层,每个隐藏层有800个线性神经元,没有正则化,则有146个错误结果。当通过将软目标与大网络匹配来对小网络进行正则化时,结果是仅获得了74个错误结果。
(Contrastive Representation Distillation)
https://arxiv.org/pdf/1910.10699.pdf
https://github.com/HobbitLong/RepDistiller
这篇论文利用一系列对比目标来捕获相关性和高阶输出间的依赖关系。为了从一个神经网络到另一个神经网络的知识蒸馏,论文对其进行了适应性修改。对比学习的主要思想是在某个度量空间中,尽量靠近正对之间的表示,同时远离负对之间的表示。对比表示蒸馏(CRD)框架在以下情况中进行了测试:将大网络压缩成小网络
跨模态的知识迁移
将一组教师网络整体蒸馏到单个学生网络
该技术在CIFAR-100,ImageNet,STL-10,TinyImageNet和NYUDepth V2测试集上进行了测试。所获得的结果如下所示。三、变分学生网络:在知识蒸馏框架中学习紧凑和稀疏的网络(Variational Student: Learning Compact and Sparser Networks in Knowledge Distillation Framework)
论文地址:
https://arxiv.org/pdf/1910.12061.pdf
本文提出的方法被称为变分学生网络。它结合了知识蒸馏框架的可压缩性和变分推理(VI)技术的稀疏诱导能力。作者构建了一个稀疏的学生网络。该网络的稀疏性是通过基于VI优化损失函数而找到的变量参数引起的。它通过利用从教师网络中学到的知识来完成的。本文考虑了KD框架中的贝叶斯神经网络(BNN),学生网络采用了变量惩罚最小二乘目标函数。基于KD框架,这确保了学生网络与教师网络相比是相近的。它集成了稀疏技术,例如稀疏变量dropout(SVD)和变量贝叶斯dropout(VBD)。这使得到的稀疏学生网络的效果较好。四、通过助教提升知识提取能力:减小学生网络与老师网络之间的鸿沟(Improved Knowledge Distillation via Teacher Assistant: Bridging the Gap Between Student and Teacher,2019)
本文表明,当师生网络差距较大时,学生网络的性能会下降。本文介绍了一个助教方法——多步骤知识提炼——去弥补了学生网络和老师网络之间的鸿沟。该方法已经在CIFAR-10和CIFAR-100数据集上进行了测试。
https://arxiv.org/pdf/1902.03393.pdf本文介绍了教师助理知识蒸馏方法(TAKD),以及称为教师助理(TAs)的中间模型。TA模型是从教师网络那里提炼出来的,而学生仅从TA里蒸馏出来。下面的图2显示了随着教师规模的增加,蒸馏性能的变化。图3显示减小学生规模可提高学生网络的表现使用简单的CNN和ResNet架构对这种方法进行了评估。以下是通过不同TA大小获得的一些精度结果:
(On the Efficacy of Knowledge Distillation)
https://arxiv.org/abs/1910.01348本文主要涉及知识蒸馏技术有效地泛化学生网络训练的能力。根据作者的发现,教师网络的较高准确性不一定意味着学生网络的较高准确性。本文使用的网络体系结构有ResNet,WideResNet和DenseNet。下图显示了在CIFAR10上从不同教师网络那里蒸馏的学生网络的误差图。
该实验也在ImageNet数据集上进行了验证,其中ResNet18为学生网络,ResNet18,ResNet34,ResNet50和ResNet152为教师网络。实验证明,更大的模型并不一定是更好的教师网络。下图显示,更大的模型不能提供更好的教师网络的原因是学生网络无法模仿大型教师网络。
本文提出的解决方案是尽早停止教师网络训练,以获得更适合学生网络的解决方案。(Dynamic Kernel Distillation for Efficient Pose Estimation in Videos)https://arxiv.org/pdf/1908.09216.pdf在人体姿势估计中,会在视频的每帧上使用大型网络进行人体关节的定位。此过程通常会有大量的计算成本。本文的作者提出了一种动态核蒸馏(DKD)方法来应对这一问题。DKD通过one-shot前馈方法来增强前一帧中的时间信息,并将轻量级的蒸馏器引入在线姿态提取。DKD将人体关节的定位简化为姿势核与当前帧之间的匹配过程。DKD将姿势知识从一个框架中转移出来,并为下一帧中的人体关节定位提供指导。这使得可以在基于视频的姿势估计中使用小型网络。 通过利用时间对抗训练策略来实现训练过程。该策略引入了时间判别器,以在长时间范围内生成时间相关的姿态核和姿态估计结果。此方法已在Penn Action和Sub-JHMDB基准测试中进行了测试。这种方法的体系结构如下所示。它由一个姿态初始化器,一个帧编码器,一个姿态核蒸馏器和一个时间对抗判别器组成。DKD使用姿势初始值来估计其置信度图。帧编码器负责从位姿核蒸馏器中提取高级特征以匹配位姿内核。姿势核蒸馏器将时间信息作为输入,并以one-shot前馈的方式提取姿势内核。并使用时间对抗判别器来增强姿态核蒸馏器的学习过程,并使用置信图变化作为辅助时间监督。
使用Penn Action数据集获得的一些结果如下所示:
这是Penn Action和Sub-JHMDB数据集获得的结果的比较。七、DistilBERT,BERT的简化版本:更小,更快,更简洁,更轻巧(DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter | NeurIPS 2019)
https://arxiv.org/pdf/1910.01108.pdf本文提出了一种预训练较小的通用语言表示模型的方法,该模型称为DistilBERT(BERT的简化版本)。DistilBERT的体系结构与BERT相似。
DistilBERT使用动态掩膜方法在非常大的批次中利用梯度累积进行蒸馏,并且没有下一个句子的预测目标。它在BERT模型的原始语料库上进行了训练,并根据通用语言理解评估(General Language Understanding Evaluation, GLUE)基准上进行了评估。DistilBERT保留BERT 97%的性能,并且在速度上提高了60%。以上是最新的一些模型蒸馏方法。这些论文都已经公开了其代码实现,期待读者反馈你们跑了代码后的测试结果,看与作者是否一致。原文链接:
https://heartbeat.fritz.ai/research-guide-model-distillation-techniques-for-deep-learning-4a100801c0eb
关于知识蒸馏的工作远不止这七篇论文,为了方便大家学习与应用,给大家推荐一个Github项目:《Awesome Knowledge-Distillation》(分类整理的知识蒸馏paper | 2014-2020)。一看项目名称就知道是备受大家喜爱的”Awesome“资源系列再加一员猛将。在这份知识蒸馏资源清单中,作者为大家整理了从2014年至2020年间被收录的论文,并且对它们分门别类,共约十大方向的近二十细分类别的 175 余篇论文。 https://github.com/FLHonker/Awesome-Knowledge-Distillation(*本文为AI科技大本营编译文章,转载请微信联系1092722531)
开幕倒计时9天|2019 中国大数据技术大会(BDTC)即将震撼来袭!豪华主席阵容及百位技术专家齐聚,十余场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读。6.6 折票限时特惠(立减1400元),学生票仅 599 元!