没有合适的资源?快使用搜索试试~ 我知道了~
数据驱动的深度神经网络稀疏结构选择黄泽浩[0000−0003−1653−208X]、王乃艳[0000−0002−0526−3331]TuSimple{zehaohuang18,winsty}@ gmail.com抽象。深度卷积神经网络在各种任务上释放了其非凡的力量。然而,由于其高计算复杂度,将最先进的模型部署到现实世界的应用中仍然是非常具有挑战性的。在没有大量实验和专家知识的情况下,我们如何设计一个紧凑而有效的网络?在本文中,我们提出了一个简单有效的框架,以端到端的方式学习和修剪深度模型。在我们的框架中,首先引入了一种新型的参数-缩放因子来缩放特定结构的输出,如神经元、组或残差块。然后,我们添加这些因素的稀疏正则化,并解决这个优化问题的一个修改的随机加速邻近梯度(APG)方法。通过将一些因子强制为零,我们可以安全地删除相应的结构,从而修剪CNN的不重要部分与其他可能需要数千次试验或迭代微调的结构选择方法相比,我们的方法在一次训练中完全端到端地训练,没有花里胡哨的东西。我们评估了我们的方法,稀疏结构选择与几个国家的最先进的CNN,并展示了非常有前途的结果与自适应的深度和宽度选择。代码可从以下网址获得:sparse-structurehttps://github.com/huangzehao/-selection.关键词:稀疏·模型加速·深度网络结构学习1介绍深度学习方法,特别是卷积神经网络(CNN),在计算机视觉、自然语言处理和语音识别等许多领域都取得了令人瞩目的成绩然而,这些非凡的性能是以高计算和存储需求为代价的。尽管现代GPU的能力在过去几年中飙升,但这些高成本仍然使CNN无法部署在延迟关键应用中,例如自动驾驶汽车和增强现实等。最近,已经提出了大量关于在推理时间加速CNN的工作。专注于加速预训练模型的方法包括直接修剪[9,24,29,13,27],低秩分解[7,20,49]和量化[31,6,44]。另一个研究流直接训练小型而有效的网络,例如知识蒸馏[14,33,35],新颖的架构设计[18,15]和稀疏学习。ing [25,50,1,43].在备用学习中,先前的作品[25]追求权重的稀疏性。2Z. Huang,N. 王然而,非结构稀疏性仅产生随机连接性,并且难以利用当前现成的硬件(诸如GPU)来在挂钟时间内加速模型推理为了解决这个问题,最近的方法[50,1,43]提出应用组稀疏性来保留硬件友好的CNN结构。在本文中,我们采取另一种观点来共同学习和修剪CNN。首先,我们引入一种新类型的参数神经元、组或块)。这些缩放因子赋予CNN更大的灵活性,参数非常少。然后,我们在这些缩放因子上添加稀疏正则化,以在训练期间将它们推到零最后,我们可以安全地删除零尺度因子对应的结构,得到一个修剪模型。与直接剪枝方法相比,该方法是数据驱动的,完全端到端。换句话说,网络可以基于每个任务的难度和需求来选择其独特的配置此外,模型选择与CNN的正常训练联合完成。我们不需要额外的微调或多阶段优化,并且它只在训练中引入较小的成本。总而言之,我们的贡献有以下三个方面:– 我们提出了一个统一的框架,用于CNN中的模型训练和修剪。特别地,我们通过在CNN的某些结构上引入缩放因子和相应的稀疏正则化,将其表示为联合稀疏正则化优化问题。– 我们利用一种改进的随机加速邻近梯度(APG)方法来联合优化CNN的权重和具有稀疏正则性的缩放因子。与以前的方法,利用启发式的方式来强制稀疏性相比,我们的方法享有更稳定的收敛性和更好的结果,而无需微调和多阶段优化。– 我们在几个最先进的网络PeleeNet,VGG,ResNet和ResNeXt上测试了我们提出的方法,我们可以相应地自适应地调整深度和宽度我们在CIFAR和大规模ILSVRC 2012图像分类数据集上表现出非常有前途的加速性能2相关作品网络剪枝是神经网络发展早期的一种方法。在Optimal Brain Damage [23]和Optimal Brain Surgeon [10]中,基于从损失函数导出的Hessian矩阵来移除不重要的连接。最近,Han等人。 [9]通过修剪绝对值小于给定阈值的权重来恢复这一想法。这种方法需要迭代地修剪和微调,这是非常耗时的。为了解决这个问题,Guo等人。 [8]提出了动态网络手术来在训练期间修剪参数。然而,不规则稀疏权重的性质使得它们仅产生有效的压缩,但在挂钟时间方面不能更快地推断。为了解决这个问题,一些工作通过在特定标准上评估神经元重要性来直接修剪神经元[16,24,29]这些方法都集中在去除神经元,去除影响最小的最终预测对数据驱动的深度神经网络稀疏结构选择3K∈另一方面,神经元的多样性也是需要考虑的重要因素最近,[27]和[13]将修剪公式化为优化问题。他们首先选择最具代表性的神经元,并进一步最小化重构误差,以恢复修剪网络的准确性。虽然神经元级修剪可以实现具有适度准确性损失的实际加速,但在没有迭代修剪和再训练的情况下,仍然难以以端到端的方式实现它们最近,Liu等人。 [26]使用与我们类似的技术来修剪神经元。他们稀疏化批量归一化(BN)[19]的缩放参数以选择通道。 Ye et al. [48]也将这一思想应用于神经元修剪。正如后面所讨论的,他们的作品都可以被看作是我们框架中的一个特例。深度学习模型的模型结构学习最近引起了越来越多的关注。已经探索了几种方法来学习CNN架构,而无需手工设计[2,51,32]。一个流是通过再学习[2,51]或遗传算法[32,46]探索设计空间。另一个流是利用稀疏学习或二进制优化。[50,1]在神经元的权重上添加组稀疏正则化,并在训练阶段将其最近,Wen et al. [43]提出了一种更通用的方法,该方法将组稀疏性应用于网络的多种结构,包括跳过连接中的过滤器形状,通道和层。 Srinivas等人[38]提出了一种新的可训练激活函数三态ReLU到深度网络中。他们通过将三态ReLU的参数强制转换为二进制来修剪神经元。具有跳过连接的CNN已经成为现代网络设计的主流,因为它可以通过跳过连接的帮助缓解超深网络中的梯度消失/爆炸问题[39,11]。在这些工作中,ResNet及其变体[12,47]由于其简单的设计原理和最先进的性能而引起了更多的关注。最近,Veit et al. [41]将ResNet解释为许多浅层网络的指数增强。他们发现,当去除单个残留块时,对性能的影响很小然而,删除越来越多的残差块将显著损害准确性。因此,加速这种最先进的网络架构仍然是一个具有挑战性的问题。在本文中,我们提出了一种数据驱动的方法来学习这种网络的体系结构。通过在训练过程中缩放和修剪残差块,我们的方法可以产生更紧凑的ResNet,具有更快的推理速度和更好的性能。3该方法将L层CNN中的卷积层l的权重考虑为4维张量Wl∈RNl×Ml×Hl×Wl,其中Nl是输出通道的数量,Ml表示输入通道的数量,Hl和Wl是卷积层的高度和宽度2维核那么我们可以用Wl表示第k个神经元的权重,莱耶湖缩放因子表示为1维向量λRs,其中S是我们考虑修剪的结构的数量 λi是指λ的第i个值。2)A(A)= A(B)= A(C)= A(|zi| − α)+。4Z. Huang,N. 王FC{}--R·图1:我们的方法的网络架构。表示残差函数。灰色块、组和神经元意味着它们是不活动的并且可以被修剪,因为它们的对应缩放因子是0。3.1稀疏结构选择给定由N个样本-标签对xi,yi1≤i≤N组成的训练集,则L层CNN可以表示为函数(xi,W),其中W = W11≤ 1 ≤L表示CNN中所有权重的集合。W是通过求解以下形式的优化问题来学习的:minW1ΣNNL(yi,C(xi,W))+R(W),(1)i=1其中,L(yi,C(xi,W))是样本xi上的损失,R(·)是应用于每个权重的非结构化正则化,例如, l2-norm作为权重衰减。先前基于稀疏的模型结构学习工作[50,1]试图学习CNN中的神经元为了达到这个目标,他们添加了组稀疏正则化g()将Wl上的Wl引入到等式1中,并且在训练期间将整个Wl强制为零另一个并发K KWen et al.的工作[43]采用了类似的方法,但在多个不同的结构上。这些想法很简单,但实现是不平凡的。首先,优化是困难的,因为有几个约束的权重同时,包括重量衰减和组稀疏。优化技术不当可能导致收敛速度慢,结果较差。因此,没有成功的尝试直接应用这些方法在大规模的应用程序与复杂的现代网络架构。在本文中,我们解决结构学习问题,在一个更简单和有效的方法。与直接将同一组中的权重推到零不同,我们试图强制该组的输出为零。为了实现这一目标,我们引入了一种新的参数 我们的目标是获得稀疏的λ。也就是说,如果λi=0,那么我们可以安全地删除相应的结构,因为它的输出对后续计算没有贡献。图1示出了我们的框架.1.231 x 13 x 31 x 11 x 13 x 31 x 11 x 13 x 31 x 10.72…00.41......数据驱动的深度神经网络稀疏结构选择5ǁ ǁR·NλG电话+1−(t−1)不′(t−1)形式上,我们提出的方法的目标函数可以被公式化为:1ΣNminW,λNi=1L(yi,C(xi,W,λ))+R(W)+Rs(λ),(2)其中s()是具有权重γ的λ的稀疏正则化。在本文中,我们考虑了其最常用的凸松弛l1-范数,定义为γλ1.对于W,我们可以通过具有动量的随机梯度下降(SGD)或其变种。F或λ,我们采用加速dΣ邻近梯度(APG)[30]方法求解ve为了更好地说明,我们缩短了1Ni=1 L(yi,C(xi,λ))为G(λ),并重新公式化λ的优化为:然后我们可以通过APG更新λ:minG(λ)+Rs(λ)。(三)d(t) =λ(t−1)+t−2(λt+1(t−1)-λ(t−2))(4)z(t)= d(t)−η(t)G(d(t))(5)λ(t)= proxη(t)Rs(z(t)),(6)其中,η(t)是迭代t处的梯度步长,并且由于Rs(λ)= γ λ 1,所以ρρο χηRs(·)=Snγ(·)。然而,这种公式对于深度学习并不友好,因为除了更新W的通道之外,我们还需要通过额外的前向-后向计算来获得(d(t)),这对于深度神经网络来说是计算昂贵的。因此,继在[40]中的推导中,我们将APG重新表示为基于动量的方法:z(t)=λ(t−1)+µ(t−1)v(t−1)-η(t)G(λ(t−1)+µ(t−1)v(t−1))(7)v(t)=Sη(t)γ(z(t))−λ(t−1)(8)λ(t)=λ(t−1)+v(t),(9)其中我们定义v(t−1)= λ(t−1)λ(t−2)和μ(t−1)=t−2。该公式与[40]中的改良Nesterov加速梯度(NAG)相似,除了更新vt。此外,我们简化了λ的更新,将λ(t−1)替换为λ′=λ(t−1)+µ(t−1)v(t−1),在[4]中对NAG进行了修改,该NAG已被广泛用于实际的深度学习框架[5]。我们的新参数λ’更新变为:λ′(t−1) -η(t)G(λ(t−1))(10)v(t)=Sη (吨)γ(z(t))−λ′+µ(t−1)v(t−1)(11)λ′(吨) =Sη(吨)γ(z(t))+μ(t)v(t)(12)在实践中,我们采用小批量随机方法并设置动量µ固定为一个恒定值。W和λ在每次迭代中都被更新改进后的APG实现简单有效。在下面,我们展示了它可以在MXNet中仅用10行代码实现[5]。z(t)=6Z. Huang,N. 王APG的MXNet实现将mxnet导入为mxdef apg_updater(weight,lr,grad,mom,gamma):z = weight - lr* gradz = soft_thresholding(z,lr* gamma)mom[:] = z -权重+0.9* mom权重[:] = z +0.9* momdef soft_thresholding(x,gamma):y = mx.nd.maximum(0,mx.nd.abs(x)-gamma)返回mx.nd.sign(x)*y在我们的框架中,我们将缩放因子添加到三种不同的CNN微结构中,包括神经元,组和块,以产生灵活的结构选择。我们将在下面介绍这三个案例注意,对于具有BN的网络,我们在BN之后添加比例因子以防止偏置参数的影响。3.2神经元选择我们引入缩放因子的通道修剪神经元的输出在训练之后,移除具有零缩放因子的滤波器将导致更紧凑的网络。 Liu et al. [26]采用了类似的网络瘦身思想。他们吸收的缩放参数到批量归一化的参数,并解决了次梯度下降的优化在训练期间,将绝对值低于阈值的缩放参数与文献[26]相比,本文方法更具有一般性和有效性。首先,引入比例因子比重用BN参数更具有通用性一方面,一些网络没有批量规范化层,例如AlexNet [22]和VGG [37];另一方面,当我们在对象检测或语义分割任务上微调预训练模型时,由于批量大小较小,批量规范化的参数通常是固定的。其次,[26]的优化是启发式的,需要迭代修剪和再训练。相比之下,我们的优化在端到端的方式下更稳定。最重要的是,[26]可以被看作是我们方法的一个特例。同样,[48]也是我们方法的一个特例。Ye等人 [48]和Liu等人 [26]之间的区别在于Ye等人采用ISTA [3]来优化缩放因子。我们将在实验中比较这些不同的优化方法。3.3块选择跳过连接CNN的结构允许我们跳过特定层的计算,而不会切断网络中的信息流通过堆叠残差块,ResNet [11,12]可以轻松地利用非常深的网络的优势。形式上,具有恒等映射的残差块可以通过以下公式来公式化ri+1=ri+Fi(ri,Wi),(13)数据驱动的深度神经网络稀疏结构选择7F不不其中ri和ri+1是第i个块的输入和输出i是残差函数,并且Wi是块的参数为了修剪块,我们在每个残差块之后添加缩放因子在我们的画面里-工作时,等式13的公式如下:ri+1=ri+ λiFi(ri,Wi).(十四)如图1所示,在优化之后,我们可以得到稀疏λ。缩放因子为0的残差块将被完全修剪,我们可以学习更浅的ResNet。之前的工作也为ResNet中的残差添加了缩放因子,这是加权残差网络[36]。虽然这两部作品有很多相似之处,但其背后的动机却不尽相同。他们的工作重点是如何在缩放因子的帮助下训练超深ResNet以获得更好的结果。特别是,它们将深度从100+增加到1000+。虽然我们的方法旨在降低ResNet的深度,但我们使用缩放因子和稀疏正则化来稀疏残差块的输出。3.4组选择最近,谢等。在ResNets中引入了一个新的维度-基数,并提出了ResNeXt[47]。形式上,他们将聚合转换表示为:ΣCA(x)=不i=1i(x,Wi),(15)其中i(x)表示具有参数Wi的变换,C是要聚合的i(x)的集合在实践中,它们使用分组卷积来简化聚合转换的实现因此,在我们的框架中,我们将C称为组的数量,并将加权A(x)公式化为:ΣCA(x)=i=1λiT i(x,Wi)(16)在训练之后,通过稀疏λ选择几个基本基数以形成最终变换。然后,具有零缩放因子的非活动组可以被安全地移除,如图1所示。注意,当每个组仅包含一个神经元时,神经元修剪也可以被视为组修剪的特殊情况。此外,我们可以结合块剪枝和组剪枝来学习更灵活的网络结构。4实验在本节中,我们评估了我们的方法在三个标准数据集上的有效性,包括CIFAR-10,CIFAR-100 [21]和ImageNet LSVRC 2012 [34]。对于神经元修剪,我们采用VGG16 [37],一种经典的普通网络来验证我们的方法。至于区块和组,我们使用两种最先进的网络,ResNet [12]和ResNeXt[47] 分别为了证明我们的方法的实用性,我们进一步在一个非常轻量级的网络PeleeNet [42]中进行了实验8Z. Huang,N. 王SSSVGGSSSVGG%误差%误差%误差××99323288303077282860 5 1015#参数#10660 2 4 68#flops#108260 5 1015#参数#106260 2 4 6 8#flops#108(a) VGG CIFAR10(b) VGGCIFAR10(c) VGGCIFAR100(d) VGG CIFAR100图2:误差与在CIFAR-10和CIFAR-100数据集上对VGG进行SSS训练后的参数和FLOP数量。9.598.587.571.522.539.598.587.57123534333231303 4 1.523534333231302.5 3 1 2 3 4#参数#105(a) ResNet20 CIFAR106.565.554.50.5 1 1.52#参数#106(e)ResNet164 CIFAR10#flops#107(b) ResNet20 CIFAR106.565.554.50.5 1 1.5 22.5#flops#108(f)ResNet164 CIFAR10#参数#105(c)ResNet20 CIFAR10025.52524.52423.5231.2 1.4 1.61.8#参数#106(g)ResNet164 CIFAR100#flops#107(d)ResNet20 CIFAR10025.52524.52423.5231 1.5 2 2.5#flops#108(h)ResNet164 CIFAR100图3:错误与在CIFAR-10和CIFAR-100数据集上对ResNet-20和ResNet-164进行SSS训练后的参数和FLOP的数量为了优化,我们采用NAG [40,4]和我们修改的APG来分别更新权重W和缩放因子λ。我们将W的权重衰减设置为0.0001,并将W和λ的动量固定为0.9。权重如[11]中那样初始化,并且所有缩放因子被初始化为1。所有实验都在MXNet中进行[5]。4.1CIFAR我们从CIFAR数据集开始评估我们的方法。CIFAR-10数据集由50 K训练和10 K测试RGB图像组成,具有10个类别。CIFAR-100类似于CIFAR-10,除了它有100个类。如[11]中所建议的,输入图像是从零填充的40 40图像或其翻转中随机裁剪的32 32。我们实验中的模型在单个GPU上以64的小批量进行训练。我们从0.1的学习率开始,训练模型240个epoch。在第120、160和200个时期,学习率除以SSSResNet-20SSSResNet-20SSSResNet-20SSSResNet-20SSSResNet-164SSSResNet-164%误差SSSResNet-164%误差%误差%误差%误差%误差%误差%误差%误差SSSVGGSSSVGGSSSResNet-164数据驱动的深度神经网络稀疏结构选择9SSSResNeXt-20%误差%误差11113131101030309929298871 1.5 22.5#参数#10571 2 34#flops#107281.6 1.8 2 2.22.4#参数#105281 2 3 4#flops#107(a) ResNeXt20 CIFAR107.576.565.550 0.5 1 1.52#参数#106(b) ResNeXt20 CIFAR107.576.565.550 1 23#flops#108(c) ResNeXt20 CIFAR100353025200 0.5 1 1.52#参数#106(d) ResNeXt20 CIFAR100353025200 1 2 3#flops#108(e) ResNeXt164CIFAR10(f) ResNeXt164CIFAR10(g) ResNeXt164 CIFAR100(h) ResNeXt164 CIFAR100图4:误差与在CIFAR-10和CIFAR-100数据集上的ResNeXt-20和ResNeXt-164的具有SSS训练的参数和FLOP的数量。VGG:基线网络是BN [19]1的修改后的VGG16。我们删除了fc6和fc7,只使用一个全连接层进行分类。我们在每个批次归一化层之后添加比例因子。图2示出了我们的方法的结果。同时报告参数和每秒浮点运算(FLOPs)2该方法可以节省约30%的参数和30% - 50%的计算量,而性能损失较小。ResNet:为了学习残差块的数量,我们使用ResNet-20和ResNet-164[12]as our baseline基线networks网络. ResNet-20由9个残差块组成。每个块具有2个卷积层,而ResNet-164有54个块,每个块中都有瓶颈结构。图3总结了我们的结果。很容易看出,我们的SSS比具有类似参数和FLOP的基线模型实现了更好的性能。对于ResNet- 164,我们的SSS在CIFAR-10和CIFAR-100中都产生了2.5倍的加速,性能损失约2%优化后,我们发现,在早期阶段的块修剪第一。这一发现与网络在其后期阶段应该花费更多预算的共同设计相吻合,因为随着感受野的增加,可能会出现越来越多样化和复杂的模式。ResNeXt:我们还在ResNeXt上测试了我们的方法[47]。我们选择ResNeXt-20和ResNeXt-164作为我们的基础网络。这两个网络都具有在残差块中具有32个组的瓶颈对于ResNeXt-20,我们专注于分组,因为其中只有6个残差块。对于ResNeXt-164,我们在组和块上添加稀疏性。图4示出了我们的实验结果。组修剪和块修剪都在参数和性能之间显示出良好的权衡,特别是在ResNeXt-164中。组和块修剪的组合在CIFAR-10中非常有效我们的SSS节省了约60%的FLOPs,同时实现了1%的精度提高在1在CIFAR-100数据集上,没有BN的情况下,该网络的性能非常差2乘加。SSSResNeXt-164SSSResNeXt-164%误差%误差%误差%误差%误差%误差SSSResNeXt-20SSSResNeXt-20SSSResNeXt-20SSSResNeXt-164SSSResNeXt-16410Z. Huang,N. 王×30292827262524230.5 1 1.5 2 2.53#参数#107(a) 参数30292827262524231.5 2 2.5 3 3.5 4 4.5#flops#109(b) FLOPs图5:Top-1错误与我们的SSS模型和ImageNet验证集上的原始ResNets的参数和FLOP数量ResNeXt-20,首先修剪第一和第二块中的组。类似地,在ResNeXt- 164中,主要修剪浅残差块中的群组。4.2ImageNet LSVRC 2012为了进一步证明我们的方法在大规模CNN中的有效性,我们使用VGG 16 [37],ResNet-50 [12]和ResNeXt-50(32 4d)[47]对ImageNet LSVRC 2012分类任务进行了更多实验。我们基于“fb.resnet”3的公开实现对于VGG 16和ResNet-50,4个GPU上的mini-batch大小为128,对于ResNeXt-50,8个GPU上的mini-batch大小为256优化和初始化类似于CIFAR实验中的那些。我们训练模型100个epoch。学习率被设置为初始值0.1,然后在第30、第60和第90个时期除以ImageNet数据集的所有结果总结在表2中。VGG16:在我们的VGG16修剪实验中,我们发现修剪所有卷积层的结果并不乐观。这是因为在VGG16中,以FLOP表示的FLOP的数量conv5层的总数量为27.7亿,仅占整个网络(309.7亿)的9%。因此,我们认为稀疏惩罚应该根据不同层的计算成本进行调整。[29]和[13]中采用了类似的想法。在[29]中,他们将FLOPs正则化引入修剪标准。 He等人[13]在他们的VGG16实验中没有修剪conv5层。在[13]之后,我们将conv5的稀疏惩罚结果可见于表2中。修剪后的模型节省了约75%的FLOPs,而参数节省可以忽略不计。这是因为全连接层有大量的参数(原始VGG16中为1.23亿),并且我们没有修剪全连接层以与其他方法进行公平比较。ResNet-50:对于ResNet-50,我们实验了三种不同的γ设置,以探索我们的方法在块修剪中的性能。为了简单起见,我们表示训练的3https://github.com/facebook/fb.resnet.torchResNet-18SSS-ResNeXtResNetResNet-26ResNeXt-35-BResNet-34ResNeXt-35-AResNet-32ResNet-41ResNeXt-38ResNeXt-41ResNet-50%误差ResNet-18SSS-ResNeXtResNetResNet-26ResNeXt-35-BResNet-32ResNeXt-35-AResNeXt-38ResNet-41ResNet-50ResNeXt-41%误差数据驱动的深度神经网络稀疏结构选择11级输出Conv1112×112conv256×56ResNet-50ResNet-26 ResNet-32 ResNet-417×7,64,步幅23×3最大池,步幅21× 1 64、1× 1,2563 ×3、 64×3 ×× ×× ×√× ××表1:ResNet-50的网络架构和我们为ImageNet修剪的ResNets√表示保留相应的块,而×表示修剪conv328×281× 1,1283× 3, 128×√√×√√√√√√√√1× 1,5121× 1,256√√√√√ √√√√ √√√√√√conv4 14×14 3×3, 256× 6×× ×1× 1,10241 ×1,512√√√√√conv5 7×73× 3, 512×3 ×× ×× ×1× 1, 20481×1全局平均池1000-d FC,softmax表2:ImageNet数据集上的结果。报告前1和前5个验证错误(单次裁剪)还示出了用于推断不同模型的参数和FLOP的数量这里,M/B分别表示百万/十亿(106/109)型号Top-1 Top-5 #参数#FLOPsVGG-1627.54 9.16138.3M30.97BVGG-1631.47 11.8130.5M7.667BResNet-5023.88 7.1425.5M4.089BResNet-4124.56 7.3925.3M3.473BResNet-3225.82 8.0918.6M2.818BResNet-2628.18 9.2115.6M2.329BResNeXt-5022.43 6.3225.0M4.230BResNeXt-4124.07 7.0012.4M3.234BResNeXt-3825.02 7.5010.7M2.431BResNeXt-35-A 25.43 7.8310.0M2.068BResNeXt-35-B 26.83 8.428.50M1.549BResNet-26、ResNet-32和ResNet-41等模型,具体取决于它们的深度。它们的结构示于表1中。所有剪枝后的模型都有一定程度的精度损失。 与原始ResNet-50相比,ResNet-41提供了15%的FLOPs减少0。7%的top-1精度损失,而ResNet-32节省了31%的FLOP,大约2%的top-1损失。图5显示了我们的SSS模型和ResNets作为函数的前1个验证错误12Z. Huang,N. 王表3:PeleeNet在ImageNet数据集上模型Top-1Top-5#参数浮点数PeleeNet(我们的实施)27.479.152.8M508MPeleNet-A27.859.342.4M436MPeleNet-B30.8711.381.6M2.93亿PeleNet-C32.8112.691.4M2.36亿参数和FLOP的数量结果表明,我们修剪的模型与原始手工制作的ResNets表现相当,同时需要更少的参数和计算成本。例如,与ResNet-34 [12]相比,我们的ResNet-41和ResNet-32都以更少的FLOP产生更好的性能。ResNeXt-50:对于ResNeXt-50,我们在残差块和组上添加稀疏性约束,这导致几个表2总结了这些模型的性能。学习的ResNeXt-41在ILSVRC验证集中产生24%的前1错误。它得到了与原始ResNet50类似的结果,但参数减少了一半,FLOPs减少了20%以上。在ResNeXt-41中,“conv 5”阶段中的三个残余块被完全修剪。这种剪枝结果与CNN的一般设计有些矛盾,值得进一步深入研究。4.3修剪轻量级网络采用轻量级网络,如MobileNet[15],ShuffleNet[45]进行快速推理是实践中更有效的策略。为了将来证明我们方法的有效性,我们在PeleeNet[42]中采用神经元修剪,这是一种最先进的高效架构,没有可分离的卷积。我们遵循[45]中使用在8个GPU上,mini-batch大小为1024,我们训练了240个epoch。表3显示了PeleeNet的修剪结果我们采用不同的γ设置,得到三个修剪网络。与基线相比,我们的pourned PeleNet-A保存约14%的参数和FLOPs,只有0.4%的top-1精度下降。4.4与其他方法相比我们将我们的SSS与其他修剪方法进行比较,包括SSL [43],过滤器修剪[24],通道修剪[13],ThiNet [27],[29]和[48]。我们比较SSL与我们的方法在CIFAR10和CIFAR100。所有模型都是从头开始训练的 如图6,我们的SSS实现了比SSL更好的性能,甚至SSL与微调.表4显示了ImageNet LSVRC2012数据集的修剪结果。据我们所知,只有少数作品报告了使用FLOP的ResNet修剪结果与过滤器修剪结果相比,我们的ResNet-32表现最好,FLOPs最少。至于通道修剪,使用类似的FLOP4,我们的ResNet-32产生比[13]提供的修剪的ResNet-50低1.88%的 top-1错误和低1.11%的 top-5错误至于[48],我们的ResNet-41以更少的计算预算实现了约1%的top-1错误。我们4利用所提供的网络结构计算了He模型的FLOP数据驱动的深度神经网络稀疏结构选择13SSS不带S的SSL基线finetuneSL与伊内图恩%误差1442131240113810369 3483271.01.52.02.53.03.54.0#flops1e7(a) CIFAR101.01.52.02.53.03.54.0#flops 1e7(b) CIFAR100图6:错误与我们的SSS型号和SSL型号的FLOP表4:ResNet和VGG16网络上几种最先进的修剪方法之间的比较模型Top-1Top-5浮点数ResNet-34-修剪[24]27.44-3.080B[24]第24话:我的世界27.128.953.070BResNet-50-pruned-B [24](我们的实施)27.028.923.400BResNet-50-pruned(2×) [13]ResNet-32(我们的)27.7025.829.208.092.726B2.818BResNet-101-修剪[48]25.44-3.690BResNet-41(我们的)24.567.393.473B[29]第二十九话VGG 16-修剪(5×)[13]VGG16-pruned(ThiNet-Conv)[27]-32.2030.2015.511.9010.47≈8.0B7.033B9.580BVGG 16-修剪(我们的)31.4711.807.667B还显示了VGG16中的比较。所有方法,包括信道修剪、ThiNet和我们的SSS,都比[29]有了显著的改进。我们的VGG16修剪结果与其他先进技术相比具有竞争力。我们在表5中进一步比较了我们修剪的ResNeXt与DenseNet [17]与DenseNet-121相比,我们的ResNeXt-38的FLOPs减少了14%,前5名的错误率降低了0.2%4.5不同优化方法我们在ImageNet实验中将我们的APG与其他不同的优化方法进行了比较,以优化λ,包括[26]中采用的SGD和[48]中使用的ISTA [3]。我们采用ResNet-50进行块修剪,并从头开始训练它。对于所有优化方法,稀疏惩罚γ对于SGD,由于我们在训练期间不能获得精确的零尺度因子,因此需要额外的超参数在我们的实验中,我们将其设置为0。0001经过训练,我们得到了一个ResNet-32-SGD网络。如表6所示,我们的ResNet-32-APG的性能优于ResNet-32-SGD。SSSL(不含SSL)基线伊内图恩finetuneSS%误差14Z. Huang,N. 王表5:修剪的ResNeXt-38和DenseNet-121之间的比较模型Top-1Top-5浮点数DenseNet-121 [7]25.027.712.834B[17]第17话:我的世界25.587.892.834BResNeXt-38(我们的)25.027.502.431B表6:不同优化方法之间的比较模型Top-1Top-5浮点数ResNet-32-SGD26.468.412.726B公司简介25.827.392.818B对于ISTA,我们发现网络的优化不能收敛。原因在于,当从头开始训练时,用于λ优化的ISTA的收敛速度太慢。在CIFAR数据集上采用ISTA可以得到合理的结果然而,在Ima-geNet中,很难将λ优化为具有小γ的稀疏,并且在我们的实验中,较大的γ将导致过多的零[48]通过从预先训练的模型进行微调来缓解这个问题他们还采用λ-W重新缩放技巧来获得小的λ初始化。与ISTA相比,我们的APG可以被视为改进的改进版本ISTA,即FISTA [3],已被证明在收敛性方面明显优于ISTA因此,在CIFAR和ImageNet实验中,我们的方法的优化是有效和稳定的表4中描述的结果还显示了我们的APG方法相对于ISTA的优势。我们训练的ResNet-41的性能优于[48]提供的ResNet-101-pruned。5结论在本文中,我们提出了一种数据驱动的方法,稀疏结构选择(SSS)自适应学习CNN的结构在我们的框架中,CNN的训练和修剪被制定为一个联合稀疏正则化优化问题。该方法通过将用于对特定结构的输出进行缩放的缩放因子推到零,从而去除对应于零缩放因子的结构为了解决这个具有挑战性的优化问题并使其适应深度学习模型,我们修改了加速邻近梯度方法。在我们的实验中,我们demonstrate非常有前途的修剪结果PeleeNet,VGG,ResNet和ResNeXt。我们可以根据手头的预算和每个任务的难度自适应地调整这些CNN的深度和宽度我们相信这些修剪结果可以进一步激发更紧凑的CNN的设计在未来的工作中,我们计划将我们的方法应用于更多的应用,如目标检测。研究更高级的稀疏正则化器(诸如非凸松弛)的使用以及基于不同结构的复杂度自适应地调整惩罚也是有趣的数据驱动的深度神经网络稀疏结构选择15引用1. Alvarez,J.M.,Salzmann,M.:学习深度网络中的神经元数量。在:NIPS(2016)2. 贝克湾古普塔岛Naik,N.,Raskar,R.:使用强化学习设计神经网络架构。In:ICLR(2017)3. Beck,A.,Teboulle,M.:线性反问题的快速迭代收缩阈值算法。SIAM journal onimaging sciences2(1),1834. Bengio,Y.,Boulanger-Lewandowski,N.帕斯卡努,R.:递归网络优化的研究进展工程. 03 The Dog(2013)5. 陈,T.,Li,M.,李,Y.,Lin,M.,王,N.,王,M.,Xiao,T.,徐,B.,张,C.,张志:MXNet:一个面向异构分布式系统的灵活高效的机器学习库。在:NIPS研讨会(2015)6. Courbariaux,M.,胡巴拉岛Soudry,D.El-Yaniv河Bengi
下载后可阅读完整内容,剩余1页未读,立即下载
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 利用迪杰斯特拉算法的全国交通咨询系统设计与实现
- 全国交通咨询系统C++实现源码解析
- DFT与FFT应用:信号频谱分析实验
- MATLAB图论算法实现:最小费用最大流
- MATLAB常用命令完全指南
- 共创智慧灯杆数据运营公司——抢占5G市场
- 中山农情统计分析系统项目实施与管理策略
- XX省中小学智慧校园建设实施方案
- 中山农情统计分析系统项目实施方案
- MATLAB函数详解:从Text到Size的实用指南
- 考虑速度与加速度限制的工业机器人轨迹规划与实时补偿算法
- Matlab进行统计回归分析:从单因素到双因素方差分析
- 智慧灯杆数据运营公司策划书:抢占5G市场,打造智慧城市新载体
- Photoshop基础与色彩知识:信息时代的PS认证考试全攻略
- Photoshop技能测试:核心概念与操作
- Photoshop试题与答案详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)