认识深度学习中的知识蒸馏.pdfVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

一分钟带你认识深度学习中的知识蒸馏

【摘要】知识蒸馏(knowledgedistillation)是模型压缩的一种常用的方法,不同于模

型压缩中的剪枝和量化,知识蒸馏是通过构建一个轻量化的小模型,利用性能更好的大模型

的监督信息,来训练这个小模型,以期达到更好的性能和精度。本文将深入浅出的介绍知识

蒸馏的概念和原理,最后通过一个实际的上手案例,来指导用户使用知识蒸馏。

一、知识蒸馏入门

1.1概念介绍

知识蒸馏(knowledgedistillation)是模型压缩的一种常用的方法,不同于模型压缩

中的剪枝和量化,知识蒸馏是通过构建一个轻量化的小模型,利用性能更好的大模型的监督

信息,来训练这个小模型,以期达到更好的性能和精度。最早是由Hinton在2015年首次提

出并应用在分类任务上面,这个大模型我们称之为teacher(教师模型),小模型我们称之

为Student(学生模型)。来自Teacher模型输出的监督信息称之为knowledge(知识),而

student学习迁移来自teacher的监督信息的过程称之为Distillation(蒸馏)。

1.2知识蒸馏的种类

图1知识蒸馏的种类

1、离线蒸馏

离线蒸馏方式即为传统的知识蒸馏,如上图(a)。用户需要在已知数据集上面提

前训练好一个teacher模型,然后在对student模型进行训练的时候,利用所获取的

teacher模型进行监督训练来达到蒸馏的目的,而且这个teacher的训练精度要比

student模型精度要高,差值越大,蒸馏效果也就越明显。一般来讲,teacher的模型参

数在蒸馏训练的过程中保持不变,达到训练student模型的目的。蒸馏的损失函数

distillationloss计算teacher和student之前输出预测值的差别,和student的

loss加在一起作为整个训练loss,来进行梯度更新,最终得到一个更高性能和精度的

student模型。

2、半监督蒸馏

半监督方式的蒸馏利用了teacher模型的预测信息作为标签,来对student网络进

行监督学习,如上图(b)。那么不同于传统离线蒸馏的方式,在对student模型训练之

前,先输入部分的未标记的数据,利用teacher网络输出标签作为监督信息再输入到

student网络中,来完成蒸馏过程,这样就可以使用更少标注量的数据集,达到提升模

型精度的目的。

3、自监督蒸馏

自监督蒸馏相比于传统的离线蒸馏的方式是不需要提前训练一个teacher网络模型,

而是student网络本身的训练完成一个蒸馏过程,如上图(c)。具体实现方式有多种,例

如先开始训练student模型,在整个训练过程的最后几个epoch的时候,利用前面训练的

student作为监督模型,在剩下的epoch中,对模型进行蒸馏。这样做的好处是不需要提前

训练好teacher模型,就可以变训练边蒸馏,节省整个蒸馏过程的训练时间。

1.3知识蒸馏的功能

1、提升模型精度

用户如果对目前的网络模型A的精度不是很满意,那么可以先训练一个更高精度的

teacher模型B(通常参数量更多,时延更大),然后用这个训练好的teacher模型B对

student模型A进行知识蒸馏,得到一个更高精度的模型。

2、降低模型时延,压缩网络参数

用户如果对目前的网络模型A的时延不满意,可以先找到一个时延更低,参数量更小的

模型B,通常来讲,这种模型精度也会比较低,然后通过训练一个更高精度的teacher模型

C来对这个参数量小的模型B进行知识蒸馏,使得该模型B的精度接近最原始的模型A,从

而达到降低时延的目的。

3、图片标签之间的域迁移

用户使用狗和猫的数据集训练了一个teacher模型A,使用香蕉和苹果训练了一个

teacher模型B,那么就可以用这两个模型同时蒸馏出一个可以识别狗,猫,香蕉以及苹果

的模型,将两个不同与的数据集进行集成和迁移。

图2图像域迁移训练

4、降低标注量

该功能可以通过半监督的蒸馏方式来实现,用户利用训练好的teacher网络模型来对未

文档评论(0)

150****7686 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档