知识蒸馏Knowledge Distillation论文汇总

FITNETS: HINTS FOR THIN DEEP NETS

论文链接
该论文扩展了知识蒸馏的方法,student网络比teacher更深、更“瘦”,不仅使用teacher的输出作为训练student的soft targets,而且使用teacher学到的中间表示(intermediate representations)作为hint,改进学生的训练过程和最终表现。更深的模型泛化性能更好,使这些模型变得更瘦有助于减少计算负担

由于student的隐藏层大小比teacher小,需要引入额外的参数将其映射到teacher隐藏层的预测中

注:curriculum learning即模仿人类学习的特点,由简单到困难学习课程

方法
从较浅、较宽的网络开始训练FitNet
知识蒸馏Knowledge Distillation论文汇总_第1张图片
实验结果如下:
知识蒸馏Knowledge Distillation论文汇总_第2张图片

Apprentice-Using Knowledge Distillation Techniques To Improve Low-Precision Network Accuracy

论文链接
该论文研究了网络量化(quantization)与模型压缩的结合,贡献在于提出利用知识蒸馏技术获取低精度深度神经网络的方法

在该工作中,学生网络的拓扑结构与教师网络相似,只是学徒网络(Apprentice)的神经元精度较低(low-precision),而教师网络的神经元是全精度的(full-precision)

动机
1.在推断阶段,batch size很小,权重的内存占用超过了feature map的内存占用,因此降低权重张量的精度有助于降低部署期间的内存需求。对于下图中的四种常用模型都是如此
知识蒸馏Knowledge Distillation论文汇总_第3张图片
2.低精度的计算简化了硬件实现,从而降低推断阶段的时延,减小内存,代价是准确率降低

方法
低精度网络目标在于减小存储量和计算的消耗;知识蒸馏希望通过改变网络结构来减少计算。该论文提出的方法试图将二者结合,既提高准确率又提高运行效率
知识蒸馏Knowledge Distillation论文汇总_第4张图片
loss大致由三个部分组成(在每种方案中可能由于是否训练teacher而稍微有变化):如上面的模型图中的标注所示, p T p_{T} pT表示teacher网络输出的softmax之后的值, p A p_{A} pA表示apprentice网络(以下用student表示,比较方便)输出的softmax之后的值, z T z_{T} zT表示teacher网络的预测值进行softmax之前的值; H H H表示一个loss函数如交叉熵等, α , β , γ \alpha,\beta,\gamma α,β,γ是三项loss函数的权重
在这里插入图片描述
第一项针对teacher网络,第二项针对student,第三项表示student试图模仿teacher网络学到的知识

作者提出了三个方案,每个方案都会产生一个低精度的模型,其精度超过了迄今为止发表的等效低精度模型的精度。这三种方案研究改变教师和学生网络深度以及学生网络中神经元的精度的影响:

  1. 全精度teacher+低精度student联合训练
    利用知识蒸馏对低精度网络和全精度网络进行从零开始的联合训练。该方案作为其他两个方案的新baseline
    下图是ResNet-50作为student,ResNet-50或101作为teacher的top1误差表格,左边A代表activation map的精度,W代表权重的精度
    知识蒸馏Knowledge Distillation论文汇总_第5张图片
    在8A,2W这种较小的精度下,最好的学徒网络达到了27.2%的Top-1误差

  2. 从训练好的全精度teacher中提取知识
    从一个训练好的全精度训练的网络中不断转移知识,从零开始训练一个低精度的网络。低精度的网络收敛得更快了,如下图所示,与第一种方案Scheme-A相比,第二种方案达到相同错误率需要的epoch数量更少
    知识蒸馏Knowledge Distillation论文汇总_第6张图片

  3. fine-tune一个student:训练好的全精度teacher+全精度student->降低student精度->student进行fine-tune
    从一个训练好的全精度大型网络和一个用全精度权重进行了初始化的学徒网络开始,之后降低学徒网络的精度,并使用知识蒸馏进行fine-tune。该方案学徒模型的准确率比第一种方案中的学生模型高一些,适用于已经有了一个训练好的网络的场景
    知识蒸馏Knowledge Distillation论文汇总_第7张图片

A Gift from Knowledge Distillation:Fast Optimization, Network Minimization and Transfer Learning

FSP矩阵:将两个layer的特征做内积,包含有关解决方案的过程流信息,表示网络学习的方向
知识蒸馏Knowledge Distillation论文汇总_第8张图片
在这里插入图片描述
知识蒸馏Knowledge Distillation论文汇总_第9张图片
训练:CIFAR-10数据集,ResNet-8、16、32,两个stage
1st stage:最小化student和teacher三个相同尺寸的特征的FSP矩阵之间的距离(L2 loss)
2nd stage:用之前训练的权重对该阶段的模型进行权重初始化,进行正常的训练过程

你可能感兴趣的:(深度学习)