论文笔记 LOOKAHEAD: A FAR-SIGHTED ALTERNATIVE OFMAGNITUDE-BASED PRUNING

摘要

基于大小的剪枝是最简单的神经网络剪枝方法之一。基于观察到基于幅度的剪枝确实最小化了对应于单层的线性算子的Frobenius范数失真,我们通过将单层优化扩展到多层优化,开发了一种简单的剪枝方法,称为超前剪枝。

一、引言

为了更好理解MP方法的性质,我们在函数近似框架下研究了量级分数的泛化,通过将MP视为由归零参数引入的分层算子中失真的松弛最小化,我们考虑了失真最小化问题的多层扩展。最小化新提出的扭曲测量,即“提前看”修剪对相邻层的影响,产生了一种新的修剪策略,称为超前修剪(LAP),在本文,我们重点比较了所提出的LAP方案与相应的MP方案,我们通过经验证明,在各种设置下,LAP始终优于MP,包括线性网络、全连接网络以及深度卷积和残差网络。除了性能外、超前修剪还具有其他吸引人的特性:

        易于使用。与基于幅度的剪枝一样,所提出的LAP是一种简单的基于分数的方法,与模型和数据无关,可以通过计算量轻的初等张量操作实现,与大多基于Hessian的方法不同,LAP不依赖于训练数据的可用性,除了再训练阶段,与其他复杂的基于训练和基于优化的方案相比,他也没有需要调优的超参数。

        用途广泛。由于我们的方法简单地用一个前瞻性替代方案取代了“显著性大小”标准,因此它可以与为基于大小的修剪开发的算法调整联合部署,例如迭代修剪和再训练或动态重连接的联合修剪和训练。

下面要介绍对MP的函数逼近视角,并激励LAP及其变体作为多层设置的MP的泛化,以及将探讨LAP的功能及其简单模型的变体,然后将LAP应用于更大规模的模型。

二:前瞻:a far-sighted layer approximation

我们首先对基于幅度的剪枝(MP)算法进行更正式的描述,给定一个权重W_{1}...W_{L}相关的L层神经网络,MP算法从每个权重张量中删除具有最小绝对值权重的连接,直到达到所需的稀疏性水平。这一分层过程相当于找到一个掩码M,产生最小的Frobenius范数失真,由

                                min_{M:\left \| M_{} \right \|_{0}=s}\left \| W-M\odot W \right \|_{F}

s是由一些操作准则施加的稀疏性约束

为了最小化Frobenius范数失真,MP算法自然承认函数近似解释,对于全连接层,修剪层和未修剪层输出之间最大的差值可以为:

        \left \|Wx-(M\odot W)x \right \|_{2}\leq \left \| W-M\odot W \right \|_{2}\cdot \left \| x \right \|_{2}\leq \left \|W-M\odot W \right \|_{F}\cdot \left \| x\right \|_{2}

即各层Frobenius范数失真的乘积是修剪权重引起的网络输出失真的上界。

类似的想法也适用于卷积层,对于具有单个输入和单个输出通道的二维卷积,相应的线性算子采用由相关核张量构造的双块循环矩阵的形式。

 1.前瞻失真的近似误差

        基于每层Frobenius失真的短视优化,即使在具有一维输出的两层线性神经网络的最简单的情况下也达不到要求,其中我们考虑了预测器的形成\hat{Y}=u^{T}Wx,并尽量减少u^{T}W的Frobenius失真,如果u_{i}非常大,修剪W的第i行中任何非零元素都可能导致显著的Frobenius失真。

        在此观察的激励下,我们考虑了基于幅度的修剪目标的近似模拟,考虑一个与权重张量W_{1}...W_{L}相关的L层神经网络,为简单其假设线性激活,设\jmath \left ( W_{i} \right )表示对应于以W_{i}为特征的线性算子的雅可比矩阵。为了修剪第i层,除了原始的权重张量W_{i}之外,我们还考虑相邻层W_{i-1}W_{i+1}的权重张量,特别地,我们提出最小化算子块\jmath \left ( W_{i+1} \right )\jmath \left ( W_{i} \right )\jmath \left ( W_{i-1} \right )

min_{M_{i}:\left \|M_{i} \right \|_{0}=s_{i}}\left \|\jmath \left ( W_{i+1})\jmath \left ( W_{i})\jmath \left ( W_{i-1} \right ) \right ) \right ) -\jmath \left ( W_{i+1} \right )\jmath \left ( M_{i}\odot W_{i} \right )\jmath \left ( W_{i-1} \right ) \right \|_{F}

然后上式在计算时通常是难以处理地,为了避免过多地计算开销,我们建议使用以下基于分数地修剪算法,称为超前修剪(LAP)来近似上式,对于每个张量W_{i},我们修剪具有最小超前值地权重w,定义为:

\pounds _{i}\left ( w \right ):= \left \|\jmath \left ( W_{i+1} \right )\jmath\left ( W_{i} \right )\jmath \left ( W_{i-1} \right ) -\jmath \left ( W_{i+1} \right )\jmath \left ( W_{i}|_{w=0} \right )\jmath \left ( W_{i-1} \right ) \right \|_{F}

其中W_{i}|_{w=0}表示张量,其分量除w归零外其他都和W_{i}的分量相等,我们设W_{0}W_{L+1}都是由1组成的张量,换句话说,前瞻失真测量修剪w引起的失真,而其他所有权重保持不变,对于仅由全连接层和卷积层组成的三层块,上式可以简化为:对于连接到第i层的第j个输入神经元/通道和第k个输出神经元/通道的边w,

                        \pounds _{i}(w)=\left | w \right |\cdot \left \|W_{i-1}[j,:] \right \|_{F}\cdot \left \| W_{i+1}[:,k] \right \|_{F}

其中|w|表示w的权值,W[j,:]表示连接到第j个输出神经元/通道的权值组成的W切片,W[:,k]表示第k个输入神经元/通道的权值。在LAP中,我们计算所有权重的前视失真,然后在一个步骤中删除失真最小的权重。

非线性激活的LAP。在实践中,大多数神经网络模型使用非线性激活函数,尽管前瞻失真最初是使用线性激活函数导出的,但LAP也可以用于非线性网络,因为\pounds _{i}(w)的量仍然与原始块近似的观点相关,当网络严重过度参数化时尤其如此。为了看到这一点,考虑一个案例,其中一个目标是在使用ReLU的两层全连接网络的第一层中修剪一个连接,即:

                x\rightarrow W_{2}\sigma (W_{1}x)

其中\sigma (x)=max\left \{ 0,x \right \},在过度参数化的情况下,将单个权重归零可能会以忽略不计的概率改变连接神经元的激活模式,这允许将每个神经元的激活概率与修剪每个连接的行为解耦。这使我们能够通过\sqrt{p_{k}}\pounds _{1}(w)修剪W_{1 }的w引入的网络输出的均方根失真,其中k是w连接到的输出神经元的指数,p_{k}表示第k个神经元激活的概率,在这个意义上,LAP算法可以理解为假设神经元的激活,因为缺乏对训练数据的额外访问。换句话说,LAP允许对系统进行自然扩展,我们在假设修剪阶段可以获得额外的训练数据,这种称为LAP-act的变体

2.带批归一化的前瞻剪枝

        批量归一化(BN)旨在通过缩放和移动具有可训练参数的输出来归一化每批一层的输出。基于我们的函数近似观点,在神经网络中拥有批量归一化层对于依赖于权重大小的MP来说不是问题;批处理归一化只影响每一层的输入分布,而不影响层本身。另一方面,由于前视失真表征了多层块的失真,在评估每个连接的抽象重要性时,必须考虑批量归一化。

        在批量归一化的情况下,前向剪枝的修正可以相当简单的完成,这样的规范化过程可以表示为 x\rightarrow a\odot x+b,对于a,b\in \mathbb{R}^{dim(x)},因此,我们修改了前向修剪,以修剪最小值的连接

                \pounds _{i}(w)=\left | w \right |\cdot a_{i-1}[j]a_{i}\left | k \right |\cdot \left \|W_{i-1}[j,:] \right \|_{F}\cdot \left \|W_{i+1}[:,k] \right \|_{F}

其中a_{i}[k]表示放置在第i个全连接层或卷积层输出处的BN层的第k个指标比例因子(如果BN层不存在,则设a_{i}[k]=1),LAP的这种修改使其成为一种有效的修建策略。

3.前瞻修剪的变体

由于LAP算法考虑了相邻层的当前状态,因此在前视方向,剪枝顺序和顺序剪枝方法方面,LAP承认了几种变体

        Mono-directional LAPs.为了修剪一个层,LAP同时考虑前面和后面的层,向前看,即只考虑下一层,可以被视为对当前层产生的内部表现的有教育的修改。另一方面,往后看,可以理解为只考虑进入当前层的输入的预期结构,对相应的变体LFP和LBP进行了测试。

        Order of pruning。我们也考虑基于已经修剪的层执行LAP,而不是使用前/后层的未修剪张量,这一观察提出了修剪顺序的问题,一种是向前修剪,即先修剪前一层,然后用修剪后的砝码修剪后一层,另一种是向后修剪,两种方法都进行了测试,分别称为LAP-forward和LAP-backward

        Sequential pruning。我们还考虑了LAP-forward/backward方法的顺序版本,更具体的说,如果我们的目标是从每一层修剪总权重的p%,我们将修剪分为5个修剪步骤,并逐步修剪(p/5)%的权重,每一步向前/向后的方向。顺序变量将用后缀“-seq”标记。

三、总结

        在这项工作中,我们将基于大小的剪枝解释为最小化由剪枝引起的单层操作的Frobenius扭曲的解决方案。基于此框架,我们考虑了多层操作的Frobenius失真最小化,并提出了一种新的超前剪枝(LAP)方案作为求解优化问题的计算效率算法。尽管LAP是由线性网络驱动,但是它扩展到了非线性网络,这确实最小化了假定激活的均方根前视失真。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值