资源行业动态用于深度学习的模型蒸馏技术

用于深度学习的模型蒸馏技术

2019-12-19 | |  189 |   0

原标题:用于深度学习的模型蒸馏技术

来源:AI 研习社     链接:https://www.yanxishe.com/TextTranslation/2265


【导语】知识蒸馏是一种模型压缩技术,它利用训练好的大网络(Teacher网络)去训练小网络(Student网络)。小的网络经过训练后,可有类似于大网络的性能。这样就可以在手机或其他移动端设备等小型设备上部署此类模型。在今天的文章中,将为大家介绍几个关于知识蒸馏的重要工作进展。


神经网络的知识蒸馏(Distilling the Knowledge in a Neural Network | NIPS 2014)

在本文中,作者训练了一个与大模型有相同泛化方式的小模型。在训练小模型的同时,使用大模型的分类概率作为标签来迁移大模型的泛化能力。如果大模型是多个简单模型的集合,则将其预测分布的几何或算术平均值作为目标标签。 


论文:Distilling the Knowledge in a Neural Network  


在测试知识蒸馏过程中,作者使用60,000个训练样本,训练了一个带有两个隐藏层的大型神经网络,每个隐藏层有1200个神经元,并且使用dropout和权重约束对网络进行了正则化。输入图像在任何方向上会抖动两个像素。该网络在测试集上有67个结果错误。较小的网络有两个隐藏层,每个隐藏层有800个线性神经元,并且没有使用正则化,在测试集上则有146个结果错误。当通过将软标注与大网络联合起来对小网络进行正则化时,结果错误数降低到了74个。


当该技术用于语音识别时,结果如下:

1576740625735888.png

对比表征蒸馏(Contrastive Representation Distillation | 2019)


这篇论文利用一系列对比目标来捕获相关性和高阶输出间的依赖关系。为了将一个神经网络蒸馏到另一个网络,论文对其进行了适应性调整。


论文:Contrastive Representation Distillation

如下图所示,这篇论文考虑了以下三个蒸馏阶段:

● 模型压缩

● 将知识从一种方式(例如RGB)迁移到另一种方式(例如深度)

● 将一组网络蒸馏成单一的网络


对比学习的主要思想是在某个度量空间中,尽量靠近正例对之间的表示,同时远离负例对之间的表示。

1576740737583329.png


● 将大网络压缩成小网络

● 跨模态的知识迁移

● 将一组Teacher网络整体蒸馏到单个Student网络


该技术在CIFAR-100,ImageNet,STL-10,TinyImageNet和NYUDepth V2测试集上进行了测试。所获得的结果如下所示。

03.png

变分学生网络:在知识蒸馏框架中学习紧凑和稀疏的网络(Variational Student: Learning Compact and Sparser Networks in Knowledge Distillation Framework | 2019)


本文提出的方法被称为变分学生网络(Variational Student)。它结合了知识蒸馏框架的可压缩性和变分推理(VI)技术的稀疏诱导能力。作者构建了一个稀疏的Student网络。该网络的稀疏性是通过基于VI优化损失函数而找到的变量参数带来的,实现中,是从Teacher网络中学到的。


论文:Variational Student: Learning Compact and Sparser Networks in Knowledge Distillation Framework


本文考虑了KD框架中的贝叶斯神经网络(BNN),Student网络采用了变量惩罚最小二乘目标函数。基于KD框架,这确保了Student网络与Teacher师网络是相近的。它同时集成了稀疏变量dropout(SVD)和变分贝叶斯dropout(VBD)等稀疏技术,使得最终学生网络的稀疏效果较好。

1576740883593768.png


用这种方法获得的一些结果如下所示。

1576740927215923.png


通过辅助网络提升知识提取能力:减小 Student网络与Teacher网络之间的鸿沟(Improved Knowledge Distillation via Teacher Assistant: Bridging the Gap Between Student and Teacher | 2019)


本文表明,当师生网络差距较大时,Student网络的性能会下降。本文介绍了一个助教方法——多步骤知识提取——去弥补了Student网络和Teacher网络之间的鸿沟。该方法已经在CIFAR-10和CIFAR-100数据集上进行了测试。


论文:Improved Knowledge Distillation via Teacher Assistant: Bridging the Gap Between Student and Teacher


本文介绍了辅助网络知识蒸馏方法(TAKD),以及称为辅助Teacher(TAs)的中间模型。TA模型是从Teacher网络那里提炼出来的,而Student仅从TA里蒸馏出来。

06.png

下面的图2显示了随着Teacher网络规模的增加,蒸馏性能的变化。图3显示减小Student网络规模可提高 Student网络的表现。

1576741298858677.png

使用简单的CNN和ResNet架构对这种方法进行了评估。以下是通过不同TA大小获得的一些结果:

08.png

论知识蒸馏的功效(On the Efficacy of Knowledge Distillation)


本文主要介绍知识蒸馏技术如何有效地训练泛化Student网络的能力。根据作者的发现,准确率更高的Teacher网络并不意味着Student网络准确率更高。本文使用的网络体系结构有ResNet,WideResNet和DenseNet。


论文:On the Efficacy of Knowledge Distillation

09.png

下图显示了在CIFAR10上从不同Teacher网络那里蒸馏的Student网络的误差图。

1576741623150819.png


该实验也在ImageNet数据集上进行了验证,其中ResNet18为学生网络,ResNet18,ResNet34,ResNet50和ResNet152为教师网络。实验证明,更大的模型并不一定是更好的Teacher网络。

11.png

 

下图显示,更大的模型不一定是更好的Teacher网络的原因,是Student网络无法模拟出大型Teacher网络。

12.png

本文提出的解决方案是尽早停止Teacher网络训练,以获得更适合Student网络的解决方案。


一种有效估计视频中人体姿态的动态核蒸馏方法(Dynamic Kernel Distillation for Efficient Pose Estimation in Videos)


在人体姿态估计中,会在视频的每一帧上应用大型网络进行人体关节的定位。这个过程通常会有大量的计算。本文作者提出了一种动态核蒸馏(Dynamic Kernel Distillation,DKD)方法来解决这一问题。


DKD通过one-shot前馈方法来增强前一帧中的时间信息,并将轻量级的蒸馏器引入到在线姿态提取。DKD将人体关节的定位简化为人体姿势核与当前帧之间的匹配。DKD将姿势知识从一个框架中传递出来,并为下一帧中的人体关节定位提供指导。这样便可以在基于视频的姿态估计中使用小型网络。 


论文:Dynamic Kernel Distillation for Efficient Pose Estimation in Videos

13.png


训练过程可以通过基于时序的对抗训练策略来实现。该策略引入了时间判别器,以在长时间范围内生成时间相关的姿态核和姿态估计结果。此方法已在Penn Action和Sub-JHMDB基准测试中进行了测试。


这种方法的体系结构如下所示。它由一个姿态初始化器,一个帧编码器,一个姿态核蒸馏器和一个时间对抗判别器组成。DKD使用姿态初始值来估计其置信度图,帧编码器负责从姿态核蒸馏器中提取高级特征以匹配姿态内核。姿态核蒸馏器将时间信息作为输入,并以one-shot前馈的方式提取姿态内核。并使用时间对抗判别器来增强姿态核蒸馏器的学习过程,并使用置信图变化作为辅助时间监督。

1576741806950908.png


使用Penn Action数据集获得的一些结果如下所示:

15.png

这是Penn Action和Sub-JHMDB数据集结果的比较。

1576741940850723.png

DistilBERT,简化版BERT:更小,更快,更简洁,更轻巧(DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter | NeurIPS 2019)

本文提出了一种预训练较小的通用语言表示模型的方法,该模型称为DistilBERT(简化版BERT)。DistilBERT的体系结构与BERT相似。


论文:DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter


与BERT相比,此方法的性能如下所示。

1576741990433991.png


DistilBERT在没有下一个句子的预测目标时,使用动态掩码方法在大批次中利用梯度累积进行蒸馏。它在BERT模型的原始语料库上进行训练,并根据通用语言理解评估(General Language Understanding Evaluation, GLUE)基准进行评估。DistilBERT保留了BERT97%的性能,在速度上提高了60%。


总结:以上是一些最新的模型蒸馏方法。这些论文都已经公开了其代码实现,期待读者反馈你们跑了代码后的测试结果,看与作者是否一致。

----------------------------------------------------------------------------------------

发起:唐里 校对:唐里 审核:鸢尾

参与翻译(1人):敬爱的勇哥

英文原文:Research Guide: Model Distillation Techniques for Deep Learning

THE END

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:Google 地图如何采用深度学习预测公交延迟?

下一篇:16 年 Uber 自驾车撞死行人事件调查报告披露

用户评价
全部评价

热门资源

  • 国内人才报告:机...

    近日,BOSS 直聘职业科学实验室 &BOSS 直聘研究院...

  • AI使物联网更智能...

    看到微软对物联网和人工智能的结合感兴趣是一个明...

  • 推荐一批学习自然...

    这里推荐一批学习自然语言处理相关的书籍,当然,...

  • 安防智能化大势下...

    大部分传统安防设备不仅拍摄视野有限,而且无法事...

  • 20亿创业基金、10...

    近日,杭州举办了建设国家新一代人工智能创新发展...