没有合适的资源?快使用搜索试试~ 我知道了~
深度学习网络的激活映射压缩和加速管道的研究及应用
1通过激活映射压缩Samsung Semiconductor,Inc.g.geor@ samsung.com摘要深度学习革命为我们带来了一系列广泛与此同时,我们也一直在观察计算和内存需求方面前所未有的需求,这使得在低功耗设备中有效使用神经网络几乎无法实现。为此,我们提出了一个三阶段的压缩和加速管道,稀疏化,量化和熵编码卷积神经网络的激活映射稀疏化增加了激活图的表示能力,从而加快了推理速度和更高的模型准确性。 Inception-V3和MobileNet-V1可以加速到1。6倍,精度提高0. 38%,0。在ImageNet和CIFAR-10数据集上分别为54%。 量化和熵编码较稀疏的激活图导致在基线上的较高压缩,从而减少网络扩展的存储器成本。 Inception-V3和MobileNet-V1激活图,百分百百分之九十百分之八十百分之七十百分之六十百分之五十百分之四十百分之三十百分之二十百分之十0%的百分比181614121086420基线稀疏稀疏_v2基线稀疏Sparse_v2量化为16位,压缩高达6倍,精度增加0。36%,0。分别为55%。1. 介绍随着深度神经网络在2012年的复兴[33],研究界的努力已经导致了大量的神经网络架构[20,55,59,60],这些架构一再证明模型准确性的提高。为这种改进的性能付出的代价是计算和内存成本的增加例如,AlexNet [33]需要7.2亿次乘法累加(MAC)运算,并具有6000万个参数,而VGG-16 [55]需要惊人的150亿MAC虽然这些网络的MAC操作的大小和数量可以用现代台式计算机来处理(主要是由于图形处理单元(GPU)的出现),但低成本的MAC操作可以在更大的范围内进行。图1.非零激活百分比(以上)和压缩ResNet-34每层的Sion增益(下图)。从左到右的顺序对应于网络中的第一层到最后一层Baseline对应于原始模型,而sparse和sparse_v2对应于我们的稀疏模型。诸如移动电话和自动驾驶车辆之类的电动设备不具有以可接受的速率处理输入的资源(特别是当应用要求实时处理时)。因此,非常需要开发系统和算法,使我们能够在有限的资源预算下运行这些网络。已经有大量的作品试图通过各种不同的方法来满足这一需求。大多数方法[18,26,29]试图近似神经网络的权重,以减少参数数量(模型压缩)和/或MAC数量(模型加速)。例如,修剪[18]通过减少70857086非零权重的数量。稀疏张量可以被更有效地压缩,从而导致模型压缩,而与零权重的乘法可以被跳过,从而导致模型加速。加速模型不仅可以通过零跳过权重,还可以通过零跳过输入激活图来实现,这一事实广泛用于神经网络硬件加速器[2,17,31,47]。大多数现代卷积神经网络(CNN)使用整流线性单元(ReLU)[11,16,42]作为激活函数。因此,很大一部分激活是零,可以在乘法中安全地跳过而不会有任何损失。然而,尽管最后几个激活图通常非常稀疏,但前几个通常包含很大比例的非零值(见图1)。1基于ResNet-34架构的示例[20])。同样,前几层处理的是最大的输入/输出。因此,通过有效地进一步稀疏化这些激活图,网络将在数据库使用和模型加速然而,与作为可训练参数并且可以在训练期间容易地适应的权重不同,如何增加激活的稀疏性因此,本文的第一个贡献是演示如何在不降低精度的情况下做到这一点。此外,如果需要,也可以使用我们的方法来权衡精度,以增加稀疏性,以针对各种不同的硬件规格。激活图大小在功耗中也起重要作用。在低功率神经网 络 硬 件 加 速 器 ( 例 如 , Intel Movidius NeuralCompute Stick 1、DeepPhi DPU 2和其他众多产品)的片上内存极其有限。加速器被绑定了从片外DRAM访问权重和激活,这需要比片上访问大约100倍的功率[21],除非输入/输出激活映射和层的权重适合片上存储器。在这种情况下,激活标测图压缩实际上是不存在的。比例比重量压缩重要得多考虑Inception- V3的第二个卷积层,它将149×149×32张量作为输入,并重新计算。转一个大小147×147×32,总计1,401,920 val-在ue权重张量的大小为32×32×3×3,总共只有9,216个值。输入/输出激活的总数实际上比权重的数量大150倍。有效地压缩激活可以显著减少在片上和片外存储器之间传输的数据量,进而显著降低功耗。因此,我们的第二个贡献是展示一个有效的(有损)压缩管道,可以大大减少激活图的大小,同时仍然1https://ai.intel.com/nervana-nnp/2http://www.deephi.com/technology/保持精度不下降的说法遵循[18]中权重压缩的脚步,其中作者提出了一个由修剪,量化和霍夫曼编码组成的三阶段流水线,我们将此流水线适用于激活压缩。我们的管道也包括三个步骤:稀疏化、量化和熵编码。稀疏化旨在减少非零激活的数量,量化限制值的位宽,熵编码有损压缩激活。最后,重要的是要注意,在包括但不限于自动驾驶、医学成像和其他高风险操作的若干因此,这些应用要求对网络进行有损压缩.此外,激活图的无损压缩也可以有益于训练,因为它可以允许增加批量大小或输入大小。因此,我们的最终贡献在于无损压缩的制度。我们提出了一种新的熵编码算法,称为稀疏指数哥伦布,指数哥伦布的变体[61],在压缩激活图方面优于所有其他测试的熵编码器。我们的算法利用稀疏性和其他统计特性的地图,有效地有损压缩。该算法可以在有损压缩被认为是不可接受的情况下独立存在,也可以用作三级有损压缩管道的最后一步。2. 相关工作很少有研究涉及激活图压缩。古多夫斯基等人[13]通过将激活图向下投影到二进制向量,然后应用非线性降维(NDR)技术来压缩激活图。然而,该方法修改了网络结构(在某些用例中可能是不可接受的),并且它仅被证明比简单量化激活图的性能稍好。Dong等人[10]尝试预测哪些输出激活为零,以避免计算它们,这可以减少执行MAC的数量然而,他们的方法也修改了网络结构,此外,它没有增加激活图的稀疏性Alwani等人[3]通过重新计算激活映射而不是存储它们来减少网络在[9]中,作者进行随机激活修剪,对抗性辩护然而,由于他们的采样策略,他们的方法在100%采样时达到最佳结果,稀疏度没有变化。在无损激活图压缩方面,Rhuet al. [52]审查三种办法:游程编码[53]、零值压缩(ZVC)和zlib压缩[1]。前两个是硬件友好的,但只有在稀疏度高时才能实现竞争性压缩,而zlib7087nnn由于其高计算复杂度而不能在实际中使用。无损权重压缩已经以霍夫曼编码(HC)[18]和算术编码[51]的形式出现在文献中。最近,许多轻量级架构出现在文献中,试图在计算复杂性和模型准确性之间取得平衡[22,24,54,68]。典型的设计选择包括引入1×1逐点卷积和深度可分离卷积。选项。 这些网络是从零开始训练的- 提供了一种替代最先进的解决方案。当这种轻量级架构不能实现足够高的准确性时,可以交替地压缩和加速最先进的网络。修剪权重[14,18,19,34,36,40,48,63,69]和权重和ac的量化。tivations [6,7,12,15,18,23,50,64,67]是当前使用的标准压缩技术。其他流行的方法包括通过用低秩因子分解[25,29,56]或分组卷积[26]替换卷积核来修改预先训练的网络人们可能会错误地认为我们的算法是一种执行激活修剪的方法,类似于权重修剪[18]或结构化权重修剪[38,39,43,66]。后者以较粗的粒度修剪权重,并且在这样做时也影响激活图稀疏性。然而,我们的方法动态地影响稀疏性,而不是像所有其他方法那样静态地影响稀疏性,因为它不会永久地删除任何激活。相反,它鼓励较小比例的激活针对任何给定的输入,同时仍然允许网络在需要时充分利用其容量。图2.基于Eq.3 .第三章。用红色表示xl的两个梯度贡献。cn(w)是数据项(通常是交叉熵),r(w)是正则化项(通常是L2范数)。训练样本n和层l的激活后映射∈ {1,. . . ,L}表示为xl,n∈ RHl× Wl× Cl,其中Hl,Wl,Cl表示xl,n的行数、列数和通道数.当上下文允许时,我们写xl而不是xl,n以减少混乱。x0对应于输入神经网络。预激活映射由y1 ,n表示。请注意,由于ReLU可以就地计算,因此在实际应用中,yl,n通常只是中间结果。因此,我们的目标是压缩xl而不是yl。这些量的解释性说明见图2绝大多数现代CNN架构通过使用ReLU作为激活函数来实现激活映射的稀疏性,这对映射的内在结构我们建议通过显式编码成本函数来帮助神经网络的训练,以最小化,我们希望实现更稀疏的激活映射。我们通过对所有层在xl上放置稀疏诱导先验来这样做,通过如下修改成本函数:最后,激活图正则化以各种形式出现在文献中,例如dropout [57],batch1ΣNE(w)=E0(w)+NΣLαlxl,n1标准化[27],层标准化[4]和L2regu-n=1l=0ΣN(二)[41]. 此外,增加活动的稀疏性,在稀疏自编码器[44]中,使用Kullback-Leibler(KL)发散和CNN1=Nn=1c′(w)+λwr(w),ReLU [11].在Glorotet al.[11],其中,对于l=1,,L−1,α0=αL=0和c′,作者使用ReLU作为激活函数来诱导激活图上的稀疏性,并简要讨论了使用L1正则化来增强它。然而,regularizer的效用并没有得到充分的探讨。在这项工作中,我们扩大由下式给出:c′(w)=cn(w)+ΣLαlxl,n1.(三)l=0这个想法并将其应用于CNN激活图压缩。3. 学习稀疏激活图CNN模型中采用的典型成本函数E0(w)由下式给出:由方程式2.我们使用L1范数来诱导xl上的稀疏性,xl作为最优的代理,但难以优化,通过凸松弛的L0该技术已广泛用于各种不同的应用,包括稀疏编码[45]和LASSO [62]。虽然使用上述成本函数从头开始训练神经网络是可能的,但我们的目标是稀疏化activa。1E0(w)=NΣNn=1cn(w)+λwr(w),(1)现有最先进网络的位置图。因此,我们修改了Eq.的成本函数。1到Eq。2仅在预训练网络的微调过程中。持续时间其中n表示训练样本的索引,N是最小批量大小,λw≥0,w∈Rd表示网络7088通过微调,我们通过计算以下量来反向传播梯度7089ǁnn2nl,nl,nl,n22(a) Conv2d_1a_3x3(b)Conv2d_2b_3x3(c)6b_branch7x7dbl_2(d)7a_branch7x7x3_3(e)7b_branch3x3dbl_3a图3.从ImageNet(ILSVRC 2012)[8]训练集的1000个输入图像中提取的早期(Conv2d_1a_3x3,Conv2d_2b_3x3),中间(6b_branch7x7dbl_2)和晚期(7a_branch7x7x3_3,7b_branch3x3dbl_3a)层的对数空间中稀疏化之前(上方)和之后(下方)的激活图的Inception-V3直方图。激活图被量化为8位(256个二进制)。histogram显示了稀疏指数Golomb利用的两个重要事实:(1)稀疏性:零值的可能性比任何其他值高出大约一到两个数量级,以及(2)长尾:大值具有非平凡的概率。稀疏化的激活图不仅具有较高的零值百分比(启用加速),而且具有较低的熵(启用压缩)。训练一个神经网络,试图学习最优的通过极小化层差的方法得到的“mal”映射n.不稳定的,不稳定的 =cn·xl,n产出:阿格夫lAlberxl,n萨科茨阿格夫lx拉克 阿姆斯壮、(四)1加仑=n·xl+1,nl+1,n+Alberxl,nnAlberxl,n·l,n阿格夫l尽量减少WLNn=1l=1y-yl,n2(六)其中W1对应于层L的权重,是从层l+1反向传播的梯度,是层l+1相对于输入的输出梯度,并且由下式给出当r(wl)≤ C,l = 1,. . . ,L.由方程式我们还明确地添加了正则化项r(wl)。C≥0是控制正则化量的预定义常数。在下文中,我们将r(wl)限制为L2范数,r(wl)=2,因为它是迄今为止使用的最常见的正则化子,并在xl上添加L1先验:拉克=αl ∂ǁxl,nǁ1+αl,ifxj=−αl, 如果xj>0<0,(5)Σ ΣΣNΣLΣL2xjxjl,n尽量减少yαlxl,n1l,nl,n0,如果xj=0n=1l=1l=0其中xj对应于(矢量化)的第j个元素当l = 1,. . . ,L.(七)xl,n.图2示出了示例层l的计算图和梯度流。注意xl可以通过xl+1和直接影响c′,所以我们需要总结我们可以重新安排方程中的项7(并利用αL=0的事实)如下:这两个贡献都是在反向传播期间。尽量减少1ΣNΣLPl,nwlNn=1l=1(八)4. 一种稀疏编码解释最近,CNN和卷积稀疏编码(CSC)之间的联系以类似的方式,也可以解释我们提出的解决方案在方程。2通 过镜 头进 行稀疏编码。让17090222其中:当l=1,.. .,LPl,n=y<$l,n−yl,n<$2+αl−1<$xl−1,n<$1。(九)我们假设对于任何给定的层L,存在我们试图学习的最优的底层映射Y=LCol-lect iv ely{y=l},.,L定义了从网络的输入到输出的最优映射,而网络计算{yl=fl(xl-1;wl)}l=1,.,L. 我们可以想到对于线性映射fl(xl−1;wl),例如卷积层和全连通层计算的映射,fl(xl−1; wl)也可以写为矩阵向量乘法,通过某个矩阵Wl,yl=Wlxl−1。Pl可以重写为Pl=yl−Wlxl−12+αl−1xl−11,7091LLL可以被解释为最优映射的稀疏编码。因此,Eq。8相当于计算预激活特征图的稀疏5. 量化我们使用线性(均匀)量化将浮点激活映射xl映射到q算法1稀疏指数哥伦布输入:非负整数x,阶数k输出:比特流y函数encode_sparse_exp_Golomb(x,k){如果k==0:y=encode_exp_Golomb(x,k)否则:quantxl−xminq如果x==0:x=l×(2lx最大值−x最小值- 第1段、第(10)段设y=L l否则:其中x_min=0,x_max对应于训练集中的层l中的x_l的最大值。大于xmax的值在测试集被修剪。虽然我们在量化后不重新训练我们的模型,但文献表明它可以提高模型的准确性[5,37]。我们还相信,同时进行量化和稀疏化的联合优化方案可以进一步改善我们的结果,并将其留给未来的工作。6. 熵编码已经设计了许多不同的方案来有效地存储稀疏矩阵。压缩稀疏行(CSR)和压缩稀疏列(CCS)是在压缩和算术运算执行效率之间取得平衡的两种表示。然而,这样的方法假设整个矩阵是可用的之前,设y=返回y}输入:比特流x,阶数k输出:非负整数y函数decode_sparse_exp_Golomb(x,k){如果k==0:y=decode_exp_Golomb(x,k)否则:如果x[0]==设y=0否则:设y=1+decode_exp_Golomb(x[1:],k)返回y}存储,这在我们所有的用例中不一定都是正确的例如,在神经网络硬件加速器中,数据通常在计算时被流式传输,并且非常需要以在线方式进行压缩。因此,我们将重点转移到可以一次编码一个元素的算法上。本文提出了一种新的熵编码算法-稀疏指数哥伦布算法(SEG)(Alg. 1)基于有效指数Golomb(EG)[61,65]。赛格杠杆-年龄对两个事实:(1)大多数激活图是稀疏的,(2)激活图的一阶概率分布具有长尾。指数哥伦布算法在H.264中最常用[28]和HEVC [30]视频压缩标准,k=0作为标准参数。当数据稀疏时,k=0是特别有效的参数值,因为它为值x=0分配长度为1的码字。 然而,在这方面,它还要求值的概率分布迅速下降。激活图具有非平凡数量的大值(特别是对于q=8,12,16),使得k=0无效。图3通过显示来自Inception-V3的层样本的激活图的直方图来证明这一事实。虽然这个问题可以通过使用更大的k值来解决,但结果是值x=0不再用1位码字编码(参见表1)。SEG通过专用于x = 0的码字'1'并通过预先附加生成的码字来解决这个问题算法k= 0k= 4k= 8k= 12EG15913SEG1111表1.对于不同的k值,EG和SEG之间x= 0的码字长度比较。对于x > 0,EG带有稀疏指数Golomb可以在Alg中找到。1,而在补充材料3中提供指数哥伦布[61]。7. 实验在实验部分,我们研究了两个重要的应用:(1)加速计算和(2)压缩激活图。我们在三个不同的数据集上 进 行 了 实 验 , MNIST [35] , CIFAR-10 [32] 和ImageNet ILSVRC 2012 [8] 以 及 五 个 不 同 的 网 络 ,LeNet-5 [35]变体4,MobileNet-V1 [22],Inception-V3[20],ResNet-18 [20]和ResNet-34 [20]。这些网络涵盖了各种各样的网络规模,设计复杂性和计算效率例如,与AlexNet不同,[33] 和VGG-16 [55]是过度参数化和容易https://georgios0.github.io/cvpr2019/3https://github.com/pytorch/examples/7092数据集模型变体Top-1 Acc.前5名Acc.行为的(%)提速MNISTCIFAR-10表2.通过稀疏化加速神经网络括号中的数字表示准确度的变化行为的(%)显示非零激活的百分比。表3.ResNet-18/34和LeNet-5上各种最先进的加速方法之间的比较对于ResNet-18/34,我们以粗体强调了Sparse_v2,这是加速和准确性之间的一个很好的折衷p= 70%表示修剪后的网络具有30%的非零权重。加速计算遵循[10]的惯例,其中将其报告为1 -(稀疏模型的非零激活)/(基线的非零激活)。为了压缩,MobileNet-V1是一种已经被设计为减少计算 和 存 储 器 消 耗 的 体 系 结 构 此 外 , 压 缩 和 加 速Inception-V3和ResNet架构在实际应用中具有巨大的实用性,因为它们是最先进的图像分类网络之一加速度在表2中,我们总结了我们的加速结果。基线获得如下:LeNet-5和MobileNet-V1 5是从头开始训练的,而Inception-V3和ResNet-18/34是从PyTorch [49]资源库6获得的。根据相应数据集的验证集计算报告的结果加速因子的计算方法是将基线的非零激活次数除以非零激活次数。5https://github.com/kuangliu/pytorch-cifar/6https://pytorch.org/docs/stable/torchvision/(a) MobileNet-V1(b)Inception-V3图4.MobileNet-V1和Inception-V3分别在CIFAR-10和ILSVRC2012的验证集上训练期间的Top-1准确性和激活图稀疏性的演变红色箭头指示为稀疏模型选择的检查点。Sparse模型的一些例子。对于Inception-V3和ResNet-18/34,我们提出了两个稀疏变体,一个目标是精确度的 最 小 降 低 ( sparse ) , 另 一 个 目 标 是 高 稀 疏 度(sparse_v2)。我们的许多稀疏模型不仅在其激活图中具有增加的稀疏性,而且还表现出增加的准确性。这暗示了一个众所周知的事实,即稀疏激活图具有很强的代表性[11] 并且引入稀疏性的先验的添加不一定要为稀疏性权衡准确性。当仔细选择正则化参数时,数据项和先验可以一起工作,以改善Top-1 ac精确性和激活图的稀疏性。Inception- V3可以加速多达1.6倍,精度提高0。38%,而ResNet-18实现了1.8倍的速度提升,精度下降了1%。LeNet- 5可以加速2.3倍,MobileNet-V1可以加速1.6倍,最后ResNet-34可以加速1.2倍,所有网络都表现出准确性增加。 正则化参数αl可以是:独立地适用于每一层或设置为公共常数。我们尝试了各种配置,稀疏89.71%(+0.54%)-29.54%1.61×基线75.76%92.74%53.78%1.0×inception-V3稀疏76.14%(+0.38%)92.83%(+0.09%)33.66%1.60×Sparse_v268.94%(-6.82%)88.52%(-4.22%)25.34%2.12×基线69.64%88.99%60.64%1.0×ImageNetResNet-18稀疏69.85%(+0.21%)89.27%(+0.28%)49.51%1.22×Sparse_v268.62%(-1.02%)88.41%(-0.58%)34.29%1.77×网络算法Top-1 Acc. Change前5名科目变更提速我们的(稀疏)+0.21%+0.28%百分之十八点四我们的(Sparse_v2)-1.02%-0.58%43.5%ResNet-18LCCL [10]-3.65%-2.30%百分之三十四点六BWN [50]-8.50%-6.20%百分之五十XNOR [50]-18.10%-16.00%百分之九十八点三我们的(稀疏)+0.69%+0.18%百分之十八点四ResNet-34我们的(Sparse_v2)LCCL [10]-5.53%-0.43%-3.50%-0.17%48.4%百分之二十四点八LeNet-5基线百分之九十八点四五-53.73%1.0×稀疏98.48%(+0.03%)-23.16%2.32×7093百分百100% 100% 100% 100%百分之八十百分之六十百分之四十百分之二十0%的百分比基线稀疏百分之八十百分之六十百分之四十百分之二十0%的百分比基线稀疏百分之八十百分之六十百分之四十百分之二十0%的百分比基线稀疏Sparse_v2百分之八十百分之六十百分之四十百分之二十0%的百分比基线稀疏Sparse_v2百分之八十百分之六十百分之四十百分之二十0%的百分比基线稀疏Sparse_v210 25 30 15 208 20156 1520 10104 102 50 0基线稀疏基线稀疏100基线稀疏Sparse_v250基线稀疏Sparse_v250基线稀疏Sparse_v2(a) LeNet-5(b) MobileNet-V1(c) inception-V3(d) ResNet-18(e) ResNet-34图5.稀疏化前后各种网络架构每层非零激活(上图)和压缩增益(下图)的百分比数据集模型算法t= 1 000t= 10 000t= 30 000t= 60 000MNISTLeNet-5SEG1.700×1.700×1.701×1.701×ZVC[52]1.665×1.666×1.666×1.667×数据集模型算法t= 500t= 1 000t= 2 000t= 5 000ImageNetinception-V3SEG 1.763× 1.769× 1.774× 1.779ZVC[52] 1.652× 1.655× 1.661× 1.667×模型变体测量float32 uint16 uint12 uint8LeNet-5(MNIST)基线Top-1加速压缩98.45% 98.44%(-0.01%)98.44%(-0.01%)98.39%(-0.06%)-3.40×(1.70×)4.40×(1.64×)6.32×(1.58×)稀疏Top-1加速压缩98.48%(+0.03%)98.48%(+0.03%)98.49%(+0.04%)98.46%(+0.01%)-6.76×(3.38×)8.43×(3.16×)11.16×(2.79×)MobiletNet-V1(CIFAR-10)基线Top-1加速压缩89.17% 89.18%(+0.01%)89.15%(-0.02%)89.16%(-0.01%)-5.52×(2.76×)7.09×(2.66×)9.76×(2.44×)稀疏Top-1加速压缩89.71%(+0.54%)89.72%(+0.55%)87.72(+0.55%)89.62%(+0.45%)-5.84×(2.92×)7.33×(2.79×)10.24×(2.56×)表4.评估集大小对压缩性能的影响改变大小会产生较小的压缩增益变化,这表明较小的数据集可以作为评估目的的良好基准。所选择的参数在补充材料中共享为了确定选定的αl,我们使用了基于网格的超参数优化。每个网络的微调所需的历元数各不相同,如图所示。4说明。我们通常选择训练90-100个epoch,然后选择最合适的结果。在图3中,我们显示了稀疏化前后选定数量的Inception-V3层稀疏模型的直方图具有更大比例的零值,导致模型加速以及更低的熵,导致更高的激活图压缩。图4,我们展示了MobiletNet-V1 和Inception-V3在CIFAR-10和ILSVRC 2012的验证集上训练评估的准确性和激活图稀疏性如何变化在同一张图中,我们在表2中显示了选择用于报告结果的检查点。选择检查点权衡精度和稀疏性,以及选择哪个点取决于手头的应用程序。在图的顶行5我们显示了五个网络每层非零激活的百分比 虽然一些层(例如,MobileNet-V1中的最后几层)在非零激活方面表现出巨大的减少,大部分加速来自于有效地稀疏化网络的前几层。最后,在表3中,我们将我们的方法与其他最先进的方法以及权重调整算法[18]进行了比较。特别是,注意[18]在增加激活的稀疏性方面没有效果。总的来说,我们的方法可以实现高加速度(精度略有下降)和高精度(加速度较低7094表 5. 量 化 对 SEG 压 缩 的 影 响 。 LeNet-5 压 缩 了 11 倍 ,MobileNet-V1压缩了10倍。在括号中,我们报告了精度和压缩增益在float32基线上的变化。压缩。我们在每个网络的激活图的子集在表4中,我们显示了测试大小对两种算法的压缩性能的影响,SEG和零值压缩(ZVC)[52]在MNIST和ImageNet上。评估压缩会产生作为大小函数的微小差异。在所有研究的网络和数据集上都可以进行类似的观察在随后的实验中,我们使用MNIST的整个测试集来评估LeNet-5 , 使 用 CIFAR-10 的 整 个 测 试 集 来 评 估MobileNet-V1,并从ILSVRC 2012的验证集中随机选择5,000张图像来评估Inception-V3和ResNet-18/34。然而,Top-1/Top-5准确度是在整个验证集上测量的在表6中,我们总结了压缩结果。压缩增益定义为压缩前后我们评估我们的方法(SEG)与指数哥伦布(EG)[61],霍夫曼编码(HC)[18],零值压缩(ZVC)[52]和ZLIB [1]。我们报告了16位量化模型的Top-1/Top-5精度SEG和EG的参数选择为见表7。 SEG在两个方面都基线和稀疏模型验证了它是一种非常有效的编码器,适用于具有高稀疏性和长尾的分布。SEG实现了几乎7倍的压缩增益,LeNet-5,在MobileNet-V1和Inception-V3上几乎是6倍,ResNet架构中的压缩增益超过4倍,同时精度也有所提高。同样清楚的是,我们的稀疏化步骤导致更大的7095数据集模型变体比特Top-1 Acc.前5名Acc.SEG[61]第六十一话[18]第十八话ZVC [52]ZLIB [1]MNISTLeNet-5基线基线float32百分之九十八点四五98.44%(-0.01%)---3.40×(1.70×)-2.30×(1.15×)-2.10×(1.05×)-3.34×(1.67×)-2.42×(1.21×)CIFAR-10ImageNet表6.压缩激活图。我们报告Top-1/Top-5准确度,括号中的数字表示准确度的变化报告了各种最先进算法的总压缩增益(在括号中,我们还报告了压缩增益,但不包括来自量化的增益)。SEG在所有模型和数据集上都优于其他最先进的算法。ImageNetinception-V3ResNet-18基线k = 12k= 7稀疏k = 10k=0稀疏_v2k=13k=0基线k = 12k= 10稀疏k = 12k=0稀疏_v2k=11k=0在图的底行中。5我们显示了各种网络的每层压缩增益。最后,我们在表5中研究了量化对SEG压缩的影响。我们评估了LeNet-5和MobileNet-V1在q=16,12,8位的基线和稀疏模型我们报告的精度变化和压缩增益相比,浮点基线模型。LeNet-5可以压缩多达11倍,a 0。01%的精度增益,而MobileNet-V1可以压缩10倍,0. 45%的精度增益。表7.SEG和EG参数值。参数是在一个单独的训练集上选择的,该训练集由从每个数据集中随机选择的1000张SEG通过将值分为两组来更好地拟合数据分布:零和非零。当搜索最佳参数值时,我们将参数拟合到非零值分布。EG将参数同时拟合到两个集合,从而产生次优解。压缩增益,这可以通过比较每个网络的基线和稀疏模型来看出。与基线相比,LeNet-5,MobileNet- V1,Inception-V3,ResNet-18和ResNet-34的稀疏模型可以与按下2。0×,1. 1×,1. 6×,1. 2×,1. 2×分别更多比压缩基线,同时还具有一个在-提高了计算精度,加快了计算速度。3×,1. 6×,1.6×,1. 2×,1. 2×分别。表6还表明,如果可以接受轻微的精度下降,我们的管道可以实现更大的压缩增益。稀疏化步骤导致更高的稀疏性和更低的能量。熵值的分布,这两个导致这些额外的收益(图。(3)第三章。虽然所有压缩算法都受益于稀疏化步骤,但SEG在利用所得值分布方面是最有效的。8. 结论我们已经提出了一个三阶段的压缩和加速管道,稀疏化,量化和编码的CNN的激活地图稀疏化步骤增加零值的数量,从而导致专用硬件上的模型加速,而量化和编码阶段通过有效地利用较稀疏的激活图的较低熵来导致压缩。该流水线展示了一种有效的策略,可以减少现代神经网络架构的计算和内存需求,更接近于在低功耗设备上实现最先进的神经网络与此同时,我们已经证明,在激活图上添加稀疏诱导先验并不一定与模型的准确性不一致,这暗示了稀疏激活图具有强大的代表性这一众所周知的事实此外,我们通过在我们的方法和稀疏编码之间建立联系来激励我们提出的解决方案。最后,我们相信,一个优化方案,我们联合稀疏化和神经网络可以导致进一步改善加速,压缩和准确性的模型。致 谢 。 我 们 要 感 谢 Hui Chen 、 Weiran Deng 和 IliaOvsiannikov进行的宝贵讨论。数据集模型[61]第六十一话MNISTLeNet-5基线稀疏KK=12=14KK=9=0CIFAR-10MobileNet-V1基线K =13K =0稀疏K =13K =0基线k=12 k=9ResNet-34稀疏k=12k=0Sparse_v2k=11k=0稀疏uint1698.48%(+0.03%)-6.76×(3.38×)4.54×(2.27×)3.76×(1.88×)6.74×(3.37×)3.54×(1.77×)基线MobileNet-V1基线浮动32 89.17%uint1689.18%(+0.01%)- --5.52×(2.76×)-3.70×(1.85×)-2.90×(1.45×)-5.32×(2.66×)-3.76×(1.88×)稀疏89.72%(+0.55%)-5.84×(2.92×)3.90×(1.95×)3.00×(1.50×)5.58×(2.79×)3.90×(1.95×)基线float3275.76%92.74%-----开始-V3基线75.75%(-0.01%)92.74%(+0.00%)3.56×(1.78×)2.42×(1.21×)2.66×(1.33×)3.34×(1.67×)2.66×(1.33×)稀疏uint1676.12%(+0.36%)92.83%(+0.09%)5.80×(2.90×)4.10×(2.05×)4.22×(2.11×)5.02×(2.51×)3.98×(1.99×)Sparse_v268.96%(-6.80%)88.54%(-4.20%)6.86×(3.43×)5.12×(2.56×)5.12×(2.56×)6.36×(3.18×)4.90×(2.45×)基线float3269.64%88.99%-----ResNet-18基线69.64%(+0.00%)88.99%(+0.00%)3.22×(1.61×)2.32×(1.16×)2.54×(1.27×)3.00×(1.50×)2.32×(1.16×)稀疏uint1669.85%(+0.21%)89.27%(+0.28%)4.00×(2.00×)2.70×(1.35×)3.04×(1.52×)3.60×(1.80×)2.68×(1.34×)Sparse_v268.62%(-1.02%)88.41%(-0.58%)5.54×(2.77×)3.80×(1.90×)4.02×(2.01×)4.94×(2.47×)3.54×(1.77×)7096引用[1] Zlib压缩数据格式规范3.3版。https://tools.ietf.org/html/rfc1950网站。访问日期:2018-05-17。二七八[2] J. Albericio,P. Judd,T. Hetherington,T. Aamodt,N.E. Jerger和A.莫绍沃斯Cnvlutin:无无效神经元的深度神经网络计算。2016年2[3] M.阿尔瓦尼H. Chen,M. Ferdman和P.更温和。融合层CNN 加 速 器 。 IEEE/ACM International Symposium onMicroarchitecture,2016。2[4] 吉米·雷·巴,杰米·瑞安·基罗斯,杰弗里·E·辛顿.层归一化。arXiv预印本arXiv:1607.06450,2016。3[5] 蔡兆伟,何晓东,孙健,努诺. 通过半波高斯量化进行低 精 度 深 度 学 习 arXiv 预 印 本 arXiv : 1702.00953 ,2017。5[6] Matthieu Courbariaux , Yoshua Bengio 和 Jean-PierreDavid。用低精度乘法训练深度神经网络。arXiv预印本arXiv:1412.7024,2014年。3[7] Matthieu Courbariaux , Yoshua Bengio 和 Jean-PierreDavid。Binaryconnect:在传播过程中使用二进制权重训练深度神经网络。神经信息处理系统进展,2015。3[8] Jia Deng,Wei Dong,Richard Socher,Li-Jia Li,KaiLi,and Li Fei-Fei. Imagenet:一个大规模的分层图像数据库。在IEEE计算机视觉和模式识别上。IEEE,2009年。四、五[9] Guneet S Dhillon,Kamyar Azizzadenesheli,Zachary CLipton , Jeremy Bernstein , Jean Kossaifi , AranKhanna,and Anima Anandkumar.用于鲁棒对抗防御的随 机 激 活 修 剪 。 arXiv 预 印 本 arXiv : 1803.01442 ,2018。2[10] 董宣义、黄俊石、杨毅、严水城。多即少:一个更复杂的网络,具有更低的推理复杂性。在2017年IEEE计算机视觉国际会议上。二、六[11] 泽维尔·格洛罗特安托万·博德斯和约舒亚·本吉奥。深度稀疏整流神经网络。2011年,人工智能与统计国际二、三、六[12] Yunchao Gong,Liu Liu,Ming Yang,a
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功