深度学习模型优化+模型蒸馏+模型压缩

深度学习模型优化+模型蒸馏+模型压缩

、https://blog.csdn.net/shentanyue/article/details/83539382

经典论文:

(1)Distilling the Knowledge in a Neural Network

地址:https://arxiv.org/pdf/1503.02531.pdf

(2)Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfer

地址:https://arxiv.org/abs/1612.03928

源码地址:基于Activation的实现源码:https://github.com/szagoruyko/attention-transfer

(3)MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 

论文地址 :https://arxiv.org/abs/1704.04861

源码地址:MobileNet中Depthwise实际上是通过卷积中的group来实现的,其实在后面也会发现,这些精细模型的设计都是和group有关。本文的源码:https://github.com/shicai/MobileNet-Caffe

(4)Aggregated Residual Transformations for Deep Neural Networks 论文地址 

论文地址:https://arxiv.org/pdf/1611.05431.pdf

源码地址:本文的源码:https://github.com/facebookresearch/ResNeXt

(5)ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices 论文地址 

论文地址:https://arxiv.org/abs/1707.01083?context=cs.CV

目前关于深度学习模型压缩的方法有很多,本系列博文从四个角度来对模型压缩的方法进行了介绍,总的来说,所列出的文章和方法都具有非常强的借鉴性,值得我们去学习,效果也较明显。其中基于核稀疏化的方法,主要是在参数更新时增加额外的惩罚项,来诱导核的稀疏化,然后就可以利用裁剪或者稀疏矩阵的相关操作来实现模型的压缩;基于模型裁剪的方法,主要是对已训练好的网络进行压缩,往往就是寻找一种更加有效的评价方式,将不重要的参数剔除,以达到模型压缩的目的,这种压缩方法实现简单,尤其是regular的方式,裁剪效率最高,但是如何寻找一个最有效的评价方式是最重要的。基于迁移学习的方法,利用一个性能好的教师网络来监督学生网络进行学习,大大降低了简单网络学习到不重要信息的比例,提高了参数的利用效率,也是目前用的较多的方法。基于精细模型设计的方法,模型本身体积小,运行速度快,性能也不错,目前小的高效模型也开始广泛运用在各种嵌入式平台中。 
总的来说,以上几种方法可以结合使用,比如说先对参数进行结构化的限制,使得参数裁剪起来更加容易,然后再选择合适的裁剪方法,考虑不同的评价标准以及裁剪策略,并在裁剪过程中充分考虑参数量、计算量、带宽等需求,以及不同硬件平台特性,在模型的性能、压缩、以及平台上的加速很好的进行权衡,才能够达到更好的效果。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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