没有合适的资源?快使用搜索试试~ 我知道了~
基于核集的神经网络压缩Abhimanyu Dubey2001年、Moitreya Chatterjee 2002年和Narendra Ahuja2003年1麻省理工学院,Cambridge MA 02139,USAdubeya@mit.edu2 伊利诺伊大学香槟分校,Champaign IL 61820,USAmetro. gmail.com,n-ahuja@illinois.edu抽象。 我们提出了一种新的卷积神经网络(CNN)压缩算法的基础上coreset表示的过滤器。我们利用CNN权重和神经元激活(跨样本)空间中现存的冗余来获得压缩。我们的方法不需要再训练,易于实现,并在各种CNN架构中获得结合量化和Huffman编码,我们创建的网络提供了类似AlexNet的准确性,内存占用比原始AlexNet小832倍,同时还显著减少了推理时间。此外,这些压缩网络在微调时,也成功地推广到其他领域1介绍卷积神经网络虽然非常强大,但通常是资源密集型的[35,50,54,24,26]。例如,流行的CNN模型,如AlexNet [35]和VGG- 16 [50],有6100万和1.38亿个参数,分别消耗超过200 MB和500 MB的内存空间。深度CNN架构的这种特性降低了它们的可移植性,并对资源受限环境中的实现造成了严重的瓶颈[17]。此外,CNN架构的设计选择,如网络深度、滤波器大小和滤波器数量,似乎是任意的,纯粹是由特定任务的经验性能驱动的,几乎没有可解释的空间。此外,架构设计不一定完全优化网络以产生一定水平的精度,这使得这些模型的资源效率非常低。因此,几种现有方法已经试图降低这些模型的计算复杂性。旨在设计高效CNN架构的工作,如残差网络(ResNets)[25]和DenseNets[28]已经显示出减轻模型复杂性挑战的希望。这些CNN在分类上提供了更高的性能,其参数数量仅为其资源密集型对应物的一小部分。然而,尽管更紧凑,冗余仍然存在于这样的网络中,为进一步压缩留下了空间。在这项工作中,我们提出了一种新的方法,该方法利用CNN卷积滤波器组中现存的滤波器间依赖性来压缩预训练同等贡献。∗ ∗2A.杜比,M。Chatterjee和N. Ahuja计算密集型神经网络。此外,我们利用样本中的神经元激活模式来修剪掉不相关的过滤器。我们的压缩流水线包括基于样本激活模式精细修剪CNN每一层的过滤器,然后构建高效的过滤器核心集表示以利用过滤器间的依赖关系。我们的方法不需要再训练,适用于全连接和卷积层,并保持分类性能类似于未压缩的网络。我们在几个流行的CNN模型上展示了最先进的压缩率,包括多个ResNets,它们显示从9. 2× 162倍的压缩率超过现有的最先进技术。再加上深度压缩,我们还能够将其他流行的CNN模型,如VGGNet-16 [50]和AlexNet [35]分别压缩238倍和55倍此外,我们证明了过滤器冗余的存在,即使在高效的模型中,如SqueezeNet [29],通过将其参数减少50%,几乎没有分类性能的损失,为我们提供了AlexNet级别的精度,但与原始AlexNet模型相比,模型大小小832倍最后,我们根据经验验证了这些压缩CNN到新领域的可推广性。在下一节中,我们将讨论这一领域的相关前期工作。在第3节中,我们提出了我们的算法的细节。接下来是第4节,其中讨论了我们的方法与其他竞争压缩技术的经验评估。我们最后在第5节中总结,为这一领域的未来研究提供了一些途径。2相关工作网络压缩:压缩神经网络最近一直是一个活跃的研究兴趣。这一领域的先前工作可分为三个不同的类别。 第一类方法将注意力集中在参数高效的神经网络架构的构建上。例如,Iandola et al. [29]提出SqueezeNets,一种神经架构类,包含参数有效,完全卷积的“火”模块。这种架构的其他示例包括残差网络(ResNets)[25]和密集连接神经网络(DenseNets)[28],它们使用网络层之间的“跳过连接”,利用比先前最先进的模型小得多的模型提供更高的分类性能。最近的方法已经试图适应CNN架构,以便使它们鲁棒到常见的变换(例如,旋转),通过修改CNN的滤波器组[61,10]或通过在训练时强制稀疏性[2]。虽然这些方法似乎有希望,但它们未能充分利用内部过滤器依赖性,允许进一步压缩这种网络的空间。元学习方法试图通过在大量可能候选者的空间中搜索来破译最佳CNN架构。然而,这些技术是资源密集型的(需要超过400个GPU来运行),并且通常仅产生局部最优架构[46]。基于核集的神经网络压缩3第二大类压缩方法试图删除不重要的网络参数。Han等人[20]证明了一种有效的修剪-再训练方法,其基于通过其CNOP范数的修剪权重。Srinivas和Babu [53]去除了单个神经元而不是权重,结果令人印象深刻。排序过滤器的修剪的目的的重要性也已突出在Yu等人。,He et al. 和Molchanov等人 [60,27,42]。这些方法已经在Polyak等人的工作中进行了修改。[45]和Luo et al. [41],其集中于去除由滤波器的特性(诸如滤波器权重的范数等)分组的权重。Li等人[40]通过根据“重要性”标准从网络中移除过滤器来然而,这些算法中的重新训练步骤是时间密集的。最后,压缩技术的第三个主题是采用权重近似和信息理论原理来压缩神经网络参数。这种工作的早期例子是Denton等人的方法。[9]使用低秩近似来压缩神经网络的全连接层。然而,这种技术Lebdev等人解决了这个问题,并对完整的CNN采用低秩分解方法来构建更有效的表示,但他们的技术Rosenfield等人考虑通过将CNN滤波器表示为基集的线性组合来有效利用CNN滤波器[48]。但是我们的算法和我们的工作不同此外,还能够在由分解产生的近似权重中引入结构,例如稀疏性,这进一步有助于压缩。Han等人[20]介绍了深度压缩,它使用几个步骤,如权重修剪,权重共享和霍夫曼编码来减少神经网络的大小。然而,他们的算法需要特殊的硬件来进行压缩状态下的推理,这使得很难跨平台部署压缩网络。我们的方法旨在处理CNN压缩的每个主题中的缺点。相反,第一类的架构搜索,我们的方法是适用于各种各样的模型,是资源密集型,不需要任何再培训。虽然我们做修剪过滤器的工作的启发Polyak等人。[45](遵循压缩的第二个主题),然而,我们的滤波器修剪标准最后,我们的压缩技术不需要特殊的硬件运行推理不像韩等。[19]并扩展到全连接和卷积层,与Denton等人的低秩(SVD)方法不同。[9]的文件。用于点选择的核心集:核心集在计算几何中得到了广泛的研究。它们首先由Agarwal等人引入。[1]用于近似一组点与一个较小的集合,同时保留一些所需的标准,对k-均值和k-中位数问题。Badoiu等人[5]提出一个核心集公式,使用点的总集合的子集来聚类点,以生成最优解。Har-Peled和Mazumdar [22]给出了包含不在原始集合中的点 Feldman等人[13]证明弱∗ ∗4A.杜比,M。Chatterjee和N. Ahujak=1k=1可以用独立于底层数据分布的点数来生成核心集表示。这些公式最近已被应用于计算机视觉和机器学习[14,15,12]中的几个问题,并且主要用于近似d维中的一组n个点,源自域S,具有较小的一组n~n个点,同时提供一些标准,例如相似的成对距离。然而,在CNN压缩的背景下,核心集仍然未被探索,这构成了我们工作的一个主要3方法我们从一个完全训练的CNN开始,在没有重新训练的情况下压缩它,首先通过修剪不重要的过滤器,然后提取这些过滤器的有效我们的方法的一些主要优点包括:(i)缺乏再训练,因此大大减少了处理时间,(ii)我们的算法显著压缩卷积层和全连接层的能力,以及(iii)压缩CNN推广到新任务的能力3.1背景和符号一个n层神经网络可以描述为一个参数张量的并集每一层,W= ∪nWk.层k的参数Wk具有以下形状Nk×Ck×hk×wk,其中Nk表示滤波器的数量,Ck表示滤波器的输入通道数(因为这通常等于前一层中的滤波器数,Ck=Nk−1),hk和wk表示滤波器的高度和宽度我们可以将参数张量Wk重写为形状为Nk×(Ckhkwk)的2D矩阵Wk接下来,我们将滤波器的偏置附加到Wk,使其成为维度为Nk×(Ckhkwk+1)的矩阵众所周知,使用层的权重和偏置Wk的这种表示,我们可以将任何全连接层的输出激活表示为Wk与传入激活张量Ak−1的矩阵乘积。 这个概念可以通过以适当的Toeplitz形式重 新 转 换 矩 阵 来 扩 展 到 卷 积 层[56]。压缩的目标是获得参数为每层W=nWk,因此它更小,计算量更小。Ally有效,并保持最终的分类精度。我们的方法是构造每个层的参数的压缩滤波器<'coresets' W k ∈ R N k ×(C k h k w k +1)(其中N k Nk),使得输出动作(在Toeplitz矩阵乘法),很好地近似。在压缩后,确保由于这些核心集的元素通常是原始参数的线性函数,因此我们将另外需要解压缩矩阵Dk∈RNk×Nk,以从核心集表示开始近似初始参数集。基于核集的神经网络压缩5K核心集是用较小的集合来近似大的点集合的有效技术,该较小的集合不一定是原始集合的一部分,同时保留一些期望的属性,诸如平均成对距离、点集合的直径等。我们试图获得一个减少矩阵(coreset)Wk表示的每个层的原始滤波器权重Wk,我们通过3种不同的方法进行,如下所述。3.2k均值核集构建这种核心集的第一种方法是获得参数矩阵的简化表示,该参数矩阵近似于每个滤波器之间的任意样本的神经元激活的空间中的距离之和。 Feldman等人[14]证明这个问题等价于找到滤波器矩阵的低秩近似。这可表示如下:minWk−U′(一)U′,Σ ′,V′KKKFKK K他们使用距离和准则构造NkN个点的紧致集的公式′TW=U′Σ′,解压缩矩阵:D=V(二)KKkkk′T这里,矩阵U′、Σ′和V是N的截断版本k k kk矩阵Uk、Σk和VT,其满足以下性质:′TW=UΣVT≈W=U′Σ′V(三)K KKkkkK KUk,Vk是酉矩阵,而Σk是对角矩阵。这样的分解可以使用奇异值分解(SVD)来获得,其中截断的程度被指定为算法的输入。截断决定了我们得到的压缩量。直觉上,显著的截断虽然产生更大的压缩,但导致滤波器权重的较弱近似。这也导致输出激活的较弱近似,表现为分类准确性的下降我们在所有层中寻求最佳压缩,使得分类精度偏差不超过0.5%。用于压缩神经网络权重的SVD先前已经在[9]中进行了研究,然而,具有两个关键区别-(i)朴素SVD方法仅应用于神经网络的全连接层,成功有限,而我们的基于核心集的公式扩展到卷积和全连接层。连接的层,和(ii)我们的方法用于选择的组件的数量被保留Nk是数据依赖,基于训练数据的随机子集上获得的训练误差然而,由于这种分解并不显式地编码任何结构的近似权重,如稀疏性或考虑激活的影响,我们建立在这个公式,以创建更强的核心表示。这使我们有别于以前的工作,后者采用简单的低秩分解来构建有效的CNN[36]。∗ ∗6A.杜比,M。Chatterjee和N. AhujaX =原始过滤器组修剪过滤器集滤波器核心集解压缩矩阵近似过滤器集Fig. 1. 用于神经网络的层k的压缩流水线的视觉表示。如图所示,我们的算法分两步进行:(i)过滤器修剪,以及(ii)过滤器压缩。3.3结构化稀疏核集如果我们考虑前面的核心分解,优化问题可以可以重写为(受变量U′、Σ′和V′中的每一个的约束):minWk−U′k k k(四)U′,Σ ′,V′KKKFKK K为了诱导稀疏在所获得的分解,Jenatton等人。[30]引入了一种称为结构化稀疏PCA的技术,该技术优化了以下内容:minWk−U′Σ′V′TU′,Σ′,V′KKkFk 1KK K(五)若满足(U′·Σ′)m2=1m∈[1,Nk]K K这个问题可以通过两个凸问题的循环优化来解决[30],并为我们提供了具有结构稀疏性的分解。使用这样的公式背后的动机是获得在所使用的分量的数量上稀疏的分解,同时最小化重构误差。虽然SPCA [32]或NMF [39]等技术也构造了在投影空间中稀疏的表示,但该公式返回的分解也使原始空间中的近似稀疏,因此两者都是稀疏的W_k和D_k是稀疏的。更重要的是,这个公式告诉我们抛弃那些过滤器,其在Dk中的对应列向量是空向量,导致进一步压缩。超参数Nk 和λ被共同选择以便获得最大压缩,同时限制分类性能的偏差到未压缩网络的0.5%以内,对所有层进行压缩我们观察到,这种技术提供了比k-Means Coreset更多的压缩,然而,这没有考虑到重建过程中滤波器的相对重要性,这导致我们最终的coreset公式。3.4激活加权核集我们最终的核心集公式是通过引入一个相对重要性得分到每个过滤器(基于他们的激活幅度在训练基于激活的过滤器修剪基于核集的滤波器压缩基于核集的神经网络压缩7KK设置),同时诱导稀疏性。然而,如果我们试图通过最小化所有训练集激活的重建误差来直接学习coreset表示,则由于激活矩阵的大小及其退化性质,所产生的优化问题将难以解决。因此,我们采用一种替代公式:对于一层中的每个滤波器f,我们计算其“重要性”i(f)作为其在第k层中所有训练集点上的激活的平均值,在所有滤波器上归一化。这是由以下给出的i(f)=A¯(f)K;在哪里A¯(f)=1ΣTA(f)(j)kNkp=1 A¯(p)KkTkj=1这里,A(f)(j)是层k的第f个滤波器的激活,对于训练样本j,并且T表示训练样本的总数。然后我们构建通过平铺列向量(i(f))Nk来计算层k的重要性矩阵Ik,对于k f=1(Ck×hk×wk+1)次,创建重要性矩阵∈RNk×(Ckhkwk+1),其中每行表示每个滤波器的我们创建了这种形式的重要性矩阵,其中一行的每个元素都包含相同的值,因为我们不希望对特定过滤器的每个组件进行此外,请注意,我们可以在整个训练集的一次向前传递这将我们引向以下优化问题:minIk⊙(Wk−U′Σ′V′T)(七)U′,Σ ′,V′KKKFKK K这里⊙表示Hadamard(元素级)积。这个问题本质上是一个加权的低秩分解,之前由Srerbo和Jaakkola [52]和Delchambre [8]研究过,并且使用有效的期望最大化(EM)算法[52]来解决。这种加权公式背后的直觉是将相对重要性归因于对训练集中的激活贡献最大的过滤器(在Frobenius范数意义上平均),而不是试图重建所有激活具有相同的优先级。Molchanov等人 [42]也使用了压缩的重要性标准,而不是像我们一样将其用作优化目标中的加权方案,而是直接使用它来修剪“较少重要”滤波器。同样在这种情况下,我们通过选择可以保留的最少数量的组件来计算要保留的组件的最优数量。被选择为使得一旦整个网络已经被压缩,分类精度被限制在原始网络3.5基于激活的过滤器修剪在相关的工作中,Li等人观察到,在分类的背景下,并非所有的过滤器都同样重要[40]。这促使我们在coreset压缩之前执行预处理步骤,首先先发制人地消除不重要的过滤器,∗ ∗8A.杜比,M。Chatterjee和N. Ahujak−1K基于它们在训练集上的激活范数的平均值。这个步骤对于移除不重要的权重是必不可少的,因为修剪掉一层中的滤波器可以完全移除对应于该滤波器的权重,在下一层中也是如此,从而引起更大的稀疏性。使用前面的符号,我们可以写出滤波器W的大小为:大小(Wk)=Nk×(Ckhkwk+1)+NkNk设置Ck=Nk−1(因为前一层的输出激活数量等于下一层的输入通道数量),并使用Nk−1hkwk>> Nk,我们得到:size(Wk)∝Nk·Nk−1通过对完整过滤器的逐层修剪,我们因此可以设置后过滤器的数量将k−1层的过滤器修剪为N*>Nk>>1,滤波器修剪的总复杂度为O(n·A·log maxkNk),需要最多nlog maxkNk次前馈操作,对于大多数神经网络架构,我们发现这比微调的复杂度小得多。在过滤器修剪之后,我们进行到基于核心集的压缩阶段。该压缩程序可总结为以下步骤:对于网络中的每一层,从最浅的开始,执行以下操作:1. 根据所使用的核心公式计算完整的分解。2. 求出当n=1时可以保留的核心集滤波器的最小数目Nk在所有层的压缩之后,通过使用二分搜索在训练数据的随机子集上搜索,性能在coreset压缩之前的网络的0.5%内核心集构造集的复杂度是O(n·(B+sAlog N*)),其中B是矩阵分解的复杂度,0 ≤s≤ 1是使用的随机训练点的分数。对于我们的实验,我们设置s=0。005.我们发现对于大多数网络,sA log N *> B,因此压缩管道的总复杂度为O(n·A·log Nk·(1+s))。注意,在所有层上级联基于激活的修剪与核心集压缩之后,分类性能中允许的总偏差为1%(修剪为0.5%,核心集压缩为0.5%)。4实验评价我们在PyTorch [44]和Caffe [31]中实现了我们的方法,并在NVIDIATITAN Xp和Tesla GPU的集群上进行了评估。我们所有的实现和其他细节都可以在这里3.对于所有的实验,我们评估所有3 coreset建设技术,以及基于激活的修剪加上每个的影响,并报告所有结果连同基线和可比的最近的工作。基于激活的修剪流水线被报告为AP,而coreset技术被报告为(1)k均值Coreset(Coreset-K),(2)结构化稀疏Coreset(Coreset-S)和(3)激活加权Coreset(Coreset-A)。我们将我们的压缩性能与最近的压缩基准进行了比较,例如Fast-Food [59],SVD [9],基于权重的修剪[21],深度压缩[20],内存限制的CNN [6],压缩感知训练[2]等。3https://sites.google.com/site/metrosmiles/research/research-projects/compress_cnn∗ ∗10A.杜比,M。Chatterjee和N. Ahuja表1. 压缩(压缩)AlexNet [35]和VGGNet-16 [50]在ImageNet数据集上训练的结果,以及深度压缩的性能变化。方法AlexNet[35]VGGNet-16[50]Acc.(%)#参数Comp. 历元数Acc.(%)#参数 Comp.基线57.2261M1×-68.88138M1×[59]第59话:我的世界58.0730M2×----[59]第59话:我的世界57.1017M3.7×----柯林斯·科利[6]55.6015.3M4×----压缩感知[2]----67.664.17M2.2×SVD[9]55.9812.2M5×54068.8527M5.1×修剪[20]57.236.8M9×96068.1515M9.1×[18]第十八话56.913.47M17.7×140---Coreset-K56.979.15M6.7×1768.6915.6M9.2×Coreset-S56.785.76M10.5×2168.659.9M13.9×Coreset-A56.824.97M12.3×2368.019.2M15.1×AP+Coreset-K56.514.02M15.2×2668.569.81M14×AP+Coreset-S56.383.20M19.1×2867.908.1M17×AP+核心集-A56.483.68M16.5×2768.168.7M15.8×深度压迫(模型尺寸比较)基线57.226.9MB35×-68.7010.77MB49×Coreset-K56.804.17MB49×-68.512.52MB210×Coreset-S56.873.92MB52×-68.252.35MB225×Coreset-A57.194.01MB51×-68.432.41MB220×AP+ Coreset-K56.854.01MB51×-68.022.28MB232×AP+ Coreset-S56.703.85MB53×-68.162.26MB233×AP+核心集-A57.083.74MB55×-68.142.21MB 238×4.1MNIST上的LeNet-5我们评估的第一个架构是MNIST数据集[37]上的LeNet-5网络[38]。这是一个流行的网络压缩基准测试,最近的各种工作报告了高压缩值,这使得它成为一个非常有竞争力的设置。该实验的结果总结在表2中。我们可以看到,基于核心集的方法优于最近的工作舒适,与现有的最先进的18%的相对改善。4.2大规模ImageNet模型我们执行的下一组实验是在大规模ImageNet训练的模型上进行的-非常深的网络,如残差网络[24],AlexNet [35]和VGGNet-16 [50]。这些架构对于无数应用的计算机视觉任务[23,7]是普遍存在的,并且最近的几种压缩技术在这些模型上展示了显着的压缩,这使得它们成为评估压缩性能的适当基准。对于这些网络,我们还展示了将深度压缩(涉及量化,修剪,迭代重新训练)与我们的方法耦合的影响。表3总结了残差网络的经验评估。我们发现所有三种coreset方法都达到了最先进的性能,并且从以前的基线也有了大幅增加即使在ResNet-101这样的101层深度网络中,我们也能够获得一致的压缩,类似于较浅的ResNet。注意,这种改进完全是在基于核集的神经网络压缩11卷积层,当与全连接层相比时,其通常具有非常少的冗余我们还观察到,基于激活的修剪为我们带来了显著的压缩,本质上提供了级联的附加效果。表1总结了对AlexNet和VGGNet-16网络的实证评估,这是目前使用的两个最大的图像分类网络。我们通过将AlexNet压缩19倍,将VGGNet-16从其基线大小压缩17倍,证明了对最先进技术的实质性改进。当与深度压缩相结合时,这些比率分别增加到55倍和238倍,产生的模型的内存占用量小于4MB。结果还突出了基于激活的修剪(AP)提供的改进,这在Coreset-K和Coreset-S模型中最为突出表2. 压缩(压缩)LeNet-5上的结果方法Top-1 Comp.基线0.971×Wang等人[58个]0.9316×Han等人[20个]0.7439×Guo等人[18个国家]0.91108×SVD[9]0.92118×Ullric等人[55个]0.97164×AP+Coreset-K0.966165×AP+Coreset-S0.96192×AP+核心集-A0.96193×4.3SqueezeNet表3. 残差网络的压缩结果。色谱柱Acc.和Comp.分别表示Top-1精度和压缩系数。方法残差网络RES-18RES-50Res-101Acc. Comp. Acc. Comp. Acc. Comp.基线[25]0.691×0.751×0.761×SVD[9]0.698×0.749.1×0.759.2×修剪[21]0.685.2×0.746.2×0.76 六、4×N2N[4]0.679.0×0.738.7×0.748.5×ThiNet[41]--0.71 2.06×--ThiNet[41]--0.68 2.95×--AP+Coreset-K 0.69 13.3× 0.74 14.7× 0.75 15.1×AP+Coreset-S 0.6815×0.74 15.8× 0.75 16.2×AP+核心集-A 0.69 14.2× 0.74 15.6× 0.75 15.8×我们评估我们的方法上的高度参数高效的SqueezeNet架构,以评估是否进一步的冗余仍然存在这样的压缩后,在架构空间中,如果这些可以通过有效的滤波器组表示消除。我们发现,尽管开始时参数比AlexNet少50倍(同时提供相同的性能),但SqueezeNet可以进一步压缩(结果见表4)。使用我们的方法,我们能够将SqueezeNet压缩到其参数的一半,在100倍压缩下提供与AlexNet相似的精度。通过与深度压缩耦合,我们获得了模型大小的净压缩到16。64倍于原始模型(或AlexNet的832倍),同时保持分类性能。4.4补充意见此外,我们观察到Coreset-S和Coreset-A制剂始终优于Coreset-K。我们推测大的现存模型冗余倾向于∗ ∗12A.杜比,M。Chatterjee和N. Ahuja表4. 与在ImageNet数据集上训练的SqueezeNet [ 29 ]的比较。我们可以压缩SqueezeNet以创建一个比AlexNet [35]小832倍的模型,并具有相同的性能。方法Acc.(%)Num. 的Params比Rel. 到AlexNet基线57.011.24M1×50×Coreset-K56.830.73M1.7×85×Coreset-S56.920.65M1.9×95×Coreset-A56.940.61M2×102×AP+ Coreset-K56.520.65M1.9×95×AP+ Coreset-S56.440.59M2.1×109×AP+核心集-A56.800.60M2×103×深度压缩(比较模型尺寸)基线56.040.47MB10.14×507×Coreset-K56.080.29MB16.1×805×Coreset-S56.050.28MB16.34×817×Coreset-A56.030.29MB16.23×812×AP+ Coreset-K56.310.27MB16.50×825×AP+ Coreset-S56.150.26MB16.64×832×AP+核心集-A56.180.27MB16.56×828×表5. LeNet-5层式压缩我们的方法(由标识符表示)与以前的 工作。条目表示压缩后保留的参数的分数层Han等人[21日] Guo等人[18个国家]KS一 AP+K AP+S AP+Aconv10.660.140.06 0.03 0.030.020.020.02conv20.120.030.04 0.03 0.030.020.020.02FC10.080.010.04 0.03 0.030.020.010.02FC20.190.040.02 0.01 0.020.010.010.01以有利于在目标中明确地强制稀疏性的Coreset-A和S公式化。此外,我们观察到,对于更深的模型,Coreset-S倾向于实现最大的压缩。表5显示了我们的算法与LeNet-5上最先进的压缩技术相比所实现的卓越分层结果清楚地显示了使用我们的压缩技术的有效性,特别是对于卷积层。有关其他CNN的逐层压缩结果,请参阅补充资料。运行时分析:我们还在训练和推理性能方面进行了运行时分析的研究由于我们不进行再训练,因此我们的方法要快得多-在我们的硬件上,AlexNet的一次向前传递和我们使用此作为基本测量来比较总训练时间(包括coreset操作)。表1描述了不同方法的训练时间比较。先前最先进的方法,动态网络手术[18],需要140个时期(以时间单位计),而我们的方法最多需要28个时期(以时间单位计),显著减少了80%。在推理过程中,我们也观察到推理时间的减少,这可以通过使用有效的张量乘法来优化[51]。在ResNet-50,VGGNet-16和AlexNet上,每个epoch的原始(未压缩)运行时间分别为:36 ms,45 ms和8ms我们最好的运行时间基于核集的神经网络压缩13权重修剪@0.0025权重修剪@0.0023宁n基Pru激活Top-1验证准确度500.540 0.4300.3200.2100.00.2 0.4 0.60.80.10.300.250.200.150.100.050.00压缩压缩图 二、 AlexNet上基 于激活的修剪(AP)与基于 权 重 的 过 滤 器 修 剪(没有重新训练)的比较。图三. 在 AlexNet 上 评 估的所有核心集压缩技术的分类性能随压缩的变化[35]。见图4。AlexNet上基于激活的Pruning(AP)与Han等人和Li等人[21,40]的Pruning技术的比较。网络(使用Coreset-S)的平均速度分别为19 ms、21 ms和3.5ms,平均提高约50%。4.5消融分析为了证明在我们的方法中单个组件的效果,我们也进行了一些消融研究。我们首先比较了基于激活的修剪(AP)对三种模型-AlexNet[35],VGGNet-16[50]和SqueezeNet[29]上的所有核心集压缩技术的影响,并观察到修剪有利于所有核心集压缩方法,如表1和4所述。接下来,我们比较基于激活的修剪与基于权重的修剪,没有重新训练,李等人的修剪技术。 [40]关于AlexNet 这些比较的结果总结在图2中。 我们在所有的压缩比获得一致的更好的性能,证实了数据相关的过滤器修剪方法的优点超过那些基于过滤器权重的大小。最后,我们分析了AlexNet分类模型上所有coreset压缩技术的性能随压缩 因 子的变化, 如 图 3 所 示 。 我 们 观 察 到 , Coreset-K( 有 和 没 有AP),而强于SVD和修剪方法,恶化得更快,相比其他相应的coreset技术。该观察结果在所有模型中是一致的对于其他结果,更多的逐层压缩分析和过滤器可视化,我们建议读者参考补充材料。4.6领域适应性为了测量我们的压缩模型对新任务的通用性,我们根据[41]中提出的实验管道,在域自适应基准上评估压缩模型。我们评估了压缩CNN模型VGGNet-16 [50]在目标域自适应数据集上- CUB-2011[57]和Stanford-Dogs [34],两个流行的细粒度图像分类数据集。这些结果总结在表6中。我们观察到,我们的压缩coreset模型能够提供分类性能权重-Pruni核心集-K核心集-S核心集-A AP+核心集-K AP+核心集-S AP+核心集-AngSVDTop-1验证准确度∗ ∗14A.杜比,M。Chatterjee和N. Ahuja表6. 基于核心集的压缩在域适应任务上的性能。数据集模型#参数Top-1VGG-16 Finetune(FT)138M72.30%从零开始138M44.27%CUB-2011SVD[9]+ FT修剪[21]+ FT27M15M53.65%57.45%AP+Coreset-S + FT8.1M70.66%VGG-16 Finetune(FT)138M61.92%从零开始138M27.16%斯坦福犬SVD[9]+ FT修剪[21]+ FT27M15M40.84%43.28%AP+Coreset-S + FT8.1M55.91%接近未压缩的网络,同时超过由其他技术压缩的网络。这也展示了核心集压缩模型对域适应任务的多功能性。5结论和未来工作在本文中,我们介绍了一种新的技术,利用冗余卷积滤波器权重和样本激活的空间,以使用长期存在的核心集概念,结合基于激活的池化技术来减小神经网络大小。在我们的算法流水线中缺乏再训练步骤使得实现简单。经验评估表明,我们的算法在压缩各种流行的CNN架构方面优于所有其他竞争方法。我们的研究结果揭示了即使在最压缩的CNN中也存在冗余,例如SqueezeNets,可以进一步利用它来提高效率。我们的方法不需要任何重新训练,可以扩展到卷积和和完全连接的层,并且可广泛地推广到不同的神经网络模型,而不会是计算密集型的。因此,我们希望我们的算法将作为一个有价值的工具,以获得更精简,更有效的CNN。作为未来的工作,我们希望将我们的算法应用于压缩其他类型的深度神经网络,例如适用于时变序列输入的递归神经网络(RNN)致谢:我们感谢教授。 Ramesh Raskar的深刻评论。MC还感谢Po-hanHuang提供了有益的讨论,并感谢NVIDIA提供了用于本研究的GPU。引用1. Agarwal,P.K.,Har-Peled,S.,Varadarajan,K.R.:通过核心集的几何近似。Combinatorial and Computational Geography52,1基于核集的神经网络压缩152. Alvarez,J.M.,Salzmann,M.:深度网络的压缩感知训练。在:神经信息处理系统的进展。pp. 8563. Antol,S.,阿格拉瓦尔,A.,卢,J,Mitchell,M.Batra,D.,LawrenceZitnick,C.Parikh,D.:Vqa:可视化问答。在:IEEE计算机视觉国际会议论文集。pp. 24254. Ashok,A.,Rhinehart,N. Beainy,F.,Kitani,K.M.:N2N学习:通过策略梯度强化学习的网络到网络压缩。arXiv预印本arXiv:1709.06030(2017)5. B¯adoiu,M., Har-Peled,S.,因迪克,P.: 通过核心集近似聚类。在:第三十四届年度ACM计算理论研讨会论文集。pp. 250-257. ACM(2002年)6. 柯林斯医学博士Kohli,P.:内存受限的深度卷积网络。ArXiv预印本arXiv:1412.1442(2014)7. Dai,J.,Qi,H.,Xiong,Y.,李,Y.,张,G.,Hu,H.,魏云:可变形卷积网络。CoRR,abs/1703.062111(2),3(2017)8. Delchambre,L.:加权主成分分析:加权协方差特征分解方法。皇家天文学会月刊446(4),35459. Denton,E.L.,等:利用卷积网络中的线性结构进行有效评估。在:NIPS2014年的进展。pp.第126910. Dieleman,S.,De Fauw,J.,Kavukcuoglu,K.:利用卷积神经网络中的循环对称性。arXiv预印本arXiv:1602.02660(2016)11. Dosovitskiy,A.,Springenberg,J.T.,Riedmiller,M.,Brox,T.:用卷积神经网络进行判别式无监督特征学习。在:神经信息处理系统的进展。pp.76612. Dubey,A.,Naik,N.,Raviv,D.,Sukthankar河Raskar,R.:基于核心集的自适应跟踪。arXiv预印本arXiv:1511.06147(2015)13. Feldman,D.,Monemizadeh,M.,Sohler,C.:一种基于弱核心集的k均值聚类算法。在:第二十三届年度研讨会的计
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功