没有合适的资源?快使用搜索试试~ 我知道了~
1529HRank:使用高秩特征映射的过滤器修剪林明宝1,季蓉蓉1,5张玉,王艳2,张一辰1,张宝昌3,田永红4,5,邵凌61中国厦门大学信息学院人工智能系媒体分析与计算实验室,2美国Pinterest,3中国北京航空航天大学4北京大学,中国北京,5鹏程实验室,中国深圳6Inception Institute of Artificial Intelligence,阿布扎比,阿联酋lmbxmu@stu.xmu.edu.cn,rrji@xmu.edu.cn,yanw@pinterest.com,ethan. gmail.com,bczhang@buaa.edu.cn,yhtian@pku.edu.cn,ling. ieee.org摘要神经网络修剪提供了一个有前途的前景以便于在资源有限的设备上部署深度神经网络。然而,现有的方法仍然受到挑战的培训效率和劳动成本修剪设计,由于缺乏理论指导的非显着网络组件。本文提出了一种新的基于高阶特征图的过滤剪枝方法。我们的HRank受到这样一个发现的启发:无论CNN接收的图像批次数量如何,单个过滤器生成的多个特征图的平均排名总是相同的基于HRank,我们开发了一种方法,该方法在数学上用低秩特征映射来修剪过滤器我们修剪背后的原则此外,我们的实验表明,高排名的特征映射的权重在不引入任何额外约束的情况下,HRank导致在FLOP和参数减少方面的最新技术的显著例如,使用ResNet-110,我们实现了58。2%-通过删除59. 2%的参数,只有0. CIFAR-10的前1准确率为14%。有了Res-50,我们达到了43。8%-通过删除36. 7%的参数,仅损失1. 17%在最高层-ImageNet上的1个准确度。这些代码可以在https://github.com/lmbxmu/HRank上获得。*通讯作者1. 介绍卷积神经网络(CNN)在计算机视觉应用中取得了巨大成功,如分类[33,11],检测[7,30]和分割[25,2]。然而,它们对计算能力和内存占用的高要求阻止了大多数最先进的CNN部署在智能手机或可穿戴设备等边缘设备中。虽然在设计新的硬件和/或硬件特定的CNN加速框架(如TensorRT)方面取得了良好的进展,但它仍然是减少FLOP和CNN大小的重要需求,对准确性的妥协有限[4]。流行的技术包括滤波器压缩[6],参数量化[3]和网络修剪[10]。其中,网络剪枝在各种新兴应用中显示出广阔的前景。典型的工作要么修剪滤波器权重以获得稀疏权重矩阵(权重修剪)[10,9,1],要么从网络中删除整个滤波器(滤波器修剪)[18,19,20]。除了网络压缩之外,权重修剪方法还可以在专用软件[28]或硬件[8]上实现加速。然而,它们在通用硬件或BLAS库上的应用有限相比之下,过滤器修剪方法没有这个限制,因为整个过滤器被删除。在本文中,我们专注于过滤器修剪,以实现模型压缩(减少参数)和加速(减少FLOPs),旨在为低计算能力的设备提供一个过滤器修剪的核心在于过滤器的选择,过滤器应该以最低的精度损失产生最高的压缩比。基于过滤器评估函数的设计,我们根据经验将过滤器修剪分为两组,如下所述。1530属性重要性:根据CNN的内在属性这些修剪方法不修改网络训练损失。在修剪之后,通过微调来增强模型性能。在这些方法中,Huet al. [14]利用大型网络中输出的稀疏性来去除滤波器,零激活率很高。基于范数的剪枝[18]假设具有小范数的参数或特征的信息量较少,因此应该首先进行剪枝Molchanov等人[27]考虑了一阶梯度来评估过滤器的重要性,并删除了最不重要的过滤器。在[34]中,最终响应的重要性得分被传播到网络中的每个过滤器,并且通过删除最不重要的一个来修剪CNNHe等人[12]计算层中的几何中值,并修剪最接近此值的过滤器大多数滤波器评价函数的设计是ad-hoc的,这带来了低时间复杂度的优点,但也限制了加速和压缩比。自适应重要性:与基于属性重要性的方法不同,另一个方向将剪枝需求嵌入到网络训练损失中,采用联合再训练优化来生成自适应剪枝决策。Liu等[24]和Zhaoet al. [36]对批量归一化层的缩放因子施加稀疏性约束,允许具有较低缩放因子的Huang等人. [16]和Linet al. [23]引入了新的缩放因子参数(也称为掩码)来学习稀疏结构修剪,其中对应于为零的缩放因子的滤波器被移除。与房地产相比特征地图生成滤波器选择微调/推断阶段………………秩秩图1. HRank框架。在左列中,我们首先使用图像遍历卷积层以获得特征映射。在中间的一列中,我们估计每个特征图的排名,这被用作修剪的标准。右列显示修剪(红色过滤器)和微调,其中绿色过滤器被更新,蓝色过滤器被冻结。修剪的复杂性。此外,与现有的基于属性重要性的方法相比,HRank还导致加速和压缩的显著改进[18,34],实现了比现有技术的基于自适应重要性的方法更好的结果[13,24,26,16,23,36]。实施高等级特征图的动机来自经验和定量观察。如图2,我们发现单个过滤器生成的特征图的平均排名总是相同的,无论CNN看到了多少数据。这表明,深度CNN中特征图的排名可以仅使用一小部分输入图像来准确估计基于这个想法,我们从数学上证明了具有较低秩的特征图对准确性的贡献较小因此,可以首先移除生成这些特征图的过滤器我们在两个基准上进行了广泛的实验,基于重要性的自适应滤波器修剪方法和基于重要性的自适应滤波器修剪方法由于它们的联合优化而通常产生更好的压缩和加速结果。然而,由于损失被改变,所需的再训练步骤在机器时间和人力方面都是繁重的,通常需要另一轮超参数调整。对于某些方法,例如在基于掩模的方案中,修改的损耗甚至需要专门的优化器[16,23],这影响了基于自适应重要性的方法的灵活性和易用性总体而言,过滤器修剪仍然是一个开放的问题,到目前为止。一方面,我们追求更高的压缩/加速比,而另一方面,我们受到繁重的机器时间和人工劳动的限制(特别是对于基于自适应重要性的方法)。我们将这些问题归因于缺乏关于滤波器重要性和冗余的实践/理论指导。在本文中,我们提出了一种有效且高效的过滤器修剪方法,该方法探索了每个层中特征图的高秩(HRank),如图所示。1.一、 建议的HRank执行这样的一个指导,这是一个属性的重要性为基础的过滤器修剪。它消除了引入额外辅助约束或重新训练模型的需要,从而简化CIFAR-10 [17]和ImageNet [31],使用许多代表性的大型CNN模型,包括VGGNet [32],GoogLeNet [33],ResNet [11]和DenseNet [15]。结果证明HRank优于现有的过滤器修剪方法,包括基于属性重要性的方法[18,34]和最先进的基于自适应重要性的模型[13,24,26,16,23,36]。实验表明,即使在剪枝后的微调过程中冻结一部分具有高秩特征图的滤波器,模型仍然保持较高的精度,验证了我们的假设。总而言之,我们的主要贡献有三个方面:• 基于广泛的统计验证,我们empirically证明,由一个单一的过滤器生成的特征图的平均排名几乎不变。据我们所知,这是第一次报道这种观察• 我们从数学上证明,具有较低秩特征图的过滤器信息量较少,因此对保持准确性不太重要,可以首先删除。对于高秩特征图,情况正好相反。1531JJJ我我我1 2niJ1 2ni• 大量的实验证明了HRank在模型压缩和加速超过各种最先进的技术[18,34,13,24,26,16,23,36]。2. 相关工作过滤器修剪。与权重剪枝不同的是,滤波器剪枝根据一定的度量删除所有的滤波器。过滤器剪枝不仅可以显著减少存储空间的使用,而且可以降低在线推理的计算成本。如第1、过滤器剪枝可分为两类:属性重要性方法和自适应重要性方法。基于属性重要性的过滤器修剪旨在利用CNN的内在属性(例如,,α1-范数和梯度等),然后用它们作为判别较不重要滤波器的准则例如,[27]中的稀疏滤波器被认为不太重要,而[14]则修剪具有较小范数的滤波器。相比之下,基于自适应重要性的过滤器修剪通常使用附加约束重新训练网络以生成自适应修剪决策。如在第2节中所讨论的,过滤器修剪方法遭受低效的加速1.一、这两个问题给在资源有限的设备上部署深度CNN带来了根本性的挑战我们的困境归因于缺乏实际/理论指导的过滤器的重要性和冗余。我们专注于排名的特征图,并分析其有效性的理论和实验。注意,我们的方法与低秩分解方法正交。我们的目标是修剪过滤器生成低秩特征映射,而不是decom- pose过滤器。请注意,低秩方法可以集成到我们的模型中(例如,分解全连接层)以实现更高的压缩比和加速比。3. 该方法3.1. 符号假设预先训练的CNN模型具有一组K个卷积层1,并且Ci是第i个卷积层。Ci中的参数可以表示为一组3-锡永除了在SEC中讨论的相关工作之外 1,Luo等人[26]建立过滤器修剪作为优化问题,D filtersWCi ={Wi,Wi,.,Wi}∈Rni×ni−1×ki×ki 、其中基于来自下一层的统计信息修剪滤波器。He等人。 [13]提出了一种两步算法,包括LASSO回归以去除冗余滤波器和线性最小二乘法以构建输出。低阶分解如[5]所示,神经网络-作品往往被过度参数化,这表明,每一层中的参数可以从小的子集中精确地恢复。受此启发,低秩分解-其中第j个滤波器是Wi∈Rni−1×ki×ki。ni表示Ci中滤波器的数量,ki表示核大小。滤波器的输出,即 , 特 征 图 , 被 表 示 为 Oi={oi , oi , . ,oi}∈Rni×g×hi×wi,其中第j个特征映射oi∈Rg×hi×wi由Wi生成. g是输入图像的大小。 hi和wi是高度,特征图的宽度。在过滤器修剪中,WCi可以分为两组,即,要保留I C i ={Wi,Wi,., W i而一个子集,更少的重要性-已经出现了网络压缩的替代方案I1I2我ni1我我我它近似卷积运算,权重矩阵是两个较小的矩阵的低秩乘积.. WU i1 2ni2},在哪里Ii和Ui是第j个重要和唯一的索引三次与修剪不同,它旨在减少计算j j而不是改变滤波器的原始数量。为此,Dentonet al. [6]通过探索权重的适当低秩近似并将精度保持在原始模型的1%此外,Zhanget al. [35]考虑了后续的非线性单元,同时学习低秩分解以提供显著的加速。Lin等[21]提出了一个低秩分解-过滤器,分别。 ni1和ni2是重要和不重要的过滤器。 我们拥有:ICi <$UCi= W C i,ICi <$UCi= WCi和n i1+ n i2=n i。3.2. HRank滤波器修剪旨在从ICi中识别和移除不太重要的滤波器集合,这可以用公式表示为优化问题:卷积滤波器和全连接矩阵的作用,然后通过具有固定的等级 虽然低秩分解可以ΣKminδijΣniδijL(Wi),CNN的压缩和加速,通常在高压缩比下会导致讨论与权值修剪相比,滤波器修剪在降低模型复杂度方面更为有利S.T.i=1j=1Σniδij=ni2,j=1(一)是的此外,它的结构化修剪可以很容易地集成到高效的BLAS库,而无需专门的软件或硬件支持。然而,现有的文件-1为简单起见,卷积层包括非线性操作,例如,、池化、批量归一化、ReLU、dropout等。另外,为了便于FLOP运算和参数计算,本文忽略了这些非线性运算的代价。1532我JJJR(a) VGGNet-16(b)VGGNet-16(c)VGGNet-16(d)GoogLeNet 1。(e)GoogLeNet 5 3x3。(f)GoogLeNet 10 5x5.(g)ResNet-56 1。(h)ResNet-56(i)ResNet-56 55.(j)ResNet-110 1。(k)54.第五十四章(l)ResNet-110 108.(m)DenseNet-40 1。(n)DenseNet-40(o)DenseNet-40图2. CIFAR-10上不同卷积层和架构的特征图的平均秩统计。对于每个子图,x轴表示特征图的索引,y轴是训练图像的批次(每个批次大小设置为128)。不同的颜色表示不同的等级值。可以看出,每个特征图的等级(子图的列)几乎不变(相同的颜色),而不管图像批次如何。因此,即使是少量的图像也可以有效地估计不同架构中每个特征图的平均排名。其中δij是指示符,如果Wj被分组到UCi,则δij为1,当量(1),即特征图包含的信息越多,或0,如果W是被分组为ICi。L(·)测量重要性-相应的滤波器就越重要。将滤波器输入到CNN。因此最小化Eq. 等式(1)等于去除Ci中的n2个最不重要的滤波器。在这个框架中,大多数先前的工作诉诸于直接在滤波器上设计L(·)。我们认为,过滤器上L的ad-hoc设计忽略了输入图像和输出标签的分布,这可能是原因为什么基于属性重要性的方法显示出次优性能。相比之下,在本文中,我们建议在特征图上定义L。基本原理在于,特征图是可以反映滤波器属性和输入图像两者的中间步骤。如调查[37],即使在同一层内,各个特征图在网络中扮演不同的角色。此外,它们可以捕获输入图像如何在每个层中转换,并最终转换为预测标签。为此,我们重新计算Eq。(1)此说:因此,我们的关键问题是设计一个能反映特征图信息丰富度的函数L_(?)基于先验属性重要性的方法[14] 利用特征图的稀疏性。它从大量输入图像中计算零激活,并去除特征图中具有大部分零的过滤器。然而,这样的数据驱动方案严重依赖于输入图像的分布P(I),这是极其复杂的描述。虽然可以采用Monte-Carlo近似,但它仍然很难处理,因为需要大量的输入图像([14]中超过一万)来保持合理的预测。相反,我们利用特征图的秩,这被证明不仅是一种有效的信息度量,而且是P(I)上的稳定表示。我们首先将信息度量定义为:. iΣ.iΣ克鲁恩岛Σ。ΣΣLoj(I,:,:)=秩o(I,:,:),(3)minδiji=1j=1δijEIP(I)Loi(I,:,:),(二)其中Rank(·)是输入图像的特征图的秩I. 我们进行奇异值分解(SVD),S.T. Σnij=1δij=ni2,oi(I,:,:):JΣroi(I,:,:)=σiui vT其中I是输入图像,其从分布P(I)采样。L(·)用于估计由过滤器Wi生成的特征图〇i(I,:,:)。在我们J Ii=1′阿吉尔不(四)不j j=σiuivi+σiuivi,设置时,L(·)的期望与L(·)成比例,i=1i=r′+11533JJ我我我JJJJJJJ其中r= Rank(oi(I,:,:))且r′
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功