剪枝系列5:CLIP-Q

CLIP-Q: Deep Network Compression Learning by In-Parallel Pruning-Quantization把剪枝和量化一起做的一个方法。以往的做法,剪枝和量化一般都是分开做的,这样很难达到联合最优化。论文代码是用caffe实现的。

论文方法

方法比较简单,直接放截图了。
剪枝系列5:CLIP-Q_第1张图片
剪枝系列5:CLIP-Q_第2张图片
剪枝系列5:CLIP-Q_第3张图片
需要注意的是,在训练阶段,量化后的参数和原始参数都需要用到。原始参数用在反向传播更新参数的时候,而前向传播用的是量化后的参数。训练结束后,只有量化后的参数需要被保留。保存的方法是standard sparse encoding scheme——使用index differences来对稀疏矩阵编码。没有被剪枝的参数还需要保存量化比特数。

参数估计

本方法需要确定的参数是 θ i = ( p i , b i ) \theta_i=(p_i,b_i) θi=(pi,bi),即剪枝率和量化比特数。使用贝叶斯优化来估计参数。目标函数是:
m i n θ ϵ ( θ ) − λ ⋅ c i ( θ ) min_\theta \quad\epsilon(\theta)-\lambda \cdot c_i(\theta) minθϵ(θ)λci(θ)
其中, ϵ ( θ ) \epsilon(\theta) ϵ(θ)是结果的top-1 error. c i ( θ ) = m i − s i ( θ ) ∑ i m i c_i(\theta)=\frac{m_i-s_i(\theta)}{\sum_i m_i} ci(θ)=imimisi(θ) m i m_i mi是第 i i i层原来的总存储比特数, s i s_i si是剪枝+量化后第 i i i层需要的总比特数。

实验

对AlexNet on ImageNet从243.9MB压缩到4.8MB,大概51倍压缩,没有精度损失
对GoogLeNet on ImageNet从28.0MB压缩到2.8MB,大概10倍压缩,没有精度损失
对ResNet on ImageNet从102.5M压缩到6.7MB,大概6.7倍压缩,没有精度损失
和其他压缩算法对比
剪枝系列5:CLIP-Q_第4张图片

总结

以前韩松的方法也包含了剪枝和量化,但是是分开做的。这篇把剪枝和量化一起做应该说效果还是很不得错的,也用到了贝叶斯优化的方法。
但是局限性也很明显,就是是属于不规则剪枝,在工程上还需要很高的软件支持才能很好地加速。

你可能感兴趣的:(剪枝论文)