没有合适的资源?快使用搜索试试~ 我知道了~
12349DECORE:深度压缩与强化学习ManojAlwaniElement Inc.ma@discoverelement.com阳旺元素股份有限公司yw@discoverelement.comVashishtMadhavanElement Inc.vm@discoverelement.com摘要深度学习已经成为现代模式识别系统中越来越流行和强大的方法。然而,许多深度神经网络具有数百万或数十亿个参数,由于内存大小或延迟要求的限制,使其无法用于现实世界的应用。因此,深度学习方法的广泛采用通常需要高效的网络压缩技术。我们提出了DECORE,一种基于强化学习的方法来自动化网络压缩过程。DECORE为网络中的每个通道分配一个代理,以及一个轻策略梯度方法来学习保留或删除哪些神经元或通道。网络中的每个代理只有一个参数(保留或删除)需要学习,这使得训练过程比现有方法快得多。DECORE在各种网络架构和各种数据集上提供最先进的压缩结果。例如,在ResNet-110架构上,与基线 模型 相比 ,它 实现 了64.8% 的压 缩和 61.8%的FLOP减少,而在CIFAR- 10数据集上没有任何准确性损失它可以将常规架构(如VGG网络)的大小减少高达99%,而精度仅下降2.28%。对于像ImageNet这样只有30次训练的大型数据集我们还证明了DECORE可以用来搜索基于各种约束的压缩网络架构,如内存和FLOPs。1. 介绍深度神经网络(DNN)已经在图像识别任务中取得了重大进展,最值得注意的是ImageNet挑战[42]。最近的趋势表明,具有更多参数和更复杂计算块的更深架构会导致更好的结果[13,47]。然而,这些模型大小的增加导致了更高的推理成本,使得它们难以被部署在嵌入式系统或移动设备中。然而,现实世界的应用程序具有内存、延迟或吞吐量限制,这使得难以按原样使用大型卷积神经网络(CNN)。因此,降低大型模型的推理时间和内存消耗将有利于深度学习模型在这些现实世界应用中的广泛采用。在通过更有效的网络架构降低推理成本方面,已经做了大量的工作[5,7,27,43]。虽然已经取得了很大的进展,但寻找高效架构的过程通常需要大量的经验和手动设计。这个过程的自动化是一个非常有价值的研究领域,因为更新,更强大的DNN架构正在迅速被发现。同时,在网络压缩方面也做了大量的工作,如低秩分解[5,29,30,59],参数量化,[2019- 04 - 19 00 : 00 : 00][2019 - 04 -19 00 : 00 :00][2019 - 04 - 19 00:00]这些压缩技术可以大致分为两类:非结构化和结构化的pruning。非结构化修剪方法[9与压缩一起,这些方法可以使用专用软件[8]或硬件[8,21,39]提供更快的网络推理。然而,它们通常会导致不规则的内存访问,从而对通用硬件或BLAS库上的网络推理产生不利结构化修剪通过移除结构化权重(如2D内核和特征图(通道)或层)克服了这些限制,其专注于网络架构变化,并且可以由现成的深度学习库(如PyTorch [40]和TensorFlow [1]等)支持。修剪结构化权重是一个复杂的问题,因为我们必须找出网络中哪些层或通道最不重要,并且删除它们不会显著影响准确性。例如,在VGG16 [47]中,第一个隐藏层有64个通道,在不影响准确性的情况下,对要删除的通道进行穷举搜索涉及264个组合。对于总共约有5000个频道的整个网络来说,遍历所有组合在计算上是不可行的。为了克服这个问题,许多技术已经被亲-12350在以下类别中提出。使用经过训练的网络统计数据进行修剪:这些方法主要包括两个步骤,首先使用网络统计数据修剪权重,然后微调压缩后的网络,以从准确性损失中恢复在这些技术中,已经提出了基于幅度的修剪来找到具有最低l1范数的滤波器[27]或通道(特征图)[18],因为它们信息量最少并且可以被移除。Yang等人。[15]计算每层的几何中值并修剪靠近它的滤波器。贪婪修剪[16,35]也是一种常见的策略,通过考虑以贪婪逐层方式从下一层计算的统计数据来修剪滤波器。最近,Lin等人。[28]提出通过计算通道的秩来确定通道的重要性。所有这些方法都在一个或相邻层计算通道或滤波器重要性,而不考虑深度神经网络中的所有其他层。Yu等人[56]发现,在早期层中被认为不太重要并被修剪的通道可能对后续层的修剪产生重大影响。为了解决这个问题,他们计算最后一层的重要性得分,并将其传播到网络中的每个过滤器,以获得其重要性得分。使用经过训练的网络统计数据找到最不重要的通道是相当简单的,但是找到从每一层(或网络)丢弃多少通道或过滤器以实现一定的压缩率需要手动操作。例如,在[28,56]中,在微调之前使用固定的压缩率,这限制了对不同压缩率的探索,因为每个组合都需要微调以从可能耗时的准确性损失中通过学习通道重要性进行修剪:另一组技术是通过在重新训练网络时应用压缩约束来学习哪些通道是重要的,例如批量归一化层中的稀疏缩放参数[34,52,60]。对这些方法的扩展也考虑了资源约束,例如延迟和计算[6,7,38]。Huang等人。[20]和Lin等人。[32]为每个通道(掩码)引入了一个新的二进制参数,以确定通道是否重要,但学习这个二进制掩码涉及NP-hard优化。这种对压缩和准确性的联合优化导致更高的准确性性能,但由于(组合)损失函数与原始网络不同,因此需要专门的优化器[20,32],并且需要迭代微调,这增加了模型训练和手动调整的时间。通过架构搜索进行修剪:鉴于设计深度网络架构需要大量的人力,已经有一些关于自动学习网络架构的探索。这些方法使用一组自定义构建块从头开始构建网络,依赖于试错搜索的变体,找到有前途的架构[23,33,51,52,62],或压缩的。在[3,14]中,强化学习(RL)用于找到压缩架构,但这些技术通常需要很长时间来训练。例如,在[3]中,知识蒸馏[4,17]方法用于使用RL从教师网络中找到压缩的学生网络。该方法利用架构搜索来减少网络的深度和层的大小,这可能需要多达2,500个epoch。然而,这种搜索成本对于常规的深度学习从业者来说过于为了减少架构搜索时间,生成对抗网络已在[32]中用于查找压缩结构。它大大缩短了搜索时间,但仍然需要多次迭代来训练生成和对抗网络。虽然这些方法导致了高压缩率,但它们通常需要大量的GPU时间来获得高性能架构。尽管上述方法提供了最先进的结果,但是它们在计算上是昂贵的并且耗时的,因为它们需要多次迭代的微调和微调,并且通常需要大量的手动工作。在本文中,我们提出了DECORE,一个多智能体强化学习(RL)框架的网络压缩,克服了这些限制。在RL中,代理学习在环境中执行一系列动作,以最大化累积奖励的概念[49]。在我们的方法中,我们分配专门的代理网络中的所有通道采取行动,以下降或保持在网络中的通道。当代理放弃通道以获得更高的压缩时,它会获得正奖励,但如果由于修剪而降低了准确性,则会获得使用REINFORCE算法[54],我们优化了代理的策略,以找出在每一层丢弃哪些通道,而不会显著影响准确性,从而最大化奖励。使用REINFORCE算法训练代理独立于网络训练损失,这有助于加快压缩过程。我们的主要贡献总结如下:• 我们提出了DECORE,一个灵活而强大的自动化结构搜索和模型压缩的方法。DECORE通过联合训练网络来学习哪些通道是重要的,以提供高压缩率和FLOPs降低率。• DECORE为网络中的每个通道分配一个代理(多代理学习),而每个代理只学习一个参数,这与其他基于RL的方法相反,其中策略涉及训练另一个神经网络。为每个代理学习单个参数可以使训练更快,更有效。• 我们证明,我们的方法是能够找到12351||∈网络中最重要的信道,其可用于搜索压缩网络架构。• CIFAR-10和ImageNet数据集的结果报告了各种网络,以证明与其他现有方法相比,DECORE能够实 现 更 好 的 准 确 性 以 及 更 高 的 压 缩 和 加 速(FLOPs reduction)率。2. 相关工作2.1. 网络修剪除了第1节中讨论的权重修剪之外,还提出了一些方法,通过删除整个通道来利用网络中的稀疏性[27,44,53]。其他方法通过分析训练的网络统计数据[46,57]或学习网络中每个通道或滤波器的重要性[7,20,28,34]来修剪通道。我们的方法与这些方法在整个信道上操作的方法类似,但使用RL来识别重要信道,而不是依赖于网络统计数据。此外,我们的方法在训练网络的同时学习信道重要性,而不像[20,32]那样改变损失函数,这加快了整个训练过程。2.2. 架构搜索现代架构搜索方法已经为许多任务带来了最先进的结果,但通常需要大量的GPU时间来获得高性能架构[3,14,33,51,52,62]。我们的用例是不同的,因为我们采用已经训练过的架构,并在保持准确性的同时搜索压缩架构。这大大减少了搜索空间,从而使我们的ap-proach更有效。强化学习也被用于从训练的网络中找到压缩的架构[3,14,58]。这些方法专注于为架构设计找到一组固定的自定义规则,然后对找到的最佳架构进行微调。尽管结果是压缩网络,但这些方法仍可能需要大量的GPU时间来训练。然而,我们提出的方法不使用任何自定义规则来寻找压缩架构。像一些正则化方法一样,我们简单地了解哪些通道对预测或多或少重要我们通过删除对精度影响不大的通道来获得压缩网络。3. 方法3.1. RL框架马尔可夫决策过程(MDP)提供了一个数学框架来模拟随机环境中的决策。在每个时间步t,智能体处于状态st,图1.DECORE策略(a)在VGG的每个卷积层之前插入策略(b)对于ResNet块,我们按顺序插入策略(代理i),并在并行路径(代理i+1)中插入策略。我们对最后一层并行路径保持相同的策略(代理i+1),以便它(c)我们的代理对动作ai进行采样,并将它们与层li相乘,以丢弃通道并计算奖励Ri。其中它可以选择任何可用的动作at并移动到下一个状态st+1,同时累积奖励R(st,at)。给定st和at,转移到新状态st+1的概率由状态转移概率P(st+1st,at)确定。RL的目标是找到一个策略π(at st),它指定了代理在st时将采取的行动,以最大化累积奖励的概念[49]。因此,我们可以将网络压缩过程框定为RL问题。在具有Ci个通道的每个层li处,我们将专用代理分配给该层中的所有通道。每个代理决定放弃或保留其通道,并随后接收奖励Ri,j(第i层的通道j)。神经网络在层li处利用未被丢弃的信道进行推理,并到达下一状态/层li+1。然后,可以从网络中删除丢弃的通道,以创建压缩网络。我们用奖励来训练代理,该奖励激励在每个层li丢弃信道,而不显著影响网络性能。这创建了一个多代理RL框架。与传统的MDP相比,该框架中每个代理的时间步长(t)仅为1,因为在每个前向传递中,它们仅决定保留或丢弃通道一次,并基于该决定获得奖励。3.2. 状态表示我们用通道向量s iRCi对神经网络的每一层进行建模,其中C i是第i层中通道的数量。s i的每个元素wj表示层i中信道j的权重(重要性)。wj的高值意味着通道j非常重要,丢弃它将显著影响网络精度我们用相同的值初始化所有信道12352j=1.J.ACCi=1i=1J(w)=wNb=1增加导致高网络准确性的通道的权重值,并减少那些不导致高网络准确性的通道的权重值在训练之后,低权重通道从网络中移除,从而产生压缩模型。我们的状态表示不考虑任何其他层相关变量,例如隐藏值,高度,宽度,输入/输出通道数,内核大小等[3,14],这使得这种方法非常通用。例如,这种方法可以用于为网络训练[55]找到重要的输入通道,或者仅从具有高内存消耗和DRAM访问时间的早期层中删除通道[2]。3.3. 策略表示代理在每一层i做出决策,以最大化奖励,基于一个简单的策略:路径,从而在合并之前丢弃相同的信道。图1显示了VGG [47]和ResNet [13]架构的策略插入。我们使用类似的方法在GoogleLeNet [50]和DenseNet [19]等不同架构的计算层中插入策略。3.4. 奖励我们建模的目标是在保持预测准确性的同时压缩网络。我们结合两种不同的奖励来平衡这些考虑。在每个层i,丢弃的信道表示在该层实现的我们通过对该层中所有丢弃的信道求和来计算层i处的压缩奖励Ri,C我们使用层的动作向量a i计算丢弃的通道的数量p=1Ri,C=Ci 1−ai,jj1+e−wjπ=1,pj0 1-pja i= π i={π0,π1,.,π Ci}我们通过sigmoid函数将权重转换为概率,然后选择将哪些通道保留在层i通过取独立的伯努利样本。样本值为0或1,其中0表示丢弃通道,1表示保留通道。在训练过程中,我们将每层这类似于dropout [48],但这里丢弃通道的概率取决于代理权重。每个代理都有一个这与深度RL中神经网络参数化的策略形成对比[36,37],这使得我们的方法简单快速,因为我们在训练过程中,我们将状态向量初始化为6.9,这对应于应用sigmoid函数后的0.99值。我们最初假设预先训练的网络中的所有通道都很重要,因此保持通道的初始概率应该很高。每个通道在抽样过程中有99%的机会被选中,1%的机会没有被选中,这鼓励了很少的探索,有助于政策优化。图1示出了我们针对层11的策略。我们只在卷积或线性铺设之前插入策略-在每一层采取一系列动作之后,网络仅使用来自预先服务的信道的信息进行预测每一个正确的预测都表明智能体采取了正确的行动,因此应该得到奖励。不正确的预测会导致惩罚λ,可以调整该惩罚λ以调整对压缩或准确性的偏好:如果y=y,则R=1−λ else惩罚是一个很高的负值,如果预测是错误的,它会迫使代理不放弃通道。我们在每一层的最终奖励通过乘法将这些奖励结合起来。该值仅在压缩和准确性奖励都高时才高,Ri=Ri,CRacc3.5. 优化与强化学习智能体必须学会做出决策,以最大化所有层的预期奖励总和。我们可以使用从策略中采样的轨迹τ来在我们的框架中,智能体只做一次决定,所以轨迹只有一个时间步。例如,层i的轨迹是τi=(si,ai)。这种情况下的优化目标是:网络的人。我们避免在批量归一化或深度卷积层中插入策略,因为它们操作w=arg maxwJ(w)=LargmaxwEτi <$πw (τi)[Ri]各个信道上的速率以及丢弃信道的决定可能受到下一层的策略的影响我们的政策插入还取决于网络体系结构。 对于前-我们使用REINFORCE策略梯度算法[36,54]来学习策略参数w,例如,ResNet或MobileNet架构由resid-wJ(w)=wEτi(τi)[Ri]双块,其中计算在并行路径中发生,并且它们与通道加法合并为这些块,我们在并行的末尾保持相同的策略Li=1J(w)=1NEτiπwΣLi=1(τi)[τwlogπw(ai|si)Ri][nwlog π w(a b,i|sb,i)R b,i]12353其中N是用于估计梯度的批量大小,L是网络的深度梯度用于更新每层的策略或权重。我们使用自己的损失函数联合训练策略和神经网络。在传统的RL方法中,状态表示是随机的,代理通过查看每个状态来学习策略。这与我们的方法相反,因为我们试图学习状态表示,而不需要昂贵的策略优化方法,如Actor-Critic [25]和PPO [45]。由于每个代理只有一个参数,因此策略梯度方法可以快速有效地学习。4. 实验4.1. 数据集和模型架构我们通过测量标准深度网络在常见图像分类基准数据 集( 如 CIFAR10 [26]和 ImageNet [42]) 上的 准 确性,压缩和加速(FLOPs减少)率来评估我们的方法。为了证明我们的方法的有效性,我们实验了多种广泛使用的模型架构,包括具有顺序层的VGG [47],具 有 剩 余 块 的 ResNet [13] , 具 有 初 始 模 块 的GoogleLeNet [50]和具有密集块的DenseNet [194.2. 培训详细信息我们使用PyTorch [40]来实现所提出的方法,但我们的 方 法 非 常 灵 活 , 可 以 与 任 何 深 度 学 习 库 ( 如TensorFlow [1])集成。为了训练策略,我们使用了ADAM优化器[24],批量大小为256,学习率为0.01。训练从初始值为6.9的固定策略向量开始(第3.3节),但由于伯努利采样,在每个前向传递中生成不同的子网络。对于每一个正确的预测,智能体都会得到一个积极的奖励,而对于每一个错误的预测,它都会受到惩罚。我们通过网格搜索找到惩罚超参数λ的值,每个实验运行10个时期。高惩罚导致更好的准确性,因为代理对每个错误的预测都受到更多的惩罚。当我们降低惩罚时,它会试图在不影响准确性的情况下更多地压缩网络此外,我们还在每个优化步骤中对网络进行微调,以便它可以在修剪后从性能下降中恢复。策略和网络的联合训练比将学习与搜索分离的方法更有计算效率和样本效率[27,28,52]。在CIFAR数据集上,所有模型都训练了300个epoch。我们在260个epoch后停止了策略训练我们在接下来的40个历元中继续微调剩余的子网络,以提高准确性。最后,我们将丢弃的信道从网络中移除,得到压缩后的模型.在ImageNet数据集上,只训练了30个时期。我们在20个纪元后停止了策略训练,并在剩余的纪元中进行微调。4.3. 结果和分析4.3.1CIFAR-10结果我们在CIFAR-10上使用四种不同的网络(VGGNet-16/19,DenseNet-40,GoogleLeNet和ResNet-56/110)评估了所提出的方法的性能。我们使用VGGNet,其中原始VGG-16的变体用于CIFAR-10,类似于[27,28,32]。对于GoogLeNet,最终输出层更改为10个类。DenseNet-40有40层,增长率为12。为了进行公平的比较,我们使用了与[28,32]相同的训练网络。对于我们的所有实验,我们尝试调整惩罚参数(λ)以达到与报告的最新结果相似的准确度,并比较参数/FLOP减少率。VGGNet:表1显示,在更高的惩罚(λ=500)下,我 们 的 方 法 DECORE-500 能 够 实 现 比 基 线 模 型 高0.15%的准确度,参数和35%的FLOPs减少率,这表明该网络对该问题过度参数化,DECORE可以用作正则化器。与使用网络统计数据修剪网络的方法相比[27,28],我们的方法以相似或更高的精度提供更高的压缩与L1修剪[27]相比,我们的方法DECORE-200能够获得高25%的压缩 率 ( 89% vs 64% ) 和 高 30.5% 的 FLOP 减 少 率(64.8% vs 34.3%),高0.16%的准确度(93.56% vs93.40%)。类似地,与HRANK [28]相比,我们的方法在 各 种 压 缩 率 下 提 供 了 更 好 的 结 果 。 例 如 , 与HRANK-1相比,在高惩罚的情况下,DECORE-200能够实现高6.1%的压缩和高11.3%的 FLOP减少率,高0.13%的准确度(93.56% vs类似地,与HRANK-3相比,DECORE-50能够在高0.45%的准确度(91.68% vs91.23%)下实现高6.3%的压缩率此外,HRANK [28]在每层手动设置不同的压缩率以获得更高的压缩或准确性,我们的方法自动(仅通过改变惩罚λ)找到最佳设置并生成更好的结果。对于训练过程,HRANK训练每层30个epoch(16层480 epoch),训练时间随着层数的增加而增加,而我们的ap-proach对于所有设置只需要训练300 epoch。我们的方法也发现了比现有的学习通道重要性的方法更好的结果[20,60]。例如,与SSS [20]相比,DECORE-200实现了高15.2%的压缩率和高23.2%的FLOP减少率,准确度高0.54%(93.56% vs 93.02%)。与Zhao et al.[60],DECORE-200实现12354型号Top-1(%)参数(PR)触发器(PR)VGG16 93.961498万人(0.0%) 3.1373亿(0.0%)DECORE-50094.02554 万 ( 63.0% ) 20308 万(35.3%)L1 [27] 93.405.40百万(64.0%)2.06亿(34.3%)SSS[20] 93.02 3.93 M(73.8%)183.13 M(41.6%)Zhao et al.[60] 93.18 3.92 M(73.3%)190.00 M(39.1%)HRank-1 [28]93.43251万人(82.9%)14561万人(53.5%)DECORE-20093.56 1.66 M ( 89.0% ) 110.51 M ( 64.8% )GAL-0.05 [32]92.033.36百万(77.6%)189.49百万(39.6%)[28]第二十八话92.34264万人(82.1%)10861万人(65.3%)DECORE-10092.440.51百万(96.6%)51.20百万(81.5%)GAL-0.1 [32]90.73267万人(82.2%)1.7189亿(45.2%)[28]第二十八话91.23178万人(92.0%)73.70百万(76.5%)DECORE-5091.680.26百万(98.3%)36.85百万(88.3%)VGG1993.7620.0百万(0.0%)3.9844亿(0.0%)N2N [3]91.641.0百万(95.0%)-DECORE-4091.650.3M(98.5%)4390万(89.0%)表1.VGGNet在CIFAR10上的修剪结果在所有表格和图中,PR 表 示 修 剪 率 , GAL-X 表 示 具 有 稀 疏 因 子 X 的 GAL ,DECORE-λ是具有惩罚λ的DECORE,HRANK-N表示具有压缩率设置N的HRANK,并且M/B表示百万/十亿。 为了公平起见,我们提供了多-Tiple结果的HRANK,GAL和其他在各种压缩率。SSS图显示了经HRANK和GAL标准化的结果压缩率提高15.7%,FLOP减少率提高25.7%,准确率提高0.38%(93.56% vs 93.18%)。与GAL [32]等架构搜索方法相比,DECORE-100提供了高19%的压缩率和41.9%的FLOP减少率,精度高0.41% ( GAL-0.05 ) 。 对 于 高 压 缩 ( 低 惩 罚 ) ,DECORE-50能够在比GAL-0.1高0.95%的精度下实现16.1%以上的与基于RL的架构搜索方法N2 N [3]相比,DECORE在VGG-19网络上以相似的精度实现了3.5%的高压缩。N2 N [3]训练可能需要超过2,500个epoch才能获得最佳架构。DECORE仅用300个epoch(9%)就实现了类似的精度和更高的压缩。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 保险服务门店新年工作计划PPT.pptx
- 车辆安全工作计划PPT.pptx
- ipqc工作总结PPT.pptx
- 车间员工上半年工作总结PPT.pptx
- 保险公司员工的工作总结PPT.pptx
- 报价工作总结PPT.pptx
- 冲压车间实习工作总结PPT.pptx
- ktv周工作总结PPT.pptx
- 保育院总务工作计划PPT.pptx
- xx年度现代教育技术工作总结PPT.pptx
- 出纳的年终总结PPT.pptx
- 贝贝班班级工作计划PPT.pptx
- 变电值班员技术个人工作总结PPT.pptx
- 大学生读书活动策划书PPT.pptx
- 财务出纳月工作总结PPT.pptx
- 大学生“三支一扶”服务期满工作总结(2)PPT.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功