没有合适的资源?快使用搜索试试~ 我知道了~
9108预算感知正则化卡尔·勒梅尔舍布鲁克加拿大舍布鲁克carl. usherbrooke.caAndrew AchkarMiovision Technologies Inc.加拿大基奇纳aachkar@miovision.comPierre-MarcJodoinUniversity 'deSherbrookeSherbrooke,Canadapierre-marc. usherbrooke.ca摘要修剪方法已被证明可以有效地减少深度神经网络的大小,同时保持准确性几乎不变。其中最有效的方法是修剪网络,同时使用稀疏先验损失和可学习的dropout参数进行训练。然而,这些方法的缺点是,修剪网络的大小和推理速度都不能直接控制;然而,这是在低功率硬件上定向部署CNN的关键特征。为了克服这一点,我们为深度CNN引入了一个预算正则化修剪框架。我们的方法自然适合于trans-marting神经网络训练,因为它包括一个可学习的掩蔽层,一个新的可感知目标函数,以及知识蒸馏的使用我们还提供了关于如何修剪剩余网络以及如何产生新架构的见解。实验结果表明,使用我们的方法修剪的CNN比最先进的方法更准确,计算量更少。此外,我们的方法在严重修剪的情况下更有效地防止精度崩溃;这允许修剪因子最高可达16倍,且精度不会显著下降。1. 介绍卷积神经网络(CNN)已被证明是许多计算机视觉任务的有效特征提取器[12,15,18,31]。几个CNN的设计涉及许多算法,例如使用2的递增幂作为每层的特征图数量或宽度。虽然这样的算法允许实现优异的结果,但是在计算能力和存储器的量受限的情况下,诸如在移动平台的情况下,它们可能太粗糙。因此,出现的问题是找到正确的层数,解决给定的任务,同时尊重预算。由于层数高度依赖于学习滤波器(及其组合)的有效性,因此不能先验地确定这些超参数。卷积运算构成CNN的主要计算负担。这些操作的执行得益于高度的并行性,这要求它们具有规则的结构。这意味着一个人可以-不要从CNN滤波器中删除孤立的神经元,因为它们必须是完整的网格。为了达到与移除neu-ron相同的效果,可以将其权重归零。虽然这样做减少了模型的理论大小,但它不会减少模型的计算需求,也不会减少特征图内存的量。因此,为了加速CNN并减少其内存占用,必须依赖结构化稀疏修剪方法,这些方法旨在减少特征图的数量,而不仅仅是单个神经元。通过从网络中删除不重要的过滤器并重新训练它,可以在保持良好性能的同时缩小它这可以通过以下假设来解释:滤波器权重的初始值在结构化修剪方法中,实施稀疏学习(SL)框架的那些方法已被证明是有效的,因为修剪和训练是同时进行的[1,17,21,22,24,27]。不幸的是,大多数SL方法不能修剪网络,同时尊重由网络将被部署在其上的设备的本质所施加的神经元预算到目前为止,在遵守预算的情况下修剪网络只能通过试错法来完成,通常是通过使用各种压缩超参数多次训练网络来完成。在本文中,我们提出了一个SL框架,它允许学习和选择CNN的滤波器,同时考虑神经元预算。我们的主要贡献是:• 我们提出了一种新的目标函数,其中包括对数屏障[2]函数的变体,用于同时训练和修剪CNN,同时尊重总神经元预算;• 我们提出了一种用于优化CNN的屏障方法[2]的变体;• 我们证明了SL和知识蒸馏相结合的有效性[14];• 我们实证地证实了用滤波器方法修剪的残差网络的自动深度确定性质的存在,并给出了如何通过防止“致命修剪”来保证被修剪网络的生存能力9109• 我们提出了一个新的混合连接块,它大致加倍的有效修剪因子达到与我们的方法。2. 以前的作品压缩神经网络而不过多影响其准确性意味着网络经常被过度参数化。Denil等人[5]已经表明,典型的神经网 络 是 过 度 参 数 化 的 ; 在 他 们 的 实 验 的 最 好 情 况Frankleet al的最新研究。[7]支持这样的假设,即标准神经网络中的大部分权重(通常为90%)被初始化为将导致消耗性特征的值。在本节中,我们回顾了六类减小神经网络大小的方法。神经网络压缩的目的是减少网络权值的存储要求。在[6,16]中,通过矩阵分解(例如奇异值分解)的低秩近似用于分解权重矩阵。通过只保留前特征值及其相关特征向量来降低因子在[8]中,使用量化来减少模型所占用的存储;已经考虑了标量量化和矢量量化(VQ)。使用VQ,可以从索引列表和向量字典重建权重因此,可以获得实际的计算节省。不幸的是,大多数网络压缩方法并不能减少推理过程中的内存和计算使用。神经网络修剪包括识别和移除对于实现高性能不必要的神经元。第一种方法中的一些使用二阶导数来确定网络对每个权重值的灵敏度[19,11]。最近,非常简单和有效的方法通过阈值化神经元的权重大小来选择要去除哪些神经元;较小的量值与不重要的中微子有关[10]。然后对生成的网络进行微调以获得更好的性能。尽管如此,实验结果(c.f.第5节)表明,变分修剪方法(下面讨论)优于前面提到的工作。稀疏学习(SL)方法的目的是在训练网络的同时对网络进行剪枝.一些方法向训练损失添加正则化函数,例如L1[21],Group LASSO [33]或L0范数的近似[22,28]。也提出了几种变分方法[1,17,27,24]。这些方法将网络修剪问题形式化为通过重新参数化技巧学习辍学概率密度函数(PDF)的参数的问题[17]。修剪是通过稀疏性之前,从变分证据下限(ELBO)。一般来说,SL方法不应用前-明确的约束,以限制使用的神经元的数量。为了执行预算,人们必须转向预算削减。修剪是一种方法,提供了一个不同的,通过一些方法来控制修剪网络的大小“网络大小”超参数。MorphNet [9]在使用L1稀疏化正则化器进行训练和将宽度乘数应用于层宽度以强制执行预算之间交替。与我们的方法相反,这项工作并不杠杆年龄辍学为基础的SL。超级网络[32] 一种通过在模块级稀疏化超级网络来找到满足资源预算的架构的方法。这种方法使用起来不如我们的方便,因为它需要另一种预算修剪方法是“学习-压缩”[4],其使用辅助坐标[3]的方法而不是反向传播。与这种方法相反,我们的方法采用了一种常用的梯度下降优化方案,并且不依赖于权重的大小作为其重要性的替代。架构搜索(AS)是一种在性能和参数化方面导致高效神经网络使用强化学习和大量的处理能力,NAS [35]已经学会了新的架构;一些先进的最先进的,其他的与类似有效的手工制作的模型相比参数相对较少。PNAS[20]和ENAS [30]通过削减必要的计算资源来扩展这项工作。这些作品已由EPNAS汇总[29]。AS与我们的工作线正交,因为我们的方法可以修剪学习的体系结构此外,AS实现起来更复杂,因为它需要通过强化学习来学习控制器模型相比之下,我们的方法具有广泛用于CNN训练的工具。3. 我们的方法3.1. 丢弃稀疏学习在我们介绍我们的方法的细节之前,让我们首先总结一下辍学稀疏学习(DSL)的基本概念令hl是由fl(hl−1)计算的CNN的第l个隐藏层的输出,f l(h l −1)是前一层的变换,通常是卷积,然后是批范数和非线性。如前所述,减少网络大小的一种方法是通过关闭神经元,使层hl-1的输出之间的和一个二元张量zl−1:hl=f l(hl−1<$zl−1)。(一)为了强制结构化修剪和关闭特征映射(而不仅仅是单个神经元),可以将zl−1重新定义为大小为dl−1的向量,其中dl−1是特征映射的数量。9110′′映射为hl−1。然后,zl−1通过与h l −1执行元素级乘积而应用于空间维度。正如你所看到的,Eq。(1)与dropout [25]的相同,其中zl−1是独立随机变量i.i.d.的张量。Bernoulli分布q(z)为了修剪网络,DSL将zl−1重新定义为随机变量从分布q(z)中采样|Φ),其参数Φ可以在训练模型的同时学习这样,网-工作可以学习哪些特征图要删除,哪些要保留。由于从分布中采样zl−1的操作是不可微的,因此通常的做法是使用重新参数化技巧重新定义它[17]:算法一:BAR培训数据:W:网络权重; Φ:r. v.参数化; TeacherLogits:数据集所有样本的类得分; λ:方法的所有超参数(包括预算);Prog∈[0,1]:训练过程的进度;g(·):等式2中引入的函数。(2)的论文;y:预测类的logits。结果:PrunedNet:修剪的神经网络对象,包括其权重。1WTrainUnprunedNetwork()2 TeacherLogits预测整体数据集(W)3 对于b∈Minibatch,4(x,y)5zg(Φ,),U(0,1)hl =fl(hl−1 公司简介l−1(2)6yxF或WardP ass(x,W,z)7lARLoss(y,y,z,λ,TeacherLogits,Prog)其中g是关于Φ可微并且关于Φ随机的连续函数,Φ是典型地从N(0,1)或U(0,1)采样的随机变量。为了加强网络修剪,通常包括:导致了两次亏损:L(W,Φ)=LD(W,Φ)+λLS(Φ)(3)其中λ是先验的权重,W是网络的参数,L D(W,Φ)是测量模型与训练数据的拟合程度的数据损失(例如, 交叉熵损失),而LS是稀疏性损失,其测量模型的稀疏程度。 当LS从一种方法到另一种方法变化时,q(z)之间的KL发散|Φ)和一些先验分布通常由变分方法[17,24]使用。注意在推理过程中,可以通过用随机变量的均值替换随机变量的均值来使网络具有确定性。3.2. 软硬修剪如前所述,g(Φl−1,n)是关于Φl−1可微分的连续函数。因此,而不是二进制,修剪方程。(2)变得连续(软修剪),因此在训练期间激活特征图的概率总是非零然而,为了实现实际的加速,最终需要为此,一旦训练结束,Φ的值被阈值化以选择要完全移除的滤波器。然后,网络可以仅在Ld损失的情况下被微调几个时期我们称之为3.3. 预算意识正规化(BAR)在我们的实现中,预算是“硬修剪”网络允许拥有的最大神经元数量为了计算该度量,可以将zq(z|(1)其具有E [ z]的平均特征图|Φ]= 0没有影响,可以被移除,而其他人则被保留。网络规模8(W,Φ)BackwardPass(l)9(W,Φ)最佳化步骤(W,Φ)10剪枝掩码g(Φ,E[])11 PrunedNet转换网络(W,PruningMasks)因此,是结构上“硬修剪”网络的总激活体积ΣΣV=1(E[z] l,i|Φ]>0)×Al(4)L i其中A1是层1的输出特征图的面积,并且1是指示函数。我们的训练过程在算法1中描述。预算约束对V施加小于允许的预算b的约束。如果嵌入到稀疏性损失中,该约束使损失在V > b时变为无穷大,否则为零。这是一个典型的不等式约束最小化问题,其二元(但不可微)行为不适合梯度下降优化。这种问题的一个典型解决方案是对数屏障方法[2]。这种屏障方法的想法是近似-通过可微对数函数来模拟零到无穷大的约束:−(1/t)log(b − V)其中t>0是调整近似精度的参数,并且其值在每次优化迭代中增加(参见[2]中的Algo11.1不幸的是,对数屏障方法需要用可行的解决方案(即,V< b),而这带来了两个主要问题。首先,我们需要计算Φ,使得Vb,这不是一个简单的任务。其次,这会导致类似于训练修剪网络的集合的设置,因为特征映射“打开”的概率非常低。这意味着过滤器将接收很少的梯度,并且将非常缓慢地训练。为了避免这种情况,我们需要在开始训练时使用比预算大的V因此,我们实现了屏障算法的修改版本。首先,正如本节其余部分所示,9111(a) 对数障碍函数(b)我们的障碍函数图1:比较屏障功能。(a)b=1时的公共势垒函数−(1/t)log(b-V)。(b)我们的障碍函数f(V,a,b),其中a=1。我们提出了一个障碍函数f(V,a,b)作为对数障碍函数(c.f.图①的人。第二,不是像屏障方法所要求的那样具有固定的预算b和在每次迭代时增长的参数t,我们消除了我们建议的前期损失如下:LBAR(Φ,V,a,b)=LS(Φ)f(V,a,b)(6)其中(a,b)是下预算裕度和上预算裕度,V是由等式(1)计算的当前“硬修剪”量。(4)LS(Φ)是V的可微逼近.注意,由于V对于Φ是不可微的,我们不能单独优化f(V,a,b)。LS(Φ)的内容与q(z)有联系|Φ)。在我们的例子中,我们使用硬混凝土分布(这是一个平滑的版本的伯努利分布),以及其相应的先验损失,都在[22]中介绍。该先验损失测量当前未修剪的特征图的数量的期望为了说明卷积的输出张量的空间维度,我们使用:用途:硬度参数T,并在每次迭代中降低预算约束。预算更新时间表在第3.4节中讨论。LS(Φ)=ΣLS(Φl)=LΣLHC(Φl)× AlL我们的障碍函数f(V,a,b)被设计为:• 当网络使用量超过预算时,它具有无穷大的值,即V > b;• 当预算充足时,它的值为零尊重,即V a;• 它具有C1连续性。我们定义了一个平滑过渡发生的范围,而不是在V > b的点处从零跳到无穷大为此,我们首先执行V的线性映射:V− aC=b− a使得V=ac=0(预算得到充分考虑),V=bc=1(违反了我们的约束Vb)。然后,我们使用以下函数:C2g(c)=1 −c它有三个有用的性质:(i)g(0)=0和g(0)′=1其中,LHC是硬混凝土先验损失[22],并且Al是层l的输出特征图的面积。因此,LS(Φ)度量网络中所有卷积运算的激活体积的期望值。注意,V也可以用另一个度量来代替,例如网络使用的总FLOP。在这种情况下,LS(Φ1)还应该包括前一层的特征图的数量的期望。3.4. 确定预算差额(a、b)如前所述,使用符合预算的体积初始化网络相反,我们在训练过程中迭代地移动修剪目标b具体来说,我们将它从开始时的b=VF转变为结束时的b=B(其中VF是未修剪的网络如图1b,这样做会导致向“屏障”的横向移动。这与其中硬度参数t随时间演变的屏障方法不同(参见图10)图la)。马特实际上,预算b的演变情况如下:0,(ii)limc→1−g(c)=∞,(iii)它具有C连续性。这些属性对应于前面提到的属性。为了得到所需的函数,我们将c代入g(c)并简化:b=(1−T(i))VF+T(i)B,迭代索引I=num. 训练迭代(七)f(V,a,b)=电压0V≤a(V−a)2(b−V)(b−a)aVb∞V ≥ b。(五)而a=B−10−4V F是固定的。这里T(i)是从第一次迭代时的零一直到最后一次迭代时的一的转换函数。虽然T(i)可以是线性过渡时间表,但实验结果表明,如图1,与对数势垒一样,V=b是渐近线,因为我们需要
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功