Knowledge Distillation

本文概述了知识蒸馏在模型压缩领域的应用,重点介绍了从2014年到2018年的相关研究论文及其开源实现。论文涵盖了从特征匹配到注意力机制的多种知识蒸馏方法,旨在训练出性能接近复杂模型的轻量化网络。
摘要由CSDN通过智能技术生成

从模型压缩的角度调查了有关蒸馏相关的进展。与视觉应用型论文不同模型压缩的论文开源的比例并不多,相比较之下蒸馏相关工作算是开源比例大的。下面主要从是否开源或实现两方面按照发表时间列出相关论文和实现。并在有源码实现了论文中做了进一步相关方法的调查。
##一、知识蒸馏相关论文和进展survey:(开源或有第三方实现)

  • 2014-NIPS-Do Deep Nets Really Need to be Deep?

    • 论文连接:点我
    • 方法:文章采用一种模型压缩(model compression)的方法模拟深度网络训练浅层网络,新的浅层模型的准确率能够达到和深度模型几乎一样的效果。(但直接训练浅层网络得到的准确率和深度网络还是没法比的)
    • 蒸馏类型:在softmax之前作特征匹配,Hinton称之为logit匹配
    • 实现方式:
      • 1、训练一个优秀的复杂的深度网络
      • 2、用深度网络监督寻训练浅层网络(通过softmax前的特征作L2 loss监督训练)
    • 复现性:当前我们使用的方法即为该方法
    • 注意事项:
      • 1、采用训练好的深度网络和 unlabeled data 共同训练浅层网络。unlabeled的样本最好不能只是将deep model的训练集中的label去掉而得到的样本,因为deep model往往在这些样本点上有overfitting;
      • 2、unlabel的样本数需要比deep model的训练集中的样本数要多得多,这样才能更可能的近似原来的这个deep model,unlabeled set 比 train set更大时会work best。
  • 2015-NIPS-Distilling the Knowledge in a Neural Network(Hinton系统诠释蒸馏)

    • 论文链接:点我
    • 方法: 该方法与之前论文方法不同的是采用在softmax层内特征匹配的策略。其本质上是使用softmax的输出得分作为监督,但为了使得到的得分vector更soft,在softmax层加上了蒸馏温度T,使蒸馏的性能显著提升。
    • 蒸馏类型:在softmax层进行特征匹配
    • 实现方式(分两阶段):
      • 原始模型训练阶段:
          1. 根据提出的目标问题,设计一个或多个复杂网络(N1,N2,…,Nt)。
          1. 收集足够的训练数据,按照常规CNN模型训练流程,并行的训练1中的多个网络得到。得到(M1,M2,…,Mt)
      • 浅层模型训练阶段:
          1. 根据(N1,N2,…,Nt)设计一个简单网络N0。
          1. 收集简单模型训练数据,此处的训练数据可以是训练原始网络的有标签数据,也可以是额外的无标签数据。
          1. 将2中收集到的样本输入原始模型(M1,M2,…,Mt),修改原始模型softmax层中温度参数T为一个较大值如T=20。每一个样本在每个原始模型可以得到其最终的分类概率向量,选取其中概率至最大即为该模型对于当前样本的判定结果。对于t个原始模型就可以t概率向量。然后对t概率向量求取均值作为当前样本最后的概率输出向量,记为soft_target,保存。 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值