Channel Pruning for Accelerating Very Deep Neural Networks 论文笔记
2017-11-16 15:57
495 查看
之前pruning操作都是针对于W矩阵,本文另辟蹊径采取对channel进行pruning的方式来减小运算量。来自ICCV2017,是作者在Face++完成的工作。PDF Code作者思路是基于CNN每一层都是稀疏地假设,考虑是否能找到neuron之间的关系,仅留下最具有代表性地neuron。分为两步解决问题:找出每一层具有代表性地neuron,我们利用lasso regression来进行类似model selection的过程。将剩余的neuron去掉(pruning)。 利用剩下的代表性neuron来重构(reconstruction)这一层原本的输出。
1.背景介绍
作者将目前的CNN加速研究分为三类: Optimized implementation :比如FFT Quantization :代表为BinaryNet Structured simplification:本文属于这一类 我本人对这个分类持怀疑态度,比如knowledge distillation 就无法归入任何一类。 而Structured simplification作者又分为三类: tensor factorization :mobilenet 为代表,作者提出这种方法无法分解1*1的卷积,而1*1的卷积普遍用在GoogleNet ,ResNet 和Xception 上 sparse connection:以deep compression 为代表,这种方法缺点是被pruning 后的连接和神经元会形成不规则的结构,不容易在硬件上进行配置实现 channel pruning:本文采用的方法,优点是直接减少不重要的通道数,缺点是会对下游层产生影响,因此要reconstruction2、方法介绍
如图所示,目标就是减少B 的feature map, 那么B中的channel被剪掉,会同时使得上游对应的卷积核个数减少,以及下游对应卷积核的通道数减少。关键在于通道选择,如何选择通道而不影响信息的传递很重要为了进行channel selection ,作者引入了β作为mask ,目标变为 : β是一个列向量,如果βi=0 则代表对应的通道被剪除,c ‘代表经过选择后的通道个数 c’<=c 解决这个最小化问题是一个NP-hard问题(貌似很高深,没细研究),因此作者分两步来优化,首先固定W,优化β ;然后固定β,优化W。而且为了增加β的稀疏度,将β的L1正则项加入优化函数;为了防止明显解的出现又加入了W的约束,原优化函数变为: (1)固定W,优化β : 用LASSO回归: (2)固定β,优化W:3、实验结果
在single layer 上和 其他两种chuannel selection 方法(first k selects和max response)做了对比 图1 图2图1可以看出,shadow layer的channel 冗余度更高,更容易被pruning ,可能和低层卷积提取的特征比较具体,高层卷积提取的特征更加抽象有关。图2可以看出,经过finetune之后效果会好很多,跟我之前的想法符合:做完pruning不做retrain肯定会引入误差,而finetine通过权重矩阵值的调整可以一定程度上消除这种误差。4、总结个人觉得这篇文章的主要贡献在于:相较于原来那种暴力的pruning,利用数学方法优化目标函数,使得pruning前后的输出差异最小,取得了一定效果。 缺点在于:我还是觉得人工加入的限定太多,而且这种方法引入了很多调节参数,调整和优化都麻烦,实用性不强。而且文章开头说不需要retrain,其实还是pruning之后再来finetune一下效果比较好。相关文章推荐
- 论文笔记——Channel Pruning for Accelerating Very Deep Neural Networks
- 代码开源:Channel Pruning for Accelerating Very Deep Neural Networks
- Channel Pruning for Accelerating Very Deep Neural Networks代码详解
- 论文笔记——Data-free Parameter Pruning for Deep Neural Networks
- 论文笔记:Deep neural networks for YouTube recommendations
- 论文笔记 | VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE -SCALE IMAGE RECOGNITION
- 【深度学习论文笔记:Recognition】:Deep Neural Networks for Object Detection
- 论文笔记:PVANET: Deep but Lightweight Neural Networks for Real-time Object Detection
- 论文笔记 《Deep Neural Networks for Object Detection》
- 【论文阅读笔记】DEEP COMPRESSION:COMPRESSING DEEP NEURAL NETWORKS WITH PRUNING, TRAINED QUANTIZATION...
- 论文笔记 Ensemble of Deep Convolutional Neural Networks for Learning to Detect Retinal Vessels in Fundus
- 【论文笔记】Deep Neural Networks for Object Detection
- 论文笔记《A Survey of Model Compression and Acceleration for Deep Neural Networks》
- [深度学习论文笔记][Image Classification] Very Deep Convolutional Networks for Large-Scale Image Recognitio
- 多尺度R-CNN论文笔记(4): PVANET: Deep but Lightweight Neural Networks for Real-time Object Detection
- 论文笔记——ThiNet: A Filter Level Pruning Method for Deep Neural Network Compreesion
- 论文阅读:Deep Neural Networks for Object Detection
- 【论文笔记】Large-Margin Softmax Loss for Convolutional Neural Networks
- [深度学习论文笔记][Weight Initialization] Random walk initialization for training very deep feedforward netw
- 用深度学习(DNN)构建推荐系统 - Deep Neural Networks for YouTube Recommendations论文精读