1 摘要
通道修剪是压缩深层神经网络的主要方法之一。为此,现有的剪枝方法大多侧重于通过重要性/最优化或基于经验规则设计的正则化来选择通道(滤波器),这是次优剪枝的缺陷。本文提出了一种新的基于人工蜂群算法(ABC)的通道剪枝方法,称为ABCPruner,其目的是有效地找到最优的剪枝结构,即每层的通道数目,而不是像以前的工作那样选择“重要”的通道。为了解决深层网络中难以处理的巨大剪枝结构组合问题,我们首先提出将保留通道限制在特定空间内的组合缩小,从而大大减少剪枝结构的组合。然后,将最优剪枝结构的搜索问题转化为优化问题,并结合ABC算法进行自动求解,以减少人为干扰。ABCPruner已经被证明是更有效的,它还能够以端到端的方式高效地进行微调。
2 动机
ABCPRuner的动机有二,Rethinking the value of network pruning. In ICLR, 2019结果表明,通道修剪的实质在于找到最优的修剪结构,即每层的通道数,而不是选择“重要”的通道。Amc: Automl for model compression and acceleration on mobile devices. In CVPR, 2018证明了将超参数自动控制方法应用于通道修剪的可行性,这种方法需要较少的人工干预。
3 The Proposed ABCPruner
给定一个包含L LL个卷积层及其过滤器集合W的CNN模型N,我们将C=(c1,c2,...,cL)称为N NN的网络结构,其中c cc是第j jj层的通道数量。通道修剪旨在去除W中的一部分滤波器,同时保持相当甚至更高的精度。
3.1 最优修剪结构
我们的通道裁枝是受到最近的一项研究Rethinking the value of network pruning. In ICLR, 2019
的启发,该研究表明,通道剪枝的关键步骤在于找到最优的剪枝结构,即每层的通道数,而不是选择“重要的”通道。对于任何一个剪枝模型N ′ N'N
′
,我们将其结构表示为C ′ = ( c 1 ′ , c 2 ′ , . . . , c L ′ ) C'=(c'_1,c'_2,...,c'_L)C
是第j jj层中剪枝模型的通道数量。在给定训练集T t r a i n T_{train}T
和测试集T t e s t T_{test}T test
的情况下,我们的目标是找到C ′ C'C
的最优组合,使得在T t r a i n T_{train}T train
上训练/微调的剪枝模型N ′ N
获得最好的准确率。为此,我们将通道修剪问题表述为
(C′)∗=C′argmaxacc(N′(C′,W′;Ttrain);Ttest)
其中W ′ W'W
是在T T r a i n T_{Train}T
Train
上训练/微调的修剪模型的权重,而a c c ( ⋅ ) acc(·)acc(⋅)表示具有结构C ′ C'C
的N 在Ttest上的精度。因为方程很难优化,所以进一步缩减组合。
3.2 Combination Shrinkage
在给定网络N NN的情况下,修剪结构的组合可以,这对于资源有限的设备来说计算是困难的。因此,对方程进行约束。
(C′)∗=argmaxacc(N′(C′,W′;Ttrain);Ttest)s.t. ci′∈{0.1ci,0.2ci,…,αci}L
我们引入α αα的动机有两个:
- 通常在通道修剪中保留每层中一定百分比的过滤器,而α可以作为保留的过滤器的上限。
- 引入的α αα将组合大大减少到( 10 α ) L ( α ≤ 1 ) (10α)^L(α≤1)(10α) L
(α≤1),使得方程求解更加可行高效。
4. 结果
作者在CIFAR-10上用VGGNet、GoogLeNet和ResNets三个经典的深度网络进行了实验。实验结果如下。
进一步在大规模的ILSVRC-2012上对不同深度的ResNet(包括18/34/50/101/152)执行了作者的方法,每个网络提供了两种不同的修剪率,结果如下。
深入分析:结合表1和表2,可以看出。ABCPruner能够很好地压缩经典的CNN模型,同时保持较好的精度性能。其成功之处在于自动进行最优剪枝结构搜索。为了更深入的分析,我们在图2中显示了ABCPruner-80%对VGGNet-16的逐层修剪结果。ABCPruner-80%表示每层最多保留80%的通道。可以看出,对于大多数层,超过20%的通道被移除,并且修剪率在不同层上是不同的。因此,ABCPruner可以自动获得最优的剪枝结构,然后反馈良好的性能。
在本节中,我们以CIFAR-10上的ResNet-56为例,分析引入的常数α的影响,该常数表示每一层保留通道百分比的上界。直观地说,较大的α使通道、参数和触发器的减少较少,但精度性能较好。图3中的实验结果证明了这一假设。为了平衡精度性能和模型复杂度,本文设置α=70%,如表1。