最新模型压缩技术导向

paper-list

https://github.com/jyhengcoder/Model-Compression/blob/master/Model-Compression.md

1.Distilling the Knowledge in a Neural Network

hiton的经典之作,大体上就是用softmax/t 代替softmax去用大网络学小网络,在mnist等小数据集取得了积极的结果。但是缺乏在imagenet之类的大叔据集的结果,用来训练的模型也是比较小的。

2.Mimicking Very Efficient Network for Object Detection

https://www.leiphone.com/news/201707/BziFcoA8Q1Ju7J6q.html
sensetime的文章,在检测等方面宣称取得了比较好的效果,但是很可能结果变好和imagnet-finetune与否影响更大。

该文中提出了一个新的卷积网络mimic方法,即将学习整个feature map变为学习proposal采样之后的feature来简化任务。在由小网络生成的proposal中,使用spatial pyramid pooling方法在大小网络上进行局部特征采样(后经作者指正为直接使用pixel-wise的学习),然后通过L2 loss减小二者之间的差别。总的loss主要由两部分组成,分别为mimic loss 以及ground-truth loss,作者在实验中发现,对于mimic loss进行normalization可以取得更为稳定的mimic结果。同时,作者还提到了对于小网络与大网络feature map大小不同的情况(譬如小网络中输入图像减半),可以增加一个转换层(deconvolution)使得大小网络最终mimic的层保持一致。

3.Face Model Compression by Distilling Knowledge from Neurons

HKCU-汤晓鸥学生的文章,在识别上取得了比较好的结果,缺点是模型设计的不好,说服力削弱了一点。主要的key在于学习hidden比学习softmax好,再就是给出了如何筛选一批比较好的hidden-node。

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

intel的文章,简单将就是int8时损失了一些精度,用distilling可以提升一部分

5.NISP: Pruning Networks using Neuron Importance Score Propagation

IBM的文章,用特征选择的方法压缩模型,即第k层第j个neuron的重要性得分可由下一层相连接neurons重要性得分的加权平均获得,该原则适用于BN、Pooling层等。则通过一次性反向传播便可获得网络中所有neurons的重要性得分,然后指导每一层的pruning。对于全连接层,裁剪个别neurons;对于卷积层,裁剪个别输出通道(channels),每个通道的重要性得分表示为该通道内所有neurons重要性得分之和。被剪除的neurons或channels不参与前一层的反向传播。效果比随机裁剪权重和feature ranking要好,可以结合文章3

6.Model Distillation with Knowledge Transfer in Face Classification, Alignment and Verification

国内的一篇文章,把softmax和distilling想结合,做了很多实验,搞工程的可以参考下

7.Channel Pruning for Accelerating Very Deep Neural Networks

文章的核心内容是对训练好的模型进行通道剪枝(channel pruning),而通道减枝是通过迭代两步操作进行的:第一步是channel selection,这一步是采用LASSO regression来做的,其实就是添加了一个L1范数来约束权重,因为L1范数可以使得权重中大部分值为0,所以能使权重更加稀疏,这样就可以把那些稀疏的channel剪掉;第二步是reconstruction,这一步是基于linear least squares(也就是最小二乘,或者叫最小平方)来约束剪枝后输出的feature map要尽可能和减枝前的输出feature map相等,也就是最小二乘值越小越好。可以看出本文的通道剪枝是对训练好的模型进行的,也就是文章说的inference time,当然作者在最后的conclusion中也提到以后会在train time中也引进通道剪枝,希望能减少训练的时间。

你可能感兴趣的:(模型压缩)