胡诌八侃论文:Network Pruning via Transformable Architecture Search

通过可转换架构搜索进行网络修剪

 

背景

深度卷积神经网络(CNN)变得越来越广泛,以在不同的应用程序上实现高性能。尽管它们取得了巨大的成功,但将它们部署到资源受限的设备(如移动设备和无人机)上是不切实际的。解决此问题的直接解决方案是使用网络修剪减少过度参数化的CNN的计算成本。如图1(a)所示,用于网络修剪的典型管道是通过删除冗余过滤器,然后基于原始网络微调斜线网络来实现的。应用了滤波器重要性的不同标准,例如滤波器的L2范数,重构误差和可学习的缩放因子。最后,研究人员对修剪后的网络应用了各种微调策略,以有效地传递未修剪后的网络的参数并最大化修剪后的网络的性能。

胡诌八侃论文:Network Pruning via Transformable Architecture Search

传统的网络修剪方法在保持准确性的同时,对网络压缩产生了有效的影响。他们的网络结构是直观设计的,例如,在每一层中修剪30%的滤波器[30、18],预测稀疏率[15]或利用正则化[2]。修剪后的网络的精度受手工制作的结构或结构规则的限制。为了克服这一限制,我们应用神经体系结构搜索(NAS)将体系结构的设计转变为学习过程,并提出了一种新的网络修剪范式,如图1(b)所示。

胡诌八侃论文:Network Pruning via Transformable Architecture Search

 

现有的NAS方法优化了网络拓扑,而本文的重点是自动网络规模。为了满足要求并公平地比较以前的修剪策略,我们提出了一种称为可转换体系结构搜索(TAS)的新NAS方案。 TAS的目标是通过最小化计算成本(例如浮点运算(FLOP))进行规则化,而不是寻找拓扑的最佳网络大小。然后,通过知识转移来学习搜索/修剪的网络的参数。 TAS是一种可微分的搜索算法,可以有效而高效地搜索网络的宽度和深度。具体而言,信道/层的不同候选以可学习的概率被附加。通过反向传播修剪后的网络产生的损失来学习概率分布,修剪后的网络的特征图是根据概率分布采样的K个特征图片段(不同大小的网络输出)的集合。这些不同通道大小的特征图借助通道方式插值进行汇总。每个分布中大小的最大概率用作修剪网络的宽度和深度。 在实验中,我们表明,通过知识蒸馏(KD)传递参数的搜索架构优于CIFAR-10,CIFAR-100和ImageNet上以前的最新修剪方法。

TAS剪枝过程

我们的修剪方法包括三个步骤:

(1)通过标准分类训练程序训练未修剪的大型网络。

(2)通过建议的TAS搜索小型网络的深度和宽度。

(3)通过简单的KD方法将知识从未修剪的大型网络转移到搜索的小型网络

 

胡诌八侃论文:Network Pruning via Transformable Architecture Search

从未修剪的三层CNN中搜索修剪的CNN的宽度。 每个卷积层都配备了该层中通道大小的可学习分布,由左侧的pi表示。 如右图所示,每个图层的特征图都是由图层顺序构建的。 对于特定层,根据对应的分布对不同大小的K(在此示例中为2)个特征图进行采样,并通过按通道内插(CWI)和加权总和进行组合。 此聚合的要素图将作为输入馈送到下一层。

Transformable Architecture Search

网络通道修剪旨在减少网络每一层中的通道数量。 给定输入图像,网络会将其作为输入,并在每个目标类别上产生概率。 假设X和O是第l个卷积层的输入和输出特征量(我们以3×3卷积为例),该层计算以下过程:

胡诌八侃论文:Network Pruning via Transformable Architecture Search

其中W∈Rcout×cin×3×3表示卷积核权重,cin为输入通道,cout为输出通道。 Wj,k,:,:对应于第k个输入通道和第j个输出通道。 *表示卷积运算。 通道修剪方法可以减少cout的数量,因此,也减少了下一层的cin。

我们使用参数        胡诌八侃论文:Network Pruning via Transformable Architecture Search    表示一层中可能的通道数分布,用C和max(C)≤cout表示。 选择频道数量的第j个候选者的概率可以表示为:

胡诌八侃论文:Network Pruning via Transformable Architecture Search

但是,上述过程中的采样操作是不可微的,这阻止了我们通过pj到αj向后传播梯度。 受[8]的启发,我们应用Gumbel-Softmax [26,36]来软化采样过程以优化α:

胡诌八侃论文:Network Pruning via Transformable Architecture Search

其中U(0,1)表示0和1之间的均匀分布。τ是softmax温度。

我们的方法中的特征图定义为不同大小的原始特征图片段的加权和,其中权重为p are。 通过通道明智插值(CWI)对齐具有不同大小的特征图,以便进行加权和运算。为了减少内存成本,我们选择索引为I⊆[| C |]的小子集进行聚合,而不是使用所有候选集。 此外,权重根据所选大小的概率重新归一化,公式如下:

胡诌八侃论文:Network Pruning via Transformable Architecture Search

Searching objectives.

最终的架构A是通过选择具有最大概率的候选项而得出的,该候选项由架构参数 胡诌八侃论文:Network Pruning via Transformable Architecture Search  获知,该架构参数A由每层的α和β组成。 我们的TAS的目标是通过将训练损失Ltrain最小化,找到经过训练后具有最小验证损失Lval的架构A:

胡诌八侃论文:Network Pruning via Transformable Architecture Search

其中,ω* A表示A的优化权重。训练损失是网络的交叉熵分类损失。 现有的NAS方法[31、48、8、4、40]通过具有不同类型的网络候选者优化A,而我们的TAS则搜索具有相同类型结构以及较小宽度和深度的候选者。 结果,我们搜索过程中的验证损失不仅包括分类验证损失,还包括计算成本的损失:

胡诌八侃论文:Network Pruning via Transformable Architecture Search

其中z是一个向量,表示修剪后的网络的输出对数,y表示相应输入的基本事实类别,而λcost是Lcost的权重。 成本损失会鼓励网络的计算成本(例如FLOP)收敛到目标R,以便可以通过设置不同的R来动态调整成本。我们使用分段计算成本损失为:

胡诌八侃论文:Network Pruning via Transformable Architecture Search

其中Ecost(A)基于体系结构参数A计算对计算成本的期望。具体地说,它是所有候选网络的计算成本的加权总和,其中权重是采样概率。、

实验结果

 

胡诌八侃论文:Network Pruning via Transformable Architecture Search

表3中CIFAR的结果。我们在CIFAR-10和CIFAR-100上修剪了不同的ResNet。 以前的大多数算法在CIFAR-100上的性能都很差,而在大多数情况下,我们的TAS的性能始终超过2%。 在CIFAR-10上,我们的TAS优于ResNet-20、32、56、110上的最新算法。 例如,TAS通过在CIFAR-100上修剪ResNet-56来获得72.25%的准确度,高于FPGM的69.66%[19]。 对于在CIFAR-100上修剪ResNet-32,与未修剪的网络相比,我们获得了更高的准确性和更少的FLOP。

总结

在本文中,我们提出了一种新的网络修剪范式,它由两个部分组成。 对于第一个组件,我们建议应用NAS搜索网络的最佳深度和宽度。 由于大多数以前的NAS方法都专注于网络拓扑结构而不是网络大小,因此我们将这种新的NAS方案称为可转换体系结构搜索(TAS)。 此外,我们提出了一种可区分的TAS方法,以有效地找到最合适的网络深度和宽度。 对于第二个组件,我们建议通过传输来自未修剪网络的知识来优化搜索网络。 在本文中,我们应用简单的KD算法执行知识转移,并进行其他转移方法以证明该组件的有效性。 我们的结果表明,专注于搜索和转移的新努力可能会导致网络修剪方面的新突破。