大家好,欢迎来到我们的星球知识小卡片专栏,本期给大家分享模型蒸馏的核心技术点。
作者&编辑 | 言有三
1 什么是模型蒸馏
一般地,大模型往往是单个复杂网络或者是若干网络的集合,拥有良好的性能和泛化能力,而小模型因为网络规模较小,表达能力有限。利用大模型学习到的知识去指导小模型训练,使得小模型具有与大模型相当的性能,但是参数数量大幅降低,从而可以实现模型压缩与加速,就是知识蒸馏与迁移学习在模型优化中的应用。
Hinton等人最早在文章“Distilling the knowledge in a neural network”中提出了知识蒸馏这个概念,其核心思想是一旦复杂网络模型训练完成,便可以用另一种训练方法从复杂模型中提取出来更小的模型,因此知识蒸馏框架通常包含了一个大模型(被称为teacher模型),和一个小模型(被称为student模型)。
2 优化目标驱动的知识蒸馏框架
Hinton等人提出的框架是在模型最后的预测端,让student模型学习到与teacher模型的知识,这可以称之为直接使用优化目标进行驱动的框架,也是最简单最直接的框架,它不关心中间的学习过程,类似的还有ProjectionNet等。
3 特征匹配的知识蒸馏框架
目标驱动型的知识蒸馏框架的具体细节是难以控制的,会让训练变得不稳定且缓慢。一种更直观的方式是将teacher模型和student模型的特征进行约束,从而保证student模型确实继承了teacher模型的知识,其中一个典型代表就是FitNets,FitNets将比较浅而宽的Teacher模型的知识迁移到更窄更深的Student模型上。
4 没有教师模型的知识蒸馏
一般知识蒸馏框架都需要包括一个Teacher模型和一个Student模型,而Deep mutual learning则没有Teacher模型,它通过多个小模型进行协同训练,这也是非常有研究意义的方向。
5 与其他框架的结合
在进行知识蒸馏时,我们通常假设teacher模型有更好的性能,而student模型是一个压缩版的模型,这不就是模型压缩吗?与模型剪枝,量化前后的模型对比是一样的。所以知识蒸馏也被用于与相关技术进行结合,apprentice框架是一个代表。
6 其他
总的来说,模型蒸馏有非常多的研究方向,包括:
(1) 优化目标驱动的知识蒸馏框架拓展。
(2) 基于特征匹配的知识蒸馏框架拓展。
(3) 不压缩模型,甚至训练更大模型的框架。
(4) 无教师模型的框架。
(5) 自动搜索的框架。
(6) 与其他模型压缩技术的结合。
(7) 其他。
以上内容,如果你不想自己学习,可以去我们知识星球的网络结构1000变板块—模型蒸馏板块阅读。