「免费学习 60 节公开课:投票页面,点击讲师头像」

作者:凉爽的安迪

来源 | 深度传送门(最好的化学论文范例(收藏一文带你总览知识蒸馏)(1)ID:deep_deliver)

【导读】这是一篇关于【知识蒸馏】简述的文章,目的是想对自己对于知识蒸馏学习的内容和问题进行总结。笔者挑选了部分经典的paper详读,希望对于对KD有需求的同学提供一个概览和帮助。

引子

昆虫记里写道:”蝴蝶以毛毛虫的形式吃树叶积攒能量逐渐成长,最后变换成蝴蝶这一终极形态来完成繁殖”。虽然蝴蝶和毛毛虫两者本质是同一种生物,但是面对不同环境和任务的时候,形态不同——毛毛虫形态下可以更方便地吃树叶,保护自己,积蓄能量;而蝴蝶能飞,可以扩大活动范围,提高繁殖几率。

最好的化学论文范例(收藏一文带你总览知识蒸馏)(2)

图1,毛毛虫变成蝴蝶

在监督学习里也是这样的,在训练模型时,我们通常采用复杂模型或者Ensemble方式来获取最好的结果,导致参数冗余严重,像BERT里有3亿参数。因此在前向预测时,需要对模型进行复杂的计算(或多个模型加权),导致工程性能较差。

Hinton在NIPS 2014workshop中提出知识蒸馏(Knowledge Distillation,下面简称KD)概念:

把复杂模型或者多个模型Ensemble(Teacher)学到的知识 迁移到另一个轻量级模型( Student )上叫知识蒸馏。使模型变轻量的同时(方便部署),尽量不损失性能。

从定义上来看KD属于模型压缩、加速的一类玩法。(后面的研究也会将KD应用于模型表现的提升)。在这里,知识应该宽泛和抽象地理解,模型参数,网络层的输出(网络提取的特征)、网络输出等都可以理解为知识。

最好的化学论文范例(收藏一文带你总览知识蒸馏)(3)

图2,Knowledge in KD

Overview & Timeline

按照待迁移的知识类型,KD主要分为三个大类:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(4)

图3,知识蒸馏分类——从迁移知识类别的角度

从时间线上来看,KD的发展脉络大致如下(部分论文):

最好的化学论文范例(收藏一文带你总览知识蒸馏)(5)

图4,Timeline of KD

在第二part中,对于Paper内容的概述也将大概按照KD的类别分别展开。

Papers

Output Transfer——将网络的输出(Soft-target,后面会介绍其含义)作为知识。在该部分,将主要介绍以下几篇paper。

最好的化学论文范例(收藏一文带你总览知识蒸馏)(6)

【Meta info】Hinton,NIPS 2014 workshop,Cites:2400

这篇paper是知识蒸馏的开山之作,由Hinton老爷子在NIPS 2014 workshop上提出,文章的思路非常简单、优雅。首先,我们对一些术语进行定义:

接下来,进入正题,介绍蒸馏的过程:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(7)

图6,知识蒸馏过程图示

最好的化学论文范例(收藏一文带你总览知识蒸馏)(8)

图7,经典知识蒸馏过程

从模型效果上来看:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(9)

图8,Mnist蒸馏结果对比

Teacher网络模型复杂,参数多,表征能力强,使用Hard Target作为训练目标,并且从直觉上来看,效果应该是好的(参数多),最终在测试集上错了67个。

Student网络模型简单,参数少,表征能力弱,在直接使用Hard target 作为训练目标时(不使用知识蒸馏),在测试集上错了146;使用Hard target Soft target作为训练目标时,错了74个。

可以看出,加入了Soft target后,小网络从大网络中继承了大网络中学习的“知识”,但是这个实验中,最好的结果没有超过baseline。

最好的化学论文范例(收藏一文带你总览知识蒸馏)(10)

Teacher(baseline)网络准确率58.9%,10个Teacher集成的准确率为61.1%,而神奇的是,Student网络(简单模型蒸馏Ensemble网络)的效果居然超过了Teacher网络!

我们考虑下起主要效果的因子:

以Mnist数据集为例,对于数字9而言,数字9与数字4和7长得比较像。网络在进行训练时,我们如果能够将数字之间的相似关系传递给模型,则网络可能学习到更好的结果。

最好的化学论文范例(收藏一文带你总览知识蒸馏)(11)

图9,Mnist数据集

而对于Hard target和Soft target

最好的化学论文范例(收藏一文带你总览知识蒸馏)(12)

图10,Hard target和Soft target对比

我们可以看出,软目标的优势在于:

What's more,关于软目标相关的思考,还有Label smoothing Regularization(LSR),即“标签平滑归一化”。LSR也是对“硬目标”的优化:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(13)

图11,LSR算法

具体推导可以参考

Müller R, Kornblith S, Hinton G. When Does Label Smoothing Help?[J]. arXiv preprint arXi最好的化学论文范例(收藏一文带你总览知识蒸馏)(14)v:1906.02629, 2019.

在经典的蒸馏网络中,参数T是一个超参数——温度。T表示软目标要soft的程度:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(15)

【Meta info】:2019, Cites:12

本文是对Bert网络进行蒸馏,其思想与经典蒸馏网络并无区别。

【背景】:

【网络Loss】:同经典KD,Loss分为两部分:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(16)

【网络结构】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(17)

图12,Bi-LSTM蒸馏Bert

【效果】:可以看出蒸馏的结果弱于Bert但是比原始的双向LSTM效果好很多。

最好的化学论文范例(收藏一文带你总览知识蒸馏)(18)

【Meta info】:CVPR 2018,Cites:409

【背景】:

【网络结构】(以两个网络为例):

最好的化学论文范例(收藏一文带你总览知识蒸馏)(19)

图13,DML网络结构

【网络Loss】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(20)

思路比较简单,Lc1是经典的交叉熵,Dkl是KL散度。

【实施】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(21)

图14,DML训练过程

当存在多个子网络时:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(22)

【效果】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(23)

可以看出,在DML思路下,网络效果比单个网络有了明显的提升;效果比经典的蒸馏网络也提升较大。

【有效因子】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(25)

图15,DML与单独网络Loss

【Meta info】:CVPR 2018,Cites:409

【思路】:

【网络结构】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(26)

图16,再生网络

【效果】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(27)

Feature Transfer——将网络学习的特征作为知识。在深度学习中,一般将隐藏层的输出看作是网络学习的特征,下面两篇paper中:第一篇paper以MLP为基础框架,则网络提取的特征为每个隐藏层的输出向量;第二篇paper以CNN为基础框架,则网络提出的特征为每层的Feature Map。

最好的化学论文范例(收藏一文带你总览知识蒸馏)(28)

图1,特征迁移

【Meta info】:ICLR 2015,Cites: 780

【背景】:

【思路】:

【网络结构】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(29)

图2,FitNet网络结构

【实施】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(30)

【Meta info】:ICLR 2017, Cites: 222

【思路】:

【网络结构】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(32)

图3,《Paying More Attention to Attention》网络结构

【思路1——Actication-based attention transfer】:

【实施】:

【网络Loss】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(34)

最好的化学论文范例(收藏一文带你总览知识蒸馏)(35)

【思路2——Gradient-based attention transfer】:

Loss对输入X求导, 判断损失函数对于输入X的最好的化学论文范例(收藏一文带你总览知识蒸馏)(36)敏感性,pay more attnetion to值得注意的像素(梯度大的像素)

【网络Loss】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(37)

最好的化学论文范例(收藏一文带你总览知识蒸馏)(38)

Relation Transfer——将网络或者样本的关系作为知识。该部分将主要介绍以下一篇paper:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(39)

图5,关系迁移

【Meta info】:CVPR 2017,Cites: 144

【思路】:学生网络学习教师网络层与层之间的关系(特征关系),“授之以渔”。

【网络结构】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(40)

图6,FSP matrix网络结构

【实施】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(41)

【效果】:

在多个数据集上学生网络在参数减少很多的情况下,效果接近教师网络,且优于FitNets

该部分将主要介绍以下的paper:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(42)

图8,其他paper

【Meta info】:NIPS 2018, Cites: 15

【背景】:

【GAN】回顾:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(43)

KDGAN里作者提出了两种网络:NaGAN,KDGAN

思路1:【NaGAN】

【网络结构】(红框部分):

最好的化学论文范例(收藏一文带你总览知识蒸馏)(44)

图9,NaGAN网络结构

【实施】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(45)

【优劣】:

思路2:【KDGAN】:

【网络结构】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(46)

图10,KDGAN网络结构

【实施】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(47)

【训练过程】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(48)

迭代对抗训练。

【Meta info】:KDD 2018,Cites: 12

【背景】:

【思路】:

【Loss】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(49)

w_r为每条教师网络中预测的样本的权重,有两种方式生成:

【网络结构】:

最好的化学论文范例(收藏一文带你总览知识蒸馏)(50)

图11,Ranking Distillation网络结构

Discussion

简单回顾一下,把复杂模型或者多个模型Ensemble(Teacher)学到的知识→ 迁移到另一个轻量级模型( Student )上叫知识蒸馏;。知识蒸馏属于模型压缩、加速的一类,要求在模型变轻量的同时(方便部署),尽量不损失性能;后来也应用于模型表现的提升。

按照迁移知识的类型大致可以分为三大类:

知识蒸馏提升了模型的工程表现,相对于其他模型压缩方式,如模型Int8而言,KD给了我们更多的想象空间,毕竟如DML等训练方式,可能在一定程度上提升模型的效果。

最后是一些Take Home Messages~

最好的化学论文范例(收藏一文带你总览知识蒸馏)(51)

以上就是《知识蒸馏简述》的全部内容如果大家觉得有帮助,可以帮忙点个赞或者收藏一下,这将是我继续分享的动力~

参考文献

1. Hinton G, Vinyals O, Dean J. Distilling the Knowledge in a Neural Network[J]. Computer Science, 2015, 14(7):38-39.

2. Tang R, Lu Y, Liu L, et al. Distilling Task-Specific Knowledge from BERT into Simple Neural Networks[J]. arXiv preprint arXi最好的化学论文范例(收藏一文带你总览知识蒸馏)(52)v:1903.12136, 2019.

3. Müller R, Kornblith S, Hinton G. When Does Label Smoothing Help?[J]. arXiv preprint

4. Zhang Y, Xiang T, Hospedales T M, et al. Deep mutual learning[C] // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 4320-4328

5. Furlanello T, Lipton Z C, Tschannen M, et al. Born again neural networks[J]. arXiv preprint arXi最好的化学论文范例(收藏一文带你总览知识蒸馏)(53)v:1805.04770, 2018.

6. Romero A , Ballas N , Kahou S E , et al. FitNets: Hints for Thin Deep Nets[J]. Computer Science, 2014.

7. Zagoruyko S, Komodakis N. Paying more attention to attention: Improving the performance of convolutional neural networks via attention transfer[J]. arXiv preprint arXi最好的化学论文范例(收藏一文带你总览知识蒸馏)(54)v:1612.03928, 2016.

8. Yim J, Joo D, Bae J, et al. A gift from knowledge distillation: Fast optimization, network minimization and transfer learning[C] // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.

9. Wang X, Zhang R, Sun Y, et al. KDGAN: knowledge distillation with generative adversarial networks[C]//Advances in Neural Information Processing Systems. 2018: 775-786.

10. Tang J, Wang K. Ranking distillation: Learning compact ranking models with high performance for recommender system[C]

11. Cheng Y, Wang D, Zhou P, et al. A survey of model compression and acceleration for deep neural networks[J]. arXiv preprint arXi最好的化学论文范例(收藏一文带你总览知识蒸馏)(55)v:1710.09282, 2017.

原文地址:

https://zhuanlan.zhihu最好的化学论文范例(收藏一文带你总览知识蒸馏)(56).com/p/92166184

(*本文为AI科技大本营转载文章,转载请联系作者)

所有CSDN 用户都可参与投票抽奖活动

加入福利群,每周还有精选学习资料、技术图书等福利发送

,