深度学习:智能网络目标识别技术 课件 ch07 深度模型压缩技术_第1页
深度学习:智能网络目标识别技术 课件 ch07 深度模型压缩技术_第2页
深度学习:智能网络目标识别技术 课件 ch07 深度模型压缩技术_第3页
深度学习:智能网络目标识别技术 课件 ch07 深度模型压缩技术_第4页
深度学习:智能网络目标识别技术 课件 ch07 深度模型压缩技术_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章深度学习:智能网络目标识别技术深度模型压缩技术01深度模型压缩技术概述模型稀疏化模型剪枝作为模型稀疏化的主要手段之一,通过对已完成训练的深度模型移除冗余、信息量少的权重,来减少深度模型的参数,进而加速模型的计算和压缩模型的存储空间。不仅如此,通过剪枝网络,还能防止模型过拟合。根据是否一次性删除整个节点或滤波,模型剪枝工作可细分成非结构化剪枝和结构化剪枝。非结构化剪枝考虑每个滤波的每个元素,删除滤波中元素为0的参数,而结构化剪枝直接考虑删除整个滤波(或通道)、分支(Branch)、模块(Block)等。在早期研究中,模型剪枝更侧重于非结构化剪枝。20世纪末,LeCun等人提出了最优化脑损失(OptimalBrainDamage),大大稀疏化多层网络的系数,同时保证模型预测精度依然处于零损失或最小量损失状态。实际上,这种学习方式模仿了哺乳动物的生物学习过程,通过寻找具有最小激活值的突触连接来在突触剪枝(SynapticPruning)过程中大大减少连接个数。模型的可解释性是指模型能够解释其预测结果和决策过程的能力。在深度学习中,模型的可解释性通常指的是模型能够以一种人类可理解的方式,解释其为何做出特定的预测或决策。在数据分析和模型预测过程中,可能会存在数据偏差或模型偏差,这些偏差可能会导致模型的预测结果不准确或不可靠。可解释性分析有助于发现模型可能存在的错误或者偏差,进而为模型的优化提供指导意见,也为评估模型的性能和质量提供更多的依据。探索模型的可解释性能够让用户更放心地使用模型,提高模型在实际应用中的可靠性。当前主流的可解释性方法包括决策级可解释性方法和特征级可解释性方法两大类。决策级可解释性方法关注于模型的最终预测结果,试图解释模型为何做出特定的决策,它们通常不依赖于特定的模型,而是通过分析模型的输入和输出之间的关系来提供决策的解释;特征级可解释性方法深入到模型内部,探究哪些输入特征在模型的决策过程中起到了关键作用,其不仅可以提高深度模型的可信度,还有利于从性能比肩人类的深度神经网络中发现模型性能提升的原因,为开发更高效的深度模型提供依据。模型稀疏化利用相似的思想,Hassibi和Stork提出了OptimalBrainSurgeon剪枝策略,通过二阶的偏导信息(Hessian矩阵)确定不重要的权重,从而删除不显著权重。此外,通过研究层内节点之间的冗余性,构建权重的显著性矩阵,并进行显著性矩阵排序,删除不显著冗余的节点,这种剪枝策略不依赖于训练数据,因此剪枝过程较为快速。Han等人提出了一种基于低值连接的剪枝策略(Low-WeightConnectionPruning),该剪枝策略包括三个阶段,即训练连接、删除连接、训练权重。基于低值连接的剪枝策略的三个阶段及剪枝结果如图7-1所示。第一阶段通过正常训练学习重要的连接;第二阶段通过计算权重矩阵的范数,删除节点权重的范数值小于指定阈值的连接,将原始的密集网络(DenseNetwork)变成稀疏网络;第三阶段通过重新训练稀疏网络,恢复网络的识别精度。以上剪枝方法通常引入非结构化的稀疏连接,在计算过程中,会引起不规则的内存获取,从而影响网络的计算效率。模型稀疏化模型稀疏化结构化剪枝的深度神经网络的压缩方法陆续被提出,它们具备友好适配现有深度学习框架的能力,可以高效推理剪枝后的模型。这些方法的核心思想是依靠滤波显著性准则(鉴定最不重要的滤波的准则),直接删除显著性滤波,加速深度神经网络的计算。2016年,Lebedev等人提出在传统深度模型的损失函数中加入结构化的稀疏项,利用随机梯度下降法学习结构化稀疏的模型参数,并将小于给定阈值的滤波赋值为0,从而在测试阶段直接删除值为0的整个卷积滤波。Wen等人通过将深度神经网络的通道、滤波形状、网络层数的正则化限制加入损失函数中,利用结构化稀疏学习的方式,学习结构化的卷积滤波。Zhou等人将结构化稀疏的限制加入目标函数,并利用前后向分割(Forward-BackwardSplitting)算法解决结构化稀疏限制的优化问题,在训练过程中直接决定网络节点的个数与冗余的节点。模型稀疏化另外,近年来,通过直接测量滤波的范数值来判断滤波的显著性的方法也相继被提出,如图所示,其先直接删除给定当前层最小L1范数的滤波,即移除相应的特征图,然后下一层滤波的通道数也相应减少,最后通过重训练的方式,提高剪枝后模型的识别精度。由于大量的ReLU非线性激活函数存在于主流的深度神经网络中,使得输出特征图高度稀疏化,Hu等人利用此特点,计算每个滤波所对应输出特征图的非零比例,并将其作为判断滤波重要与否的标准。NVIDIA公司的Molchanov等人提出了一种基于全局搜索显著性滤波的策略,对需要删除的滤波用0值代替,并对目标函数进行泰勒展开(TaylorExpansion),判断使目标函数变换最小的滤波为显著性滤波。通过卷积计算方式,可以建立当前层的滤波与下一层的卷积滤波的输入通道之间一一对应的关系,利用此特点,Luo等人用探索下一层卷积滤波的输入通道重要性代替直接考虑当前层滤波,并建立一个有效的通道选择优化函数,从而删除冗余的通道及相应的当前层的滤波。模型稀疏化此外,滤波的几何中值、特征图的平均秩也相继被提出,并作为判断滤波重要性的标准。以上基于结构化剪枝的深度神经网络的压缩方法删除了卷积层的整个滤波,没有引入其他额外的数据类型存储,从而在直接压缩模型的同时加速整个模型的计算。模型稀疏化除直接将滤波判断函数用于结构化剪枝外,利用掩码判断滤波冗余的方法也相继被提出。例如,Huang和Wang提出对每个滤波加入尺度因子(ScalingFactor),并使用L1范数控制其稀疏性,经过训练选择出紧致化结构。Lin等人提出全局动态剪枝方法,利用二值掩码来确定显著性滤波,并借助贪心算法交替更新网络权重和二值掩码训练策略,学习模型参数与二值掩码,实现模型的滤波剪枝。Gao等人引入离散通道控制门,并借助直通估计(Straight-ThroughEstimator,STE)避开控制门限制中的非光滑非凸优化问题。此外,也有相关研究(如文献)在批量正则化项中稀疏化尺度参数,达到稀疏化特征图和滤波的效果。模型稀疏化模型量化模型量化的核心思想是利用较少比特(bit)代替原始32bit浮点型的参数[也可记为全精度权重(Full-PrecisionWeight)],从而减少参数存储空间,并利用低比特特定计算提高运行速度。Gong等人及Wu等人利用向量量化的技术,在参数空间内对深度神经网络中的权重进行量化。近年来,利用低比特的量化被提出用于加速与压缩深度神经网络。Gupta等人将全精度浮点型参数量化到以16bit固定长度表示,并在训练过程中使用随机约束(StochasticRounding)技术,缩减深度神经网络存储空间和浮点计算次数。使用动态固定点(DynamicFixedPoint)量化,可在量化AlexNet时实现几乎无损压缩。例如,Ma等人将权重和激活值分别量化到8bit和10bit,且没有利用微调权重。随后Gysel等人利用微调,将权重和激活值全部量化到8bit。模型量化为了更大程度地缩减存储空间和浮点计算次数,对网络参数进行二值表示的相关方法已被大量提出。其主要思想是在模型训练过程中直接学习二值权重或激活值。BinaryConnect直接量化权重为-1或1,只需要进行加和减计算,减少了卷积计算,但因激活值为全精度浮点型参数,无法大幅度加速网络计算。为此,Courbariaux等人通过同时量化权重和激活值为-1和1,提出了二值神经网络(BinaryNeuralNetwork,BNN),将原始的卷积计算变成Bitcount和XNOR,大幅度加速和压缩深度神经网络。但其在压缩和加速深度神经网络(如AlexNet)时,分类精度大大降低。为了减少精度的丢失,Rastegari等人分别提出了BWN和XNOR-Net,引入了尺度因子,用于缩小量化误差,并保留第一层和最后一层的权重和输入为32bit的浮点型参数。模型量化同时,改变卷积和正则化的顺序,即先执行正则化,再执行卷积,减少了激活值的动态幅度范围。伴随着这些改变,BWN和XNOR-Net分别获得了0.8%和11%的分类误差提升。XNOR-Net二值量化框架如图7-3所示。在文献、文献中,通过增加激活值的比特数(大于1bit),并探索不同的低比特权重与激活值的组合量化全精度权重和激活值,提高量化后的网络在ImageNet数据集上的分类效果。但是在训练这些量化网络时,会出现梯度不匹配问题。Cai等人通过分析权重和激活值的分布情况,设计了一种新的半波高斯量化器(Half-WaveGaussianQuantizer)及其反向传播过程中不同的梯度近似,提出了HWGQ-Net,有效地解决了训练过程中的梯度不匹配问题。模型量化另外,Lin等人考虑到二值化数据信息表达能力很弱的缺点,提出了ABC-Net,通过将多个二值化权重与激活值进行线性加权求和的方式来近似全精度权重与激活值,以一定的时间和空间为代价换取网络精度。Liu等人提出了Bireal-Net,通过在二值网络中引入捷径结构来嵌入全精度实数值信息,推导了不可微符号函数关于激活值导数的近似逼近,提出了一种与权重幅度值相关的感知梯度来对权重进行更新,并使用clip函数代替ReLU函数对实值CNN模型进行预训练。Liu等人还在MobileNet-V1原始网络的基础上加入捷径层进行改造,并通过实验发现激活值的偏移与缩放对二值网络的性能具有明显影响,提出了React-Net,在网络结构中加入可学习的参数变量,让网络自动学习每一层激活值对应的最佳偏移值与缩放值,进一步提高了网络精度。模型量化模型量化由于权重近似分布于均值为0的高斯分布,即W~N(0,σ2),进一步考虑将0作为量化后的值,可能会减少量化误差。基于此思想,三元权重网络(]TernaryWeightNets,TWN)将全精度权重网络量化到三元网络,即-w、0和w,其中w为通过统计估计得到的量化的值。通过改变对称的w,训练的三元量化(TrainedTernaryQuantization,TTQ)引入了不同的量化因子(-w1、0和w1),且通过训练得到该因子,在量化AlexNet时,分类误差只增加了0.6%。低秩分解低秩分解的核心思想是利用矩阵或张量分解技术分解深度模型中的原始卷积核,减少存储开销并提高小卷积计算的速度。卷积计算是整个CNN中计算复杂度最高的计算操作,通过分解4D卷积核张量,可以有效地减少模型内部的冗余性。此外,对于2D的全连接层矩阵参数,同样可以利用低秩分解技术进行处理。由于卷积层与全连接层的分解方式不同,因此我们分别从卷积层和全连接层两个不同角度分析低秩分解技术在深度神经网络中的应用。2013年,Denil等人利用低秩分解技术从理论上分析了深度神经网络存在大量的冗余信息,开创了基于低秩分解的深度模型压缩与加速的新思路。图7-4所示为低秩分解后的卷积计算。Jaderberg等人利用张量的低秩分解技术,将原始的网络参数分解成两个小的卷积核。利用相同的策略,Denton等人先寻找对卷积层参数的低秩近似,然后通过微调的方式恢复模型的识别精度。此外,Lebedev等人利用经典的CP分解,将原始的张量参数分解成三个秩为1的小矩阵。相似地,Kim等人利用Tucker分解,将原始张量分解成三个小张量的乘积。Tai等人提出了新的低秩分解张量算法,同时提出引入批量正则化,重新训练有低秩限制的CNN。低秩分解Ioannou等人利用卷积核低秩表示代替分解预训练的卷积核参数,并设计了一种有效的权重初始化方法,重新训练计算有效的CNN。同样地,Wen等人不采用直接分解预训练的模型参数,而是从训练的角度探讨如何更有效地聚集更多参数于低秩空间中,提出了新的引力正则化项(ForceRegularization),迫使更多的卷积核分布于更低秩的空间中。以上低秩分解卷积核的方法虽然减少了卷积核的冗余性,即考虑了CNN内部结构的冗余性,但全盘接受了视觉输入的全部,极大地影响了模型的加速比。为此,Lin等人提出了ESPACE卷积计算加速框架,考虑了视觉输入的冗余性,即从输入计算空间和通道冗余性两方面移除低判别和低显著性信息。低秩分解对于全连接层特定的2D矩阵形式来说,虽然可以将2D矩阵计算转变为1×1的卷积计算,从而利用上述低秩分解技术进行应用,但特定的全连接层也存在相关低秩分解方法。Denil等人利用低秩分解方法减少了深度神经网络中的动态参数个数。Lin等人分析了直接对层内参数低秩分解压缩无法获得高精度分类效果这一缺点,考虑层间的各种非线性关系,提出用层间参数的联合优化代替单层优化,构建全局误差最小化的优化方案。知识蒸馏知识蒸馏的基本思想是通过软Softmax变换学习教师输出的类别分布,并将大型教师模型(TeacherModel)的知识迁移至较小的学生模型(StudentModel)。图7-5所示为简单的知识蒸馏的流程。2006年,Buciluǎ等人首先提出利用知识迁移来压缩模型。他们通过集成强分类器标注的伪数据(PseudoData)训练一个压缩模型,并重现了原大型网络的输出结果,然而他们的工作仅限于浅层网络。Ba等人提出可以将具有一定深度和宽度的网络压缩为浅层模型,该压缩模型模仿了复杂模型所能实现的功能。知识蒸馏Tung等人利用网络中间层每个样本之间的相似度信息进行知识迁移。Kim等人提出在教师网络的最后一层特征中提取便于学生网络理解的转移因子,将知识传递给学生网络。对于学生网络与教师网络中间层特征不一致的情况,Heo等人提出使用1×1卷积进行维度对齐,并构建教师网络激活边界作为中间层知识迁移至学生网络中。不仅如此,特征图的Jacobian梯度信息也可以作为中间层知识表示。近年出现了一些利用输出层特征进行对比学习或基于自监督的知识蒸馏方法,用于挖掘学生网络与教师网络之间不同样本的关系,从而迁移教师网络的关系知识至学生网络中。神经网络架构搜索01搜索空间链式结构是最为常见的神经网络架构,即神经网络架构中的每一层只与其后一层和前一层相连,前一层的输出为当前层的输入,后一层的输入为当前层的输出。由于神经网络的架构表现为一种链条状,因此这种搜索空间被称为链式搜索空间,典型的链式搜索空间如图7-6所示。(1)链式搜索空间神经网络架构搜索01搜索空间基于Cell的搜索空间受到传统手工设计网络中模块堆叠的启发,Cell是最小的神经网络搜索单元。与搜索整个神经网络不同,搜索基于Cell的搜索空间时仅搜索Cell结构,然后最终的神经网络由搜索出来的Cell结构堆叠而来。一个Cell是由M个节点组成的全连通的有向无环图(DirectedAcyclicGraph,DAG)。每个节点将前面的节点作为输入,并通过求和操作生成输出。每个节点表示为一个特定的张量(如在CNN中它表示为一张特征图)。处于两个节点间的有向边表示一个操作,该操作从搜索空间中采样得来。基于Cell的搜索空间的一个经典样例是DARTS中所使用的,如图7-7所示。(2)基于Cell的搜索空间神经网络架构搜索02搜索策略(1)贝叶斯优化研究人员常常会用贝叶斯优化来解决超参数优化的问题。针对高维度和低维度问题,均需对贝叶斯优化算法进行一定调整:针对低维度问题,需要结合高斯过程(GaussianProcess)和核技巧(KernelTrick)来处理;针对高维度问题,需要结合树模型或者随机森林来处理。贝叶斯优化的优点是搜索效率高,原因在于其不需要重复测试网络结果,节省了大量网络评估的时间。通常,贝叶斯优化的过程为:①假设一个先验概率分布模型(最常用的是高斯过程模型);②基于采样函数平衡探索与开发的过程;③不断添加样本点进行模型的优化;④使得优化后的先验概率分布模型不断逼近真实的概率分布。神经网络架构搜索02搜索策略(2)强化学习采用强化学习进行神经网络架构搜索时,生成神经网络架构的过程即为强化学习中代理(Agent)选择行动(Action)的过程,其中神经网络架构搜索算法中的搜索空间即为强化学习中的动作空间。对得到的神经网络进行训练,得到在验证集上的精度,并将该精度作为代理的回(Reward)。然后将回报反馈给代理,进行下一步更好的动作选择。基于强化学习的搜索算法的不同之处在于策略表示和优化算法。2017年,Zoph等人提出基于强化学习的搜索算法,其搜索得到的神经网络与人工设计的最佳神经网络具有相近的性能。其控制器采用循环神经网络,从搜索空间中采样操作,把采样得到的操作组成网络,对得到的网络进行训练并得到在验证集上的精度。随后,使用强化学习的方法优化循环神经网络的参数。在训练控制器时,为了加速控制器的学习过程,可采用分布式训练和异步参数更新的方式。之后,大量基于强化学习的算法被提出,如NASNet、权重共享的ENAS方法及EfficientNet等,它们分别从搜索空间、搜索效率、模型大小维度等方面进一步拓展研究。神经网络架构搜索02搜索策略(3)进化算法进化算法的基本流程框架:先随机生成一个种群,然后不断循环三步:选择、交叉和变异,当满足条件时,完成搜索,退出循环。近年,一种新颖的进化算法EDA(EstimationDistributionofAlgorithm)被提出,其是一种基于概率模的进化算法,基本思路与传统遗传算法相似,主要的区别在于该算法去掉了交叉、变异的环节,通过学习一个概率模型,依概率采样下一代的种群。神经网络架构搜索02搜索策略(4)可微分搜索算法前面提到的各种搜索策略的本质都是在离散搜索空间中进行搜索,下面将介绍一种在连续搜索空间中进行搜索的算法——可微分搜索算法。当搜索空间连续时,即可对目标函数进行求导,因此神经网络架构可通过一种基于梯度的方法高效地学习得出。2019年,DARTS中首次提出了可微分的搜索算法。DARTS本质上是将搜索空间连续化,从而可以用学习的方法学习出最优神经网络架构。它给每个操作设置一个结构参数,结构参数值越大表明该操作效果越好,最终的搜索结果选择每个位置结构参数值最大的操作。DARTS中最关键的是将候选操作使用Softmax函数进行混合,这样就实现了搜索空间的连续化,此时目标函数可微分。因此,最优神经网络架构可通过基于梯度的优化方法进行优化得到。另外,文献中提出了另一种基于梯度的方法。其做法是:先将神经网络架构编码,并将其嵌入一个连续的高维空间,这样该高维空间中的每一个点表示一个神经网络架构;然后,定义一个准确率的预测函数,将高维空间中被编码的神经网络架构作为预测函数的输入。以预测值和真实值为目标函数进行基于梯度的优化,找到更优神经网络架构的编码。优化完成后,将这个编码映射回神经网络架构。可微分搜索算法的优点是搜索效率高,但是搜索出来的神经网络架构的性能一般不如强化学习和进化算法。紧致化结构设计网络结构紧致化是指通过设计小型的、较为浅层的网络结构来代替庞大、复杂、深入的网络结构,从而使网络更加轻量和高效。紧致化结构设计通常需考虑模块和整体网络架构设计,通过优化内部结构实现。Iandola等人提出的SqueezeNet是一种较为典型的轻量化网络结构设计,作者在该网络结构中提出了Fire模块,通过减少3×3卷积通道数及将部分3×3卷积替换为1×1卷积,减少了计算参数的数量。同时将降采样层后置,使提取的特征包含更丰富的信息,在网络小型化的同时尽可能保持网络精度。该网络架构在ImageNet数据集上能达到和经典网络AlexNet相近的效果,其参数量只有AlexNet的2.14%。但值得注意的是,更少的参数量实际上是建立在SqueezeNet更深的网络深度之上的,是以丧失部分并行能力、增加推理时间为代价的。紧致化结构设计深度模型压缩技术的选择若要求压缩后的模型不降低精度性能,可以优先考虑模型稀疏化、神经网络架构搜索、模型量化。(1)高精度指标在训练计算资源有限的情况下,可以优先考虑模型稀疏化、低秩分解和紧致化结构设计。(2)训练计算开销若要求大幅度降低模型推理过程中的计算和存储开销,可以优先考虑模型量化、紧致化结构设计和神经网络架构搜索。(3)模型压缩倍数若要求结合多种深度模型压缩技术进一步提升性能,可以优先考虑知识蒸馏。(4)深度模型压缩技术之间的兼容性02引入生成对抗的最优结构化剪枝方法预备知识如图-9所示,将原始预训练网络定义为基网络fb(x,WB),拥有软掩码的网络定义为被剪枝网络fg(x,WG),其中x、WB和WG分别表示输入图像、基网络中的所有权重参数及被剪枝网络中的所有权重参数。

表示第l层中一个卷积滤波或神经元。m∈Rs表示每个结构后加入的软掩码,其中s为需要考虑剪枝的结构个数。mi表示m中第i个元素。由于基网络在训练过程中是固定、无须更新的,因此选择概率变换Softmax之前的最后输出作为训练被剪枝网络的监督特征fb(x)。另外,相应提取被剪枝网络的最后输出特征,记为fg(x)。不同于fb(x),fg(x),(x)需要更新近似fb(x),即更新fg(x)中的软掩码m和权重参数WG

。公式建立GAL的目的在于学习软掩码,剪除其值为0的对应结构(包括通道、分支及残差块),同时要保持剪枝后的模型精度与基网络相近。受知识蒸馏算法启发,训练对软掩码有L1正则化限制的被剪枝网络,使其输出能够对齐基网络的输出。基于此,利用GAL从而获得被剪枝网络。具体地,引入判别器D(权重参数为WD)用于区分基网络和被剪枝网络的输出,然后利用来自基网络中监督特征的知识学习生成器(被剪枝网络,带有权重参数WG和软掩码m),进而更新判别器,如此反复,直至收敛。GAL作为一种简单的优化解决方案,可以通过梯度下降法交替更新判别器D和生成器G,解决式(7.1)的优化问题。但是,随机梯度下降法不利于快速收敛,且直接使用梯度下降法会造成软掩码m出现非准确0值的尺度因子。因此需要引入一个阈值,当尺度因子小于该阈值时,将剪除小于阈值的所有对应结构。这直接导致剪枝后的准确率大大低于基网络。为解决此问题,我们在训练生成对抗网络中加入了快速的迭代阈值收缩算法,具体可分成两个交替优化过程,详细过程的算法如下。优化求解为了更灵活地选择结构,在三种不同结构(由粗粒度到细粒度:残差块、分支、通道)后加入软掩码,分别降低以ResNet、GoogLeNet和DenseNet等为代表的不同网络的冗余性,并且不同结构间可以相互结合进行联合学习。特别地,可以结合残差块和通道进一步降低模型的冗余性。结构选择数据集和基线模型:在两个广泛使用的数据集(CIFAR-10和ImageNet)上验证GAL的有效性。使用通道选择剪枝VGGNet、DenseNet,使用分支选择剪枝GoogLeNet,使用块选择剪枝ResNet。另外,也可整合块选择和通道选择联合剪除异构结构,提高剪枝后网络的性能。实现细节:选择PyTorch作为实现GAL算法的深度学习框架。解决式(7.1)的优化问题的实验基于两个型号为NVIDIAGTX1080Ti的11GB显存GPU,主机内存大小为128GB。对于训练中的参数,设置权重衰减为0.0002,动量为0.9。超参数λ的选择依赖不同的剪枝任务。对于VGGNet及DenseNet上的通道剪枝,超参数λ在[0.01,0.1]内利用交叉验证选择合适的值。对于GoogLeNet上的分支剪枝及ResNets上的块剪枝,超参数λ在[0.1,1]内同样利用交叉验证选择合适的值。生成器噪声输入利用了丢弃法并将其丢失率设置为0.1判别器架构:在训练过程中,判别器D具有重要的作用。在本节中,选择统一且相对简单的结构,它由三层神经元个数分别为128、256和128的全连接层和非线性变换组成。判别器的输入来自基网络的输出fb(x)和被剪枝网络的输出fg(x),其输出为二值预测,用于判断输入来自基网络还是被剪枝网络。实验结果01实验设计与先进算法的比较01CIFAR-10数据集首先验证GAL在CIFAR-10数据集上的有效性,选用5种广泛使用的模型,分别为VGGNet、DenseNet-40、GoogLeNet、ResNet-56及ResNet-110。对于VGGNet,其结构是原始VGG16在CIFAR-10数据集上的变体。DenseNet-40拥有40层结构,其增长率为12。GoogLeNet是原始ImageNet2012数据集上的GoogLeNet在CIFAR-10数据集上的变体。与先进算法的比较02ImageNet数据集为了验证GAL对大规模图像的分类同样有效,本节使用ImageNet数据集上广泛使用的ResNet-50进行对比。设置最小批量块大小为32、训练回合数为30,将学习率初始化为0.01,并每经过10个训练回合下降为原来的10%。表7-5所示为ImageNet数据集上ResNet-50的剪枝结果。在单独使用块剪枝的情况下,GAL-0.5和GAL-1分别能够剪除8个和11个残差块(原始ResNet-50共26个残差块),分别获得了43.0%和61.4%的FLOPs剪枝率、Top-5分类错误率分别增加了1.93%和3.12%。但是,它们获得了较低的参数剪枝率,分别为16.9%和42.5%。相比于GAL-0.5,GAL-0.5-joint获得了更高的FLOPs剪枝率和参数剪枝率,分别为55.0%和24.3%。相比于SSS-26、Heetal.及GDP,GAL-0.5-joint获得了准确率和速度上最好的平衡。另外,在较相近的FLOPs剪枝率情况下,GAL-1-joint在分类错误率上远低于ThiNet-30,GAL-1-joint在Top-1和Top-5分类错误率上分别比ThiNet-30低0.89%和0.82%。03闭式低秩分解和知识迁移的全局CNN压缩方法全局闭式低秩分解与知识迁移CNN是一种前馈多层神经网络,将输入图像直接映射成特定的向量形式输出。在卷积层中,每个单元被组织成一个3维张量形式,前两维表示空间维度,第三维表示图或通道维度。如果CNN应用于批量图像中,那么输入会以4维张量形式表示,其中第四维表示批量大小。由于第四维不会直接影响最后的计算和求导,因此在本节中,我们着重考虑3维特征图。正如第2章描述的卷积计算,若考虑单层的计算结果,那么每一个输出特征图是由所有的输入特征图与3维卷积核/滤波卷积计算的结果,每一个3维卷积核形成一个输出特征图。具体的计算过程可以表示为01预备知识全局闭式低秩分解与知识迁移式中,是一系列3维卷积核。在卷积核中,d×d表示卷积核空间的维度——高和宽,C和N分别表示输入和输出通道的个数。输入特征图的高和宽可分别表示为hi=i′+h−1和wj=w′+j−1。为了简单表示,在式(7.14)中,假定卷积步幅为1,没有进行0填充且忽略了偏置项。图7-11(a)所示为原始卷积计算过程。为了更好地描述冗余性,式(7.14)可重写为01预备知识全局闭式低秩分解与知识迁移式中,是第n个3维卷积核,其中n∈{1,2,···,N}。另外,每个

包含了一系列2维滤波

在全连接层中,输入与输出之间存在密集连接,主要的计算是矩阵与矩阵的乘积,具体可表示为01预备知识式中,X∈Rd×b为输入矩阵;W∈Rh×d为权重矩阵;Z∈Rh×b为输出矩阵。式(7.14~式(7.16)可利用新的闭式低秩分解方法,分别处理卷积张量和全连接矩阵,从而进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论