【模型压缩】Channel Pruning via Optimal Thresholding

荒凉一梦 提交于 2020-03-17 06:24:48

论文链接:https://arxiv.org/pdf/2003.04566.pdf

动机:

现在压缩工作中,通过预定义的度量(metric)计算出的阈值进行模型剪枝,这种阈值忽略了不同层的变化和权值分布的不同,所以这种剪枝方法通常过剪枝和欠剪枝得到一个次优的结果。本篇论文中,作者提出了一个方法:最优阈值(OT,Optimal Thresholding),每层剪枝使用不同的阈值。通过使用OT,保证精度的同时,可以有效减掉那些不重要的通道;

方法:

Training with Sparsity

 图2是个典型的剪枝过程,在图2中,作者首先要解决稀疏约束问题:

L,R,Θ分别是loss函数,用于稀疏的回归项,和训练参数。回归项用于减少模型尺寸约束的复杂度,计算和内存消耗。使用L1回归在bn层的scaling factors上,

Γ是scaling factor是的集合,λ控制稀疏的程度,|r|即为L1正则化,r是BN层参数scaling factor;

  1. Distribution of Scaling Factors

为了解决过剪枝和欠剪枝问题,网络层不同的分布也是一个预定义阈值的问题。拿VGG-14的第7和第10个bn层,重要权值的分组不是一致的;通过使用一个全局阈值,对于数值较小的scaling factors而言,属于一个灾难。例如作者想使用NS【14】剪枝73%,计算阈值很合适第7层BN层,但是对于第10层BN层而言就是过剪枝了。

在图4中,作者就展示了VGG-14的第八层scaling factors,

Optimal Thresholding for Pruning

作者发现可以忽视的scaling factors都比较小,权值平方和也比那些重要的scaling factor小;所以作者使用scaling factors的平方和大小作为判断scaling factors是否重要的依据,对于scaling factors的集合Γ:

作者发现最优阈值:

δ数值很小,可忽略。例如δ=1e-3时,rth通过1)对scaling factors升序排列,使用2)通过积累的平方和大于或等于δ发现第一个scaling factor。

最优阈值通过公式5得到,如图1中的绿线和图3和图4中箭头;

使用rth进行剪枝,如图2所示,当scaling factor 小于rth,相应通道将被剪掉;与NS方法相比,OT不会在剪枝过程中,使网络断掉;再剪枝后,模型将进行微调或从头开始训练,这个迭代过程如图2;

Dealing with skip connections.

作者通过在整个网络的BN上使用公式5计算了一个全局最优阈值rg。如果最后的BN层的scaling factors小于rg,就将整个分支移除。

在一些网络结构中,BN层与平行分支共享输入通道,不能简单的移除,对于这种结构,作者使用NS【14】的方法进行通道挑选移除不重要的通道;

 

文后思考:

1.该篇论文没有什么创新点,用的还是L1回归,而且对BN的scaling factor操作也是别人干过的工作;

2.文中很多细节介绍的也不太清楚,对于初读剪枝论文的朋友,会有一点点麻烦;

3.唯一一个亮点,可能是结合使用全局阈值和局部阈值吧;

 

 

 

 

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!