没有合适的资源?快使用搜索试试~ 我知道了~
神经网络: 移动应用平台感知网络适应
0NetAdapt: 面向移动应用的平台感知神经网络适应0Tien-Ju Yang 1 � [0000 − 0003 − 4728 − 0321] , Andrew Howard 2 , Bo Chen 2 , Xiao Zhang 2 , Alec Go 2 , MarkSandler 2 , Vivienne Sze 1 , 和 Hartwig Adam 201 麻省理工学院 2 Google Inc. { tjy,sze } @mit.edu, {howarda,bochen,andypassion,ago,sandler,hadam } @google.com0摘要.本工作提出了一种名为NetAdapt的算法,根据资源预算自动将预训练的深度神经网络适应到移动平台。虽然许多现有算法根据MACs或权重的数量简化网络,但优化这些间接度量可能不一定能减少延迟和能量消耗等直接度量。为了解决这个问题,NetAdapt将直接度量纳入其适应算法中。这些直接度量是使用经验测量来评估的,因此不需要对平台和工具链有详细的了解。NetAdapt自动且逐步地简化预训练网络,直到满足资源预算并最大化准确性。实验结果表明,与最先进的自动网络简化算法相比,NetAdapt在移动CPU和移动GPU上实现了更好的准确性与延迟的权衡。对于ImageNet数据集上的图像分类,NetAdapt在MobileNets(V1&V2)上实现了高达1.7倍的推断延迟加速,同时保持相等或更高的准确性。01 引言0深度神经网络(DNN)已成为人工智能的不可或缺的组成部分,在图像分类和目标检测等常见视觉任务上提供接近或超越人类的准确性。然而,基于DNN的AI应用通常对资源受限的平台(如移动电话)来说计算上过于复杂,这限制了大量用户体验的丰富性。最近关于DNN设计的大部分工作都集中在提高网络的效率上。然而,大多数工作都是基于优化“间接度量”,如乘加操作(MACs)的数量或权重的数量,作为网络资源消耗的代理。尽管这些间接度量方便计算并集成到优化框架中,但它们可能不是对于实际应用中的“直接度量”(如延迟)的良好近似。0� 本工作是在Tien-Ju Yang在Google实习期间完成的。………………02 T.-J. Yang等人0NetAdapt测量0网络提案0经验测量0度量 提案A ... 提案Z0延迟 15.6 ... 14.30能量 41 ... 460预训练网络0度量 预算0延迟 3.80能量 10.50预算0适应后的网络0平台0A B C D Z0# 过滤器0#层0图1.NetAdapt根据资源预算自动将预训练网络适应移动平台。该算法通过直接度量资源消耗来进行引导。NetAdapt使用经验测量来评估直接度量,从而消除了对特定平台知识的要求。在每次迭代中,NetAdapt生成许多网络提案,并在目标平台上对这些提案进行测量。这些测量结果用于指导NetAdapt在下一次迭代中生成下一组网络提案。0和能量消耗之间的关系可能是高度非线性的,并且与平台相关,正如[15, 25,26]所观察到的。在本工作中,我们还将通过实验证明,实际上在移动设备上运行时,具有更少MACs的网络可能会更慢;具体而言,我们将展示一个MACs减少19%的网络实际上会导致延迟增加29%(见表1)。设计高效网络架构有两种常见方法。第一种是设计一个单一架构,不考虑底层平台。由于不同的平台特性,单一架构很难在所有平台上都能以最佳性能运行。例如,在具有相同准确性的情况下,桌面GPU上最快的架构可能不是移动CPU上最快的架构。此外,很难保证该架构能够满足所有感兴趣的平台的资源预算(如延迟)。第二种方法是根据目标平台的特性手动设计架构。然而,这种方法需要对平台的实现细节(包括工具链、配置和硬件架构)有深入的了解,而这些信息通常在硬件的专有性质和现代系统的高复杂性下是不可获得的。此外,为每个平台手动设计不同的架构对于研究人员和工程师来说是一项繁重的任务。在本工作中,我们提出了一种名为NetAdapt的平台感知算法,以解决上述问题并促进平台特定的DNN部署。0NetAdapt 30NetAdapt(图1)在优化循环中结合了直接指标,因此不会受到间接指标和直接指标之间的差异的影响。直接指标是通过从目标平台获取的经验测量来评估的。这使得算法能够支持任何平台,而无需对平台本身有详细的了解,尽管这样的知识仍然可以纳入算法中以进一步改进结果。在本文中,我们以延迟作为直接指标和资源作为目标的示例,尽管我们的算法可以推广到其他指标或它们的组合(第4.3节)。NetAdapt的网络优化是以自动方式进行的,逐渐减少预训练网络的资源消耗,同时最大化准确性。优化迭代运行,直到满足资源预算。通过这种设计,NetAdapt不仅可以生成满足预算的网络,还可以生成一系列具有不同权衡的简化网络,这允许动态网络选择和进一步研究。最后,NetAdapt被设计为易于解释,而不是一个黑盒子。例如,通过研究所提出的网络架构和相应的经验测量,我们可以理解为什么选择了一个提案,这为如何改进平台和网络设计提供了启示。本文的主要贡献是:0-一个使用直接指标优化预训练网络以满足给定资源预算的框架。使用经验测量来评估直接指标,因此不需要平台特定的知识。-一种自动约束网络优化算法,可以在满足约束条件(即预定义的资源预算)的同时最大化准确性。该算法在测量推理延迟减少方面优于最先进的自动网络简化算法,同时提供相等或更高的准确性。此外,将生成一系列具有不同权衡的简化网络,以允许动态网络选择和进一步研究。-实验证明了NetAdapt在不同平台和实时级网络上的有效性,例如较难简化的小型MobileNetV1。02 相关工作0有大量的工作旨在简化DNNs。我们将读者引用到[21]进行全面的调查,并在下面总结主要方法。最相关的工作是基于修剪的方法。[6, 14,16]旨在从DNNs中删除单个冗余权重。然而,大多数平台无法充分利用非结构化稀疏滤波器[26]。胡等人[10]和Srinivas等人[20]专注于删除整个滤波器而不是单个权重。这些方法的缺点是需要手动选择每个层的压缩率。MorphNet[5]利用稀疏正则化器来自动确定逐层的压缩率。ADC [8]使用强化学习04 T.-J. Yang等人0学习选择压缩率的策略。所有上述方法与我们的关键区别在于它们不是通过直接指标进行引导,因此可能导致次优性能,如第4.3节所示。能量感知修剪[25]使用能量模型[24],并将估计的能量数值纳入修剪算法中。然而,这需要设计模型来估计每个目标平台的直接指标,这需要对平台有详细的了解,包括其硬件架构[3]和工具链中使用的网络到阵列映射[2]。NetAdapt不需要这个要求,因为它可以直接使用经验测量。DNNs也可以通过直接设计高效的网络架构、分解或量化来简化。MobileNets [9, 18]和Shu�eNets[27]提供了高效的层操作和参考架构设计。基于层分解的算法[13,23]利用矩阵分解来减少操作的数量。量化[11, 12,17]通过降低计算精度来降低复杂度。所提出的算法NetAdapt与这些方法是互补的。例如,NetAdapt可以将MobileNets适应到进一步推动高效网络的前沿,如第4节所示,尽管MobileNets比其他更大的网络(如VGG [19])更紧凑且更难简化。03 方法: NetAdapt0我们提出了一种名为 NetAdapt的算法,允许用户自动简化预训练网络以满足平台的资源预算并最大化准确率。NetAdapt通过直接度量资源消耗来指导,直接度量通过使用经验测量进行评估,从而消除了对详细的平台特定知识的要求。03.1 问题建模0NetAdapt 旨在解决以下非凸约束问题:0最大化 Net 准确率 ( Net )0满足约束条件 Res j ( Net ) ≤ Bud j ,j = 1 , . . . , m, (1)0其中 Net 是从初始预训练网络简化得到的网络,Acc ( ∙ ) 计算准确率,Res j ( ∙ ) 评估第j 个资源的直接度量,Bud j 是第 j个资源的预算和优化的约束条件。资源可以是延迟、能量、内存占用等,或者是这些度量的组合。基于类似于渐进障碍方法 [1]的思想,NetAdapt将该问题分解为一系列较简单的问题,并进行迭代求解:0最大化 Net i 准确率 ( Net i )0满足约束条件 Res j ( Net i ) ≤ Res j ( Net i − 1 ) − ∆R i,j ,j = 1 , . . . , m,(2)0NetAdapt 50算法 1: NetAdapt0输入: 预训练网络: Net 0 (具有 K 个卷积和全连接层),资源预算: Bud,资源减少计划: ∆R i 输出: 符合资源预算的适应网络: ˆ Net01 i = 0;02 Res i = 进行经验测量( Net i );03 while Res i > Bud do04 Con = Res i - ∆R i ;05 for k from 1 to K do0/* TakeEmpiricalMeasurement在选择满足约束条件(即当前预算)的正确过滤器数量时也被 ChooseNumFilters调用。 */06 N Filt k , Res Simp k = 选择过滤器数量( Net i , k, Con);07 Net 简化 k = 选择哪些过滤器( Net i , k, N Filt k );08 Net 简化 k = 短期微调( Net 简化 k );09 Net i +1 , Res i +1 = 选择最高准确率( Net 简化 : , Res 简化 : );010 i = i + 1;011 ˆ Net = 长期微调( Net i );012 return ˆ Net ;0其中 Net i 是第 i 次迭代生成的网络,Net 0 是初始预训练网络。随着迭代次数的增加,约束条件(即当前资源预算 Res j ( Net i −1 ) − ∆R i,j )逐渐变得更加严格。∆R i,j 大于零,表示约束对第 j 个资源的紧缩程度。0在第 i次迭代中,约束条件的资源可以从一次迭代到另一次迭代发生变化。这被称为“资源减少计划”,类似于学习率计划的概念。当对于每种资源类型,Res j ( Net i − 1 ) − ∆Ri,j 等于或小于 Bud j时,算法终止。它输出最终适应的网络,并且还可以生成一系列简化的网络(即每次迭代的最高准确率网络 Net 1 ,...,Net i ),以提供准确率和资源消耗的高效前沿。03.2 算法概述0为简单起见,我们假设只需要满足一个资源的预算,具体来说是延迟。减少延迟的一种方法是从卷积(CONV)或全连接(FC)层中删除过滤器。虽然还有其他减少延迟的方法,但我们将使用这种方法来演示 NetAdapt。NetAdapt算法在伪代码中的详细信息见算法 1 和图 2。每次迭代通过减少单个 CONV 或 FC层中的过滤器数量(图 2 中的“选择过滤器数量”和“选择哪些过滤器”块)来解决Eq. 2。从层中删除的过滤器数量由经验测量指导。NetAdapt删除整个过滤器而不是单个权重,因为大多数平台可以利用删除整个过滤器的优势。...06 T.-J. Yang等0预训练网络0选择过滤器数量0选择哪些过滤器0短期微调0选择过滤器数量0选择哪些过滤器0短期微调0选择最高准确性0第1层 第K层0长期微调0在预算范围内0超出预算0适应网络0测量0平台0图2.该图可视化了NetAdapt的算法流程。在每次迭代中,NetAdapt通过简化(即从一个层中删除过滤器)来减少资源消耗。为了最大化准确性,它尝试单独简化每个层,并选择具有最高准确性的简化网络。一旦达到目标预算,选择的网络将再次进行微调直到收敛。0这种策略可以同时减少过滤器和特征图,这在资源消耗中起着重要作用[25]。然后,简化的网络在短时间内进行微调,以恢复一些准确性(短期微调块)。在每次迭代中,前三个步骤(加粗显示)分别应用于每个CONV或FC层3。因此,NetAdapt在一次迭代中生成K(即CONV和FC层的数量)个网络提案,每个提案都有一个从上一次迭代中修改的层。具有最高准确性的网络提案将传递到下一次迭代(选择最高准确性块)。最后,一旦达到目标预算,选择的网络将再次进行微调直到收敛(长期微调块)。03.3 算法细节0本节描述了NetAdapt算法(图2)中的关键块。选择过滤器数量此步骤侧重于根据经验测量确定在特定层中保留多少过滤器。NetAdapt逐渐减少目标层中的过滤器数量,并测量每个简化网络的资源消耗。将选择满足当前资源约束的最大过滤器数量。注意,当从一层中删除一些过滤器时,还应删除后续层中的相关通道。因此,需要考虑其他层的资源消耗的变化。选择哪些过滤器此步骤根据前一步的架构选择要保留的过滤器。文献中提出了许多方法,我们选择基于幅度的方法来保持算法简单。在这项工作中,将保留具有最大ℓ2范数幅度的N个过滤器,其中N是由前一步确定的过滤器数量。可以采用更复杂的方法来提高准确性,例如根据它们对特征图的联合影响来删除过滤器[25]。短期/长期微调NetAdapt中的短期微调和长期微调步骤都涉及网络级的端到端微调。短期微调的迭代次数比长期微调少。在算法的每次迭代中,我们使用相对较少的迭代次数(即短期)对简化网络进行微调以恢复准确性,可以并行或顺序进行。这一步在适应资源减少较大的小型网络时尤为重要,否则准确性将降至零,这可能导致算法选择错误的网络提案。随着算法的进行,网络将持续训练但不会收敛。一旦获得最终的适应网络,我们将对网络进行更多迭代直到收敛(即长期微调)作为最后一步。03 该算法也可以作为一个单元应用于多个层,而不是单个层。例如,在ResNet[7]中,我们可以将残差块视为一个单元,以加快适应过程。24682123442345634568456712321354246635784680NetAdapt 70#通道0#过滤器0第2层0#通道0#过滤器0第1层0延迟时间为6+ 4 = 10毫秒04个过滤器06个过滤器0第1层0第2层0猫0图3. 该图说明了如何使用逐层查找表来进行快速资源消耗估计。0的过滤器数量可以满足当前资源约束的最大数量。请注意,当从一层中删除一些过滤器时,还应删除后续层中的相关通道。因此,需要考虑其他层的资源消耗的变化。选择哪些过滤器此步骤根据前一步的架构选择要保留的过滤器。文献中提出了许多方法,我们选择基于幅度的方法来保持算法简单。在这项工作中,将保留具有最大ℓ2范数幅度的N个过滤器,其中N是由前一步确定的过滤器数量。可以采用更复杂的方法来提高准确性,例如根据它们对特征图的联合影响来删除过滤器[25]。短期/长期微调NetAdapt中的短期微调和长期微调步骤都涉及网络级的端到端微调。短期微调的迭代次数比长期微调少。在算法的每次迭代中,我们使用相对较少的迭代次数(即短期)对简化网络进行微调以恢复准确性,可以并行或顺序进行。这一步在适应资源减少较大的小型网络时尤为重要,否则准确性将降至零,这可能导致算法选择错误的网络提案。随着算法的进行,网络将持续训练但不会收敛。一旦获得最终的适应网络,我们将对网络进行更多迭代直到收敛(即长期微调)作为最后一步。03.4 快速资源消耗估计0如第3.3节所述,NetAdapt使用经验测量来确定在给定资源约束下保留层中的滤波器数量。理论上,我们可以在适应过程中动态测量每个简化网络的资源消耗。然而,由于可用设备数量有限,进行测量可能会很慢且难以并行化。因此,这可能会成为计算的瓶颈,代价过高。8T.-J. Yang et al.0204060801001201400204060801001201400实际延迟(毫秒)0估计的延迟(毫秒)0图4. 在调整输入分辨率为224的100%MobileNetV1时,通过使用逐层查找表估计的延迟(使用逐层查找表的逐层延迟之和)和在Google Pixel 1 CPU的单个大核心上实际测得的延迟之间的比较 [9].0我们通过构建逐层查找表来解决这个问题,该表记录了每个层的预测资源消耗。在执行算法时,我们查找每个层的表,并将逐层测量值相加以估计网络的资源消耗,如图3所示。不使用网络级表的原因是表的大小会随着层数的增加而呈指数增长,这使得对于深度网络来说变得难以处理。此外,具有相同形状和特征图大小的层只需要测量一次,这在现代深度网络中很常见。图4比较了在调整输入分辨率为224的100%MobileNetV1时,通过使用逐层查找表估计的延迟(从逐层查找表中的逐层延迟之和)和在Google Pixel 1CPU的单个大核心上实际测得的延迟。实际和估计的延迟数字高度相关,它们之间的差异足够小,可以被NetAdapt使用。04 实验结果0在本节中,我们将NetAdapt算法应用于MobileNets [9,18],这些网络是为移动应用设计的,并在ImageNet数据集[4]上进行实验。我们没有将NetAdapt应用于像ResNet [7]和VGG[19]这样的较大网络,因为随着网络变得更小,简化变得更加困难;这些网络也很少部署在移动平台上。我们将NetAdapt与三种最先进的网络简化方法进行了对比:0- Multipliers[9]是简化网络的简单而有效的方法。两种常用的乘法器是宽度乘法器和分辨率乘法器;它们也可以同时使用。宽度乘法器按比例缩放所有卷积(CONV)和全连接(FC)层的滤波器数量,分辨率乘法器缩放输入图像的分辨率。我们使用“50%MobileNetV1(128)”表示在输入图像分辨率为128的MobileNetV1上应用50%的宽度乘法器。NetAdapt90- MorphNet [5]是一种基于稀疏正则化的自动网络简化算法。- ADC[8]是一种基于强化学习的自动网络简化算法。0我们将展示NetAdapt在小型MobileNetV1(50%MobileNetV1(128))上的性能,以展示NetAdapt在实时分类网络上的有效性,这些网络比较大的网络更难简化。为了展示NetAdapt的普适性,我们还将在大型MobileNetV1(100%MobileNetV1(224))上在不同平台上测量其性能。最后,我们将调整大型MobileNetV2(100% MobileNetV2(224))以推动高效网络的前沿。04.1 MobileNetV1实验的详细设置0我们在MobileNetV1上进行了大部分实验和研究,并在本节中详细介绍了设置。NetAdapt配置 MobileNetV1[9]基于深度可分离卷积,将一个m×m的标准卷积层分解为一个m×m的深度层和一个称为点卷积层的1×1的标准卷积层。在实验中,我们将每个深度层与相应的点卷积层进行调整,并根据点卷积层选择要保留的滤波器。当调整小型MobileNetV1(50%MobileNetV1(128))时,延迟减少(方程2中的∆Ri,j)从0.5开始,并以每次迭代0.96的速率衰减。当调整其他网络时,我们使用相同的衰减率,但将初始延迟减少与初始预训练网络的延迟成比例缩放。网络训练我们保留了训练集中的一万张图像,每个类别十张,作为保留集。不包括保留图像的新训练集用于进行短期微调,保留集用于在每次迭代中从简化网络中选择最高准确率的网络。整个训练集用于长期微调,这是NetAdapt的最后一步中执行的。由于训练配置对准确性有很大影响,除非另有说明,否则我们将相同的训练配置应用于所有网络,以进行更公平的比较。我们采用与MorphNet[5]相同的训练配置(批量大小为128,而不是96)。长期微调的学习率为0.045,短期微调的学习率为0.0045。这个配置将ADC网络的top-1准确率提高了0.3%,将几乎所有乘法器网络的top-1准确率提高了最多3.8%,只有一个数据点的准确率降低了0.2%。我们在以下分析中使用这些数字。此外,所有准确率数字都是在验证集上报告的,以显示真实性能。移动推断和延迟测量 我们使用Google的TensorFlowLite引擎[22]在移动CPU上进行推断,并使用高通的Snapdragon神经处理引擎(SNPE)在移动GPU上进行推断。对于在移动CPU上的实验,延迟是在一个单独的大核心上测量的。41%43%45%47%49%51%53%55%57%59%35791113MorphNetNetAdapt010 T.-J. Yang等0Top-1准确性0延迟(毫秒)0乘法器0更快 �.3% 更高的准确性0更快 �.3% 更高的准确性0图5. 该图比较了NetAdapt(适应小型MobileNetV1)与乘法器[9]和MorphNet[5]在GooglePixel 1的移动CPU上的性能。0Google Pixel 1手机。对于在移动GPU上的实验,延迟是使用三星GalaxyS8的SNPE基准测试工具测量的。对于每个延迟数值,我们报告11个延迟测量的中位数。04.2 与基准算法的比较0在移动CPU上适应小型MobileNetV1在这个实验中,我们将NetAdapt应用于将小型MobileNetV1(50%MobileNetV1(128))适应到移动CPU上。它是最紧凑的网络之一,实现了实时性能。相比其他更大的网络(包括大型MobileNetV1),简化它更具挑战性。结果在图5中进行了总结和比较,与乘法器[9]和MorphNet[5]相比,我们观察到NetAdapt的速度比乘法器快1.7倍,准确性相同或更高。对于MorphNet,NetAdapt的结果比其快1.6倍,准确性高0.3%。0在移动CPU上适应大型MobileNetV1在这个实验中,我们将NetAdapt应用于将大型MobileNetV1(100%MobileNetV1(224))适应到移动CPU上。它是最大的MobileNetV1,实现了最高的准确性。由于其延迟大约是小型MobileNetV1的8倍,我们将初始延迟缩减比例扩大8倍。结果在图6中显示并与乘法器[9]和ADC[8]进行了比较。NetAdapt的准确性高于乘法器和ADC,同时速度分别提高了1.4倍和1.2倍。与上述基准算法进行比较时,训练配置保持不变,我们还在图6中展示了使用NetAdapt适应的网络的准确性可以通过更好的训练配置进一步提高。简单地添加dropout和标签平滑后,准确性可以提高1.3%。调整每个适应网络的训练配置可以获得更高的准确性,但这不是本文的重点。NetAdapt1164%65%66%67%68%69%70%71%72%30507090110130ADCNetAdapt64%65%66%67%68%69%70%71%72%7911131517ADCNetAdapt0Top-1准确性0延迟(毫秒)0乘法器0NetAdapt(更好的训练配置)0更快 �.4% 更高的准确性0更快 �.4% 更高的准确性0图6. 该图比较了NetAdapt(适应大型MobileNetV1)与乘法器[9]和ADC[8]在Google Pixel1的移动CPU上的性能。此外,通过使用更好的训练配置(简单地添加dropout和标签平滑),适应网络的准确性还可以进一步提高1.3%。0Top-1准确性0延迟(毫秒)0乘法器0NetAdapt(更好的训练配置)0更快 �.�% 更高的准确性0更快 �.�% 更高的准确性0图7. 该图比较了NetAdapt(对大型MobileNetV1进行调整)与乘法器[9]和ADC[8]在三星GalaxyS8手机的移动GPU上的性能。此外,通过使用更好的训练配置(简单地添加dropout和标签平滑),适应网络的准确性还可以进一步提高1.3%。0在移动GPU上适应大型MobileNetV1在这个实验中,我们将NetAdapt应用于将大型MobileNetV1适应到移动GPU上,以展示NetAdapt的普适性。图7显示,NetAdapt在速度上比其他基准算法提高了1.2倍,并具有更高的准确性。由于SNPE工具的限制,逐层的延迟分解只考虑了计算时间,而没有包括其他操作的延迟,例如特征图移动,这可能是昂贵的[25]。这影响了用于此实验的查找表的精度。此外,我们观察到存在一个约为6.2毫秒(应用NetAdapt之前网络的延迟的38%)的不可减少的延迟。这些因素导致在移动GPU上的改进较移动CPU上的实验小。此外,当应用之前描述的更好的训练配置时,准确性可以进一步提高1.3%。0%10%20%30%40%50%60%051015Top-1 AccuracyLatency (ms)0 Iterations10k Iterations40k Iterations200k Iterations35%40%45%50%55%60%3456789101112Top-1 AccuracyLatency (ms)Before LFTAfter LFT012 T.-J. Yang等0网络Top-1准确率(%)MACs数量(×10^6)延迟(ms)025% MobileNetV1 (128) [9] 45.1 (+0) 13.6 (100%) 4.65 (100%) MorphNet [5] 46.0 (+0.9) 15.0 (110%)6.52 (140%) NetAdapt 46.3 (+1.2) 11.0 (81%) 6.01 (129%)075% MobileNetV1 (224) [9] 68.8 (+0) 325.4 (100%) 69.3 (100%) ADC [8] 69.1 (+0.3) 304.2 (93%) 79.2(114%) NetAdapt 69.1 (+0.3) 284.3 (87%) 74.9 (108%)0表1.在以MACs数量为目标的图像分类中,NetAdapt(适应小型或大型MobileNetV1)与三个基准算法的比较。延迟数值是在Google Pixel1的移动CPU上测量的。我们大致匹配它们的准确率并比较它们的延迟。0图8. 在Google Pixel1的移动CPU上,适应小型MobileNetV1(不进行长期微调)时,不同短期微调迭代的准确率。零次迭代表示没有进行短期微调。0图9. 在适应Google Pixel1的移动CPU上,对小型MobileNetV1进行长期微调前后的比较。尽管短期微调能够很好地保持准确率,但长期微调平均额外提高了3.4%的准确率(从1.8%提高到4.5%)。04.3消融研究0直接度量的影响。在这个实验中,我们使用间接度量(即MACs的数量)而不是直接度量(即延迟)来指导NetAdapt,以研究使用直接度量的重要性。在计算MACs的数量时,我们只考虑CONV和FC层,因为批量归一化层可以折叠到相应的CONV层中,而其他层的大小可以忽略不计。表1显示,NetAdapt在MACs数量较低和准确率较高的情况下优于基准算法。这证明了NetAdapt的有效性。然而,我们也观察到,MACs数量较低的网络不一定更快。这表明将直接度量纳入优化流程的必要性。0短期微调的影响。图8显示了在没有进行长期微调的情况下,适应小型MobileNetV1的不同短期微调迭代的准确率。如果没有进行短期微调(即零次迭代),准确率会迅速下降到接近零。在这个低准确率区域,算法仅基于噪声选择最佳的网络提案,因此0.50.962847.74.630.51.02047.44.710.80.952046.74.65050100150200250300350400450012345678910 11 12 130NetAdapt 130初始化(ms)衰减率总迭代次数Top-1准确率(%)延迟(ms)0表2. 资源减少计划的影响。0滤波器数量0Conv2d层索引0乘法器0NetAdapt0图10. 当适应小型MobileNetV1以匹配25%MobileNetV1(128)的延迟时,NetAdapt和乘法器生成不同的简化网络。0性能较差。在对网络进行短时间(一万次迭代)的微调后,准确率始终保持在20%以上,这使得算法能够做出更好的决策。尽管增加迭代次数可以提高准确率,但我们发现使用四万次迭代对于小型MobileNetV1来说在准确率和速度之间达到了良好的平衡。0长期微调的影响。图9说明了进行长期微调的重要性。尽管短期微调能够很好地保持准确率,但长期微调仍然可以使准确率提高多达4.5%或平均提高3.4%。由于短期微调的训练时间较短,训练在收敛之前就被终止。因此,长期微调能够进一步提高准确率并不令人意外。0资源减少计划的影响表2显示了使用三种不同的资源减少计划的影响,这些计划在第3.1节中定义。经验上,每次迭代使用更大的资源减少会增加适应速度(即减少总适应迭代次数),但会降低准确性。在相同的总迭代次数下,结果表明较小的初始资源减少与较慢的衰减更可取。04.4 调整网络架构的分析0使用NetAdapt和多项式对适应的小型MobileNetV1的网络架构在图10中显示和比较。它们的延迟与25%的MobileNetV1(128)相似。有两个有趣的观察结果。014 T.-J. Yang等人0网络Top-1准确率(%)延迟(毫秒)075%的MobileNetV2(224)[18]69.8(+0)61.4(100%)NetAdapt(相似延迟)70.9(+1.1)61.6(100%)NetAdapt(相似准确性)70.0(+0.2)53.5(87%)0表3.NetAdapt(适应大型MobileNetV2(100%MobileNetV2(224)))和多项式[18]在GooglePixel 1的移动CPU上进行比较。我们比较了在相似准确性和相似延迟下的延迟和准确性。0首先,NetAdapt在第7到10层中去除了更多的过滤器,但在第6层中去除的过滤器较少。由于在第6层中减少了特征图分辨率,但在第7到10层中没有减少,我们假设当特征图分辨率减少时,需要更多的过滤器以避免创建信息瓶颈。第二个观察结果是NetAdapt在第13层(即最后的CONV层)保留了更多的过滤器。一个可能的解释是ImageNet数据集包含一千个类别,因此最后的FC层需要更多的特征图来进行正确的分类。04.5 在移动CPU上适应大型MobileNetV20在本节中,我们展示了将NetAdapt应用于MobileNetV2[18]的初步鼓舞人心的结果。MobileNetV2将具有线性瓶颈的反向残差引入MobileNetV1,并变得更加高效。由于MobileNetV2使用了残差连接,我们只能适应单个内部(扩展)层或同时减少相同分辨率的所有瓶颈层。MobileNetV1和MobileNetV2实验设置之间的主要区别是每个网络提案都经过短期微调,迭代次数为一万次,初始延迟减少为1ms,延迟减少衰减为0.995,批量大小为96,并使用了辍学和标签平滑。如表3所示,NetAdapt的准确性比多项式高1.1%,速度快1.2倍。05 结论0总之,我们提出了一种自动化算法NetAdapt,用于在给定实际资源预算的情况下将预训练网络适应到移动平台。NetAdapt可以将延迟和能量等直接指标纳入优化中,以根据平台的特性最大化适应性能。通过使用经验测量,只要我们可以测量所需的指标,NetAdapt就可以应用于任何平台,而无需了解平台的底层实现。我们通过实验证明,与其他最先进的网络简化算法相比,所提出的算法可以在准确性与延迟之间取得更好的平衡(速度提高了1.7倍,准确性相等或更高)。在这项工作中,我们旨在强调在优化高效网络时使用直接指标的重要性;我们希望未来的研究工作将考虑直接指标,以进一步提高高效网络的性能。0参考文献0[1] Audet, C., J. E. Dennis, J.: 无导数非线性规划的渐进障碍。SIAM Journal onOptimization 20(1),445-472(2009)[2] Chen, Y.H.,Emer, J.,Sze,V.:Eyeriss:用于能量高效数据流的空间架构卷积神经网络。在:第43届国际计算机体系结构研讨会(ISCA)论文集(2016)[3] Chen, Y.H.,Krishna, T.,Emer, J.,Sze,V.:Eyeriss:一种用于深度卷积神经网络的能量高效可重构加速器。IEEE Journal ofSolid-State Circuits 52,127-138(2016)[4] Deng, J.,Dong, W.,Socher, R.,Li,L.J.,Li, K.,Fei-Fei,L.:Imagenet:一个大规模的分层图像数据库。在:IEEE计算机视觉和模式识别会议(CVPR)。第248-255页。IEEE(2009)[5] Gordon, A.,Eban, E.,Nachum,O.,Chen, B.,Yang, T.J.,Choi,E.:Morphnet:快速简单的资源受限结构学习深度网络。在:IEEE计算机视觉和模式识别会议(CVPR)(2018)[6] Han, S.,Pool, J.,Tran, J.,Dally,W.:学习权重和连接以实现高效神经网络。在:神经信息处理系统的进展。第1135-1143页(2015)[7] He, K.,Zhang, X.,Ren, S.,Sun,J.:用于图像识别的深度残差学习。在:IEEE计算机视觉和模式识别会议(CVPR)(2016)[8] He, Y.,Han,S.:ADC:使用强化学习的自动深度压缩和加速。arXiv预印本arXiv:1802.03494(2018)[9] Howard, A.G.,Zhu, M.,Chen, B.,Kalenichenko, D.,Wang,W.,Weyand, T.,Andreetto, M.,Adam,H.:移动网络:用于移动视觉应用的高效卷积神经网络。arXiv预印本arXiv:1704.04861(2017)[10] Hu, H.,Peng, R.,Tai, Y.W.,Tang,C.K.:网络修剪:一种基于数据驱动的神经元修剪方法,用于高效深度架构。arXiv预印本arXiv:1607.03250(2016)[11] Hubara, I.,Courbariaux, M.,Soudry,D.,El-Yaniv, R.,Bengio,Y.:二值化神经网络。在:神经信息处理系统的进展。第4107-4115页(2016)[12]Jacob, B.,Kligys, S.,Chen, B.,Zhu, M.,Tang, M.,Howard, A.,Adam,H.,Kalenichenko,D.:整数算术推理的量化和训练神经网络。arXiv预印本arXiv:1712.05877(2017)[13] Kim, Y.D.,Park, E.,Yoo, S.,Choi, T.,Yang, L.,Shin,D.:用于快速和低功耗移动应用的深度卷积神经网络压缩。arXiv预印本arXiv:1511.06530(2015)[14] Le Cun, Y.,Denker, J.S.,Solla,S.A.:最佳脑损伤。在:神经信息处理系统的进展(1990)016 T.-J. Yang等0[15] Liangzhen Lai,NaveenSuda,V.C.:并非所有操作都是相等的!在:SysML(2018)[16]Molchanov,P.,Tyree,S.,Karras,T.,Aila,T.,Kautz,J.:修剪卷积神经网络以实现资源高效的迁移学习。arXiv预印本arXiv:1611.06440(2016)[17]Rastegari,M.,Ordonez,V.,Redmon,J.,Farhadi,A.:Xnor-net:使用二值卷积神经网络进行Imagenet分类。在:欧洲计算机视觉会议(ECCV)(2016)[18]Sandler,M.,Howard,A.G.,Zhu,M.,Zhmoginov,A.,Chen,L.C.:
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功