本文主要是介绍用了这个方法,两周没变过的模型精度居然提升了(附资源),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
作者 | Derrick Mwiti
译者 | 刘畅
编辑 | Jane
出品 | 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
这篇论文利用一系列对比目标来捕获相关性和高阶输出间的依赖关系。为了从一个神经网络到另一个神经网络的知识蒸馏,论文对其进行了适应性修改。
如下图所示,这篇论文考虑了以下三个蒸馏阶段:
-
模型压缩
-
将知识从一种方式(例如RGB)迁移到另一种方式(例如深度)
-
将一组网络蒸馏成单一的网络
对比学习的主要思想是在某个度量空间中,尽量靠近正对之间的表示,同时远离负对之间的表示。
对比表示蒸馏(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相似。
与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 余篇论文。
喜欢也可以给作者点个 Star 支持一下!
马上传送地址:
https://github.com/FLHonker/Awesome-Knowledge-Distillation
(*本文为AI科技大本营编译文章,转载请微信联系1092722531)
精彩推荐
开幕倒计时9天|2019 中国大数据技术大会(BDTC)即将震撼来袭!豪华主席阵容及百位技术专家齐聚,十余场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读。6.6 折票限时特惠(立减1400元),学生票仅 599 元!
推荐阅读
-
通俗易懂:8大步骤图解注意力机制
-
神龙飞天,国士王坚
-
迁移学习与图神经网络“合力”模型:用DoT-GNN克服组重识别难题
-
15篇论文全面概览BERT压缩方法
-
2097352GB地图数据,AI技术酷炫渲染,《微软飞行模拟器》游戏即将上线
-
用Go重构C语言系统,这个抗住春晚红包的百度转发引擎承接了万亿流量
-
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
-
华为电脑终于又能搭载正版 Windows 系统了!
-
网易患病员工被保安赶出公司,程序员该如何应对中年危机?
-
看完这篇还不了解Nginx,那我就哭了!
这篇关于用了这个方法,两周没变过的模型精度居然提升了(附资源)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!