没有合适的资源?快使用搜索试试~ 我知道了~
Zhaohui Yang1,2, Yunhe Wang2, Xinghao Chen2, Boxin Shi3,4,Chao Xu1, Chunjing Xu2, Qi Tian2∗, Chang Xu5{zhaohuiyang,shiboxin}@pku.edu.cn; xuchao@cis.pku.edu.cnArchitectureTop-1 %Latency (ms)DARTS73.3113.2NASNet74.0104.7PNASNet74.2157.69GDAS74.0115.47CARS-Lat-A (ours)62.641.9CARS-Lat-B (ours)67.444.9CARS-Lat-C (ours)69.545.6CARS-Lat-D (ours)71.957.6CARS-Lat-E (ours)72.264.5CARS-Lat-F (ours)74.089.362646668707274CARS-Lat (Ours)DARTSNASNetPNASNetGDAS18290CARS:高效神经架构搜索的连续进化01 机器感知重点实验室(教育部),北京大学机器智能系。2 华为诺亚方舟实验室。 3北京大学计算机科学技术研究所。 4 鹏城实验室。5 悉尼大学计算机科学学院。0{yunhe.wang,xinghao.chen,tian.qi1,xuchunjing}@huawei.com; c.xu@sydney.edu.au0摘要0大多数现有的神经架构搜索(NAS)算法中的搜索技术主要以可微方法为主,以提高效率。相反,我们开发了一种高效的连续进化方法来搜索神经网络。最新一代中共享一个SuperNet中参数的种群中的架构将在训练数据集上进行几个时期的调整。下一代进化中的搜索将直接继承SuperNet和种群,从而加速最优网络的生成。进一步应用非支配排序策略,仅保留Pareto前沿上的结果,以准确更新SuperNet。在仅使用0.4个GPU天的连续搜索后,将产生几个具有不同模型大小和性能的神经网络。因此,我们的框架在移动设置下提供了一系列参数数量从3.7M到5.1M的网络。这些网络在基准ImageNet数据集上超过了现有方法产生的网络。01. 引言0� 通讯作者。040 60 80 100 120 140 160 延迟(毫秒)0Top-1准确率(%)0图1.在CIFAR-10数据集上搜索CARS-Lat模型。搜索阶段考虑验证性能和设备感知变量,即HUAWEI P30Pro上的移动设备延迟。Top-1准确率是在ILSVRC2012数据集上的性能。0在获得有意义的结果之前,设计新颖的网络架构通常需要进行多次试验[22]。为了加速这个过程并使其自动化,提出了网络架构搜索(NAS)[44, 14, 36, 20,16],学习到的架构在各种任务上超过了人工设计的架构。然而,这些搜索方法通常需要大量的计算资源来搜索具有可接受性能的架构。搜索神经架构的技术主要分为三类,即基于进化算法(EA),基于强化学习(RL)和基于梯度的方法。基于EA的方法,如[38, 37,48, 42, 40,41],初始化一组模型并进化为更好的架构,这需要耗费大量时间,例如Real等人的研究花费了3150个GPU天进行搜索[38]。基于RL的方法,如[60,58],使用控制器预测一系列操作,并训练不同的架构以获得奖励。对于给定的架构,这些方法必须对其进行大量的训练才能获得性能。然后评估其性能以指导进化或优化控制器,这使得搜索阶段的效率较低。基于梯度的方法(例如DARTS[32])首先训练一个SuperNet,并在搜索过程中引入注意力机制,然后在搜索后删除弱连接。这个阶段通过梯度下降优化进行,非常高效。然而,搜索得到的架构缺乏多样性。虽然[37]中的一些实验表明,进化算法发现的神经架构比基于RL的方法更好,但EA的搜索成本要高得多,因为每个个体(即进化算法中的神经网络)都需要进行独立评估。此外,搜索空间中可能存在一些性能极差的架构。如果我们直接采用ENAS[35]提出的权重共享方法,SuperNet必须经过训练来弥补这些较差的搜索空间。因此,有必要对现有的进化算法进行改进,以实现高效而准确的神经架构搜索。在本文中,我们提出了一种高效的基于EA的神经架构搜索框架。我们开发了一种连续进化策略,以最大限度地利用我们在上一代进化中学到的知识。具体而言,首先使用一些可观的单元和块初始化一个SuperNet。通过几个基准操作(即交叉和变异),在SuperNet中生成代表架构的进化算法中的个体。采用非支配排序策略选择几个具有不同模型大小和准确性的优秀架构,并更新SuperNet中相应的单元以进行后续优化。下一代中的进化过程是基于更新后的SuperNet和非支配排序得到的多目标解集进行连续执行的。此外,我们提出利用保护机制来避免小模型陷阱问题。提出的连续进化架构搜索(CARS)可以在高效率下提供一系列Pareto前沿上的模型。我们的方法在基准数据集上优于现有方法。18300在神经架构搜索中,基于进化算法(EA)的方法,如[38,37, 48, 42, 40,41],初始化一组模型并进行进化以获得更好的架构,这需要耗费大量时间,例如Real等人的研究花费了3150个GPU天进行搜索[38]。基于强化学习(RL)的方法,如[60,58],使用控制器预测一系列操作,并训练不同的架构以获得奖励。对于给定的架构,这些方法必须对其进行大量的训练才能获得性能。然后评估其性能以指导进化或优化控制器,这使得搜索阶段的效率较低。基于梯度的方法(例如DARTS[32])首先训练一个SuperNet,并在搜索过程中引入注意力机制,然后在搜索后删除弱连接。这个阶段通过梯度下降优化进行,非常高效。然而,搜索得到的架构缺乏多样性。虽然[37]中的一些实验表明,进化算法发现的神经架构比基于RL的方法更好,但EA的搜索成本要高得多,因为每个个体(即进化算法中的神经网络)都需要进行独立评估。此外,搜索空间中可能存在一些性能极差的架构。如果我们直接采用ENAS[35]提出的权重共享方法,SuperNet必须经过训练来弥补这些较差的搜索空间。因此,有必要对现有的进化算法进行改进,以实现高效而准确的神经架构搜索。在本文中,我们提出了一种高效的基于EA的神经架构搜索框架。我们开发了一种连续进化策略,以最大限度地利用我们在上一代进化中学到的知识。具体而言,首先使用一些可观的单元和块初始化一个SuperNet。通过几个基准操作(即交叉和变异),在SuperNet中生成代表架构的进化算法中的个体。采用非支配排序策略选择几个具有不同模型大小和准确性的优秀架构,并更新SuperNet中相应的单元以进行后续优化。下一代中的进化过程是基于更新后的SuperNet和非支配排序得到的多目标解集进行连续执行的。此外,我们提出利用保护机制来避免小模型陷阱问题。提出的连续进化架构搜索(CARS)可以在高效率下提供一系列Pareto前沿上的模型。我们的方法在基准数据集上优于现有方法。02. 相关工作02.1. 网络架构搜索0基于梯度的网络架构搜索(NAS)方法包含两个步骤:网络参数优化和架构优化。网络参数优化步骤优化标准层(即卷积、批归一化、全连接层)中的参数。架构优化步骤学习准确网络架构的模式。0参数优化步骤可以分为两类,独立优化和共享优化。独立优化分别学习每个网络,即AmoebaNet[37]需要数千个GPU天来评估数千个模型。为了加速训练,[11, 10]通过网络形态学初始化参数。一次性方法[1,17]通过共享一个超级网络中的所有参数来进一步步骤不同架构的所有参数。而不是训练数千个不同的架构,只需要优化一个超级网络。架构优化步骤包括基于RL的、基于EA的和基于梯度的方法。基于RL的方法[60, 61,35]使用循环网络作为网络架构控制器,并将生成的架构的性能用作训练控制器的奖励。控制器在训练过程中收敛,并最终输出具有优越性能的架构。基于EA的方法[48,37]借助进化算法搜索架构。每个个体的验证准确性被用作进化下一代的适应度。基于梯度的方法[32, 49,47]将网络架构视为一组可学习的参数,并通过标准反向传播算法优化参数。02.2. 多目标网络架构搜索0考虑到多个互补目标,即准确性、参数数量、浮点运算(FLOPs)、能量和延迟,没有单一的架构在所有目标上都超越其他架构。因此,希望在帕累托前沿内找到架构。已经提出了许多不同的方法来处理多目标网络架构搜索。NEMO[26]和MNASNet[44]针对速度和准确性。DPPNet和LEMONADE [8,11]考虑与设备相关和设备无关的目标。MONAS[23]针对准确性和能量。NSGANet[33]考虑FLOPs和准确性。这些方法对于模型的优化效率较低。相反,我们的架构优化和参数优化步骤是交替进行的。此外,不同架构的参数是共享的,这使得搜索阶段更加高效。03. 方法0在本节中,我们开发了一种新颖的连续进化方法来搜索神经架构,即CARS。CARS搜索阶段包括两个过程,即参数优化和架构优化。我们使用遗传算法(GA)进行架构进化,因为GA维护了一组性能良好的覆盖广泛空间的架构。我们维护一组架构(也称为连接)C ={C1,...,CP},其中P是种群大小。种群中的架构i=P�i=1B�j=118310在架构优化步骤中,根据提出的pNSGA-III方法逐步更新。为了使搜索阶段高效,我们维护一个共享参数W的超级网络N。参数共享策略极大地降低了单独训练这些不同架构的计算复杂性。03.1. CARS的超级网络0从超级网络N中采样不同的网络,并且每个网络Ni可以由一组全精度参数Wi和一组二进制连接参数(即{0,1})Ci表示。连接Ci中的0元素表示网络不包含该连接以转换数据流,而1元素连接表示网络使用该连接。从这个角度来看,每个网络Ni可以表示为(Wi,Ci)对。全精度参数W由一组网络共享。如果这些网络架构固定,可以通过反向传播优化参数。最佳W适用于所有网络Ni以实现更高的识别性能。参数收敛后,我们可以通过遗传算法交替优化二进制连接C。这两个步骤构成了我们提出的方法的主要优化。我们将在下面介绍这两个优化步骤。03.2. 参数优化0参数 W 是网络中所有参数的集合。第 i 个个体的参数 W i是 W ⊙ C i ,其中 ⊙ 是保留完整图中与连接 C i中的1元素对应位置的参数的掩码操作。将 X表示为输入数据,该网络的预测为 N i ( X ) ,其中 N i 是第i 个架构。预测损失可以表示为 L i = H ( N i ( X ) , Y ),其中 H 是准则,Y 是目标。参数 W i 的梯度可以计算为0dW i = ∂L i0∂W ⊙ C i 。 (1)0参数 W应适应所有个体,因此累积所有网络的梯度来计算参数 W的梯度0dW = 10i =1 dW i =10∂L i ∂W ⊙ C i 。(2)0任何层只由在前向传播过程中使用该层的网络进行优化。通过收集种群中个体的梯度,通过SGD算法更新参数 W。由于我们在SuperNet中维护了一组共享权重的架构,我们借鉴了0随机梯度下降,并使用小批量架构来更新参数。累积所有网络的梯度会花费很多时间进行一步梯度下降,因此我们使用小批量架构来更新共享权重。我们使用 B个不同的架构,其中 B < P ,架构的索引为 { n 1 , . . . , n B} 来更新参数。等式2的高效参数更新详细说明如等式30dW ≈ 10∂L n j ∂W n j 。 (3)0因此,一批架构的梯度被视为所有 P个不同个体的平均梯度的无偏估计。每次更新的时间成本可以大大降低,适当的小批量大小可以在效率和准确性之间取得平衡。03.3. 架构优化0至于架构优化过程,我们使用进化算法和非支配排序策略。非支配排序策略已经在NSGA-III [7]中介绍过。将 {N 1 , . . ., N P } 表示为 P 个不同的网络,{F 1 , . . . , F M }表示我们要最小化的 M个不同的测量。这些测量,例如参数数量、浮点运算、延迟、能量和准确性,可能存在一些冲突,增加了在发现最小化所有这些指标的最优解时的困难。在实践中,如果满足以下两个条件,N i 就主导 N j :(1)对于任何测量,N i的性能不比 N j 差。(2)模型 N i在至少一个测量上表现优于 N j。形式上,主导的定义可以总结如下。0定义1. 考虑两个网络 N i 和 N j ,以及一系列测量 {F 1 , . . ., F M },我们希望最小化。如果0F k ( N i ) ≤ F k ( N j ) ,� k ∈ { 1 , . . . , M } F k (N i ) < F k ( N j ) ,� k ∈ { 1 , . . . , M } , (4)0据说 N i 主导 N j ,即 N i � N j 。0根据上述定义,如果 N i 主导 N j ,则在进化过程中可以用N i 替换 N j ,因为 N i在至少一个度量上的性能更好,而在其他度量上不差。通过利用这种方法,我们可以从当前一代种群中选择一系列优秀的神经架构。然后,这些网络可以用于更新SuperNet中相应的参数。尽管上述非支配排序策略使用了NSGA-III方法[7] 来选择一些更好的模型0.100.150.200.250.300.35Model Size (MB)010203040506070Top-1 acc (%)Generation 1Generation 2Generation 3Generation 4Generation 50.100.150.200.250.300.35Model Size (MB)01020304050607080Top-1 acc (%)0.100.150.200.250.300.35Model Size (MB)010203040506070Top-1 acc (%)Generation 1Generation 2Generation 3Generation 4Generation 50.100.150.200.250.300.35Model Size (MB)01020304050607080Top-1 acc (%)the first Pareto front, and the union set Ui after merging thei-th front is Ui = (R1 ∪ Q1) ∪ · · · ∪ (Ri ∪ Qi). We keep thefirst P individuals from Umax(n1,n2). In this way, the largenetworks with slower performance increasing speed couldbe kept in the population.In Figure 2, the populations of using NSGA-III andpNSGA-III are visualized. If we use NSGA-III to updatearchitectures, the small model trap problem is encountered.It is obvious that the pNSGA-III can protect large modelsduring evolution and provide a wide range of models. Moredetailed discussions are introduced in the following section.18320(a) NSGA-III(1-5代)0(b) NSGA-III(20代)0(c) pNSGA-III(1-5代)0(d) pNSGA-III(20代)0图2.不同进化策略的比较。SuperNet在训练集上进行训练,并在验证集上进行评估。图2(a)显示使用NSGA-III进行的五个进化代。使用NSGA-III进行进化会遇到小模型陷阱问题,导致分布偏向较小的模型,图2(b)显示经过20代的NSGA-III进化后的分布,其中保留的架构都是小模型。图2(c)显示使用提出的pNSGA-III进行的进化代。使用pNSGA-III进行进化可以保护较大的模型,图2(d)显示经过20代的pNSGA-III进化后的分布,其中保留的架构覆盖了模型大小维度的大范围。0在更新参数时,搜索过程中存在小模型陷阱现象。具体来说,由于SuperNet中的参数仍然需要优化,当前一代中每个个体架构的准确性不一定总是代表其最终可以达到的性能,如NASBench-101[54]中所讨论的。因此,一些参数较少但测试准确性较高的较小模型往往会主导那些准确性较低但有潜力达到更高准确性的较大模型,如图3所示。因此,我们提出改进传统的NSGA-III以保护这些较大模型,即pNSGA-III。具体而言,pNSGA-III算法考虑了准确性的增长速度。我们以验证准确性和参数数量为例。对于NSGA-III方法,非支配排序算法考虑了两个不同的目标,并根据排序后的帕累托阶段选择个体。对于提出的pNSGA-III,除了考虑参数数量和准确性外,我们还进行了一个非支配排序算法,考虑准确性的增长速度和参数数量。然后合并两个不同的帕累托阶段。假设P是种群大小,在获得两个帕累托阶段R1...n1,Q1...n2后,我们逐渐合并两个帕累托阶段,从第一个帕累托前沿开始合并,合并第i个前沿后的并集Ui为Ui =(R1∪Q1)∪∙∙∙∪(Ri∪Qi)。我们保留来自Umax(n1,n2)的前P个个体。通过这种方式,可以在种群中保留性能增长速度较慢的大型网络。在图2中,可视化了使用NSGA-III和pNSGA-III的种群。如果我们使用NSGA-III来更新架构,将遇到小模型陷阱问题。很明显,pNSGA-III可以在进化过程中保护大型模型,并提供广泛的模型范围。更详细的讨论将在下一节中介绍。01关于更好的中等大小模型的担忧:pNSGA-III进程两次。第一次,非支配排序考虑模型大小和准确性(较大的模型具有较高的准确性,较小的模型具有较低的准确性,左侧排序)。第二次,非支配排序考虑模型大小和准确性增长速度(较大的模型具有较慢的准确性增长速度,较小的模型具有较快的准确性增长速度,右侧排序)。对于更好的中等大小模型,因为它们比小模型更大且准确性更高,所以它们在第一次运行时排在前几个帕累托前沿。此外,具有更高精度的更好的中等大小模型比大模型具有更高的准确性增长速度。因此,它们在第二次运行时也排在前几个帕累托前沿。选择用于构建下一代的架构呈帽状形状。因此,我们提出的pNSGA-III将在下一代中保留准确的中等大小模型,而不会遗漏。03.4. CARS的连续演化0总之,使用提出的CARS流程搜索最优架构有两个步骤,1)架构优化,2)参数优化。此外,还引入了参数预热来首先更新参数。0参数预热。由于我们的SuperNet的共享权重是随机初始化的,如果种群中的架构也是随机初始化的,那么所有架构中最常用的操作将比其他操作训练更多次。因此,我们采用一种均匀采样策略来初始化SuperNet中的参数,这样,SuperNet将以相同的可能性训练每个可能的操作。例如,在DARTS[32]流水线中,每个节点有八种不同的操作,包括卷积、池化、恒等映射和无连接。每个操作将以1的概率进行采样。0架构优化。在初始化SuperNet的参数之后,我们首先随机采样 P 个不同的架构,其中 P是一个超参数,表示种群中维持的个体数量。在0100200300400500600Epochs405060708090100Top-1 acc (%)Model A: 2.1 MB, 96.87% AccModel B: 2.9 MB, 97.17% AccModel C: 3.6 MB, 97.20% Acc01020304050Epochs405060708090Top-1 acc (%)Model A: 2.1 MB, 96.87% AccModel B: 2.9 MB, 97.17% AccModel C: 3.6 MB, 97.20% Acc01020304050Epochs405060708090Top-1 acc (%)Model A: 2.1 MB, 96.87% AccModel B: 2.9 MB, 97.17% AccModel C: 3.6 MB, 97.20% AccTtotal =Twarm + Tevo.Eevo × (Eparam × Ttr × B + Tval)(5)BH (Nni(X), Y ).18330(a) 准确率曲线(epochs=500,窗口=1)0(b) 准确率曲线(epochs=50,窗口=1)0(c) 准确率曲线(epochs=50,窗口=5)0图3.不同模型大小的三个模型的准确率曲线。左图显示了训练600个epochs的准确率曲线,中间图显示了前50个epochs的准确率曲线,右图显示了窗口大小为5的平滑曲线。0在架构演化步骤中,我们首先生成 t × P 个后代,其中 t是控制扩展比率的超参数。然后我们使用pNSGA-III对架构进行排序,并从 (t + 1) × P 个个体中选择 P个个体。所选的 P 个架构形成下一代。0参数优化。给定一组架构,我们使用提出的小批量架构更新方案进行参数优化,根据公式3进行优化。算法1总结了用于搜索神经架构的提出的连续演化算法的详细过程。03.5. 搜索时间分析0在CARS的搜索阶段,训练集用于更新网络参数,验证集用于更新架构。假设一个架构在训练集上的平均训练时间为 Ttr ,在验证集上的推理时间为 T val 。第一个预热阶段需要E warm 个epochs,并且在这个阶段需要 T warm = Ewarm × T tr 来初始化SuperNet N中的参数。假设架构总共演化了 E evo代。每一代包含参数优化和架构优化步骤。参数优化步骤在代之间的训练集上对SuperNet进行 E param个epochs的训练,因此一个演化代的参数优化的时间成本为 T param = E param × T tr × B ,其中 B是小批量大小。对于架构优化步骤,所有个体可以并行推断,因此这一步的时间成本可以计算为 T arch = T val。因此,E evo 个演化代的总时间成本为 T evo = E evo ×(T param + T arch) 。CARS中的所有搜索时间成本为,0= E warm × T tr +0算法1 连续演化的高效神经架构搜索 输入:SuperNet N,连接 C = { C (0) 1 , . . . , C (0) P } ,后代扩展比率 t,演化代数 E evo ,多目标 {F 1 , . . . , F M },参数优化epochs E param ,准则 H 。 1:对SuperNetN 进行 E warm 个epochs的预热。 2:对于 e = 1 , . . . , Eevo ,执行以下操作: 3:对于 i = 1 , . . . , E param,执行以下操作: 4:对于加载器中的小批量数据 X ,目标Y ,执行以下操作: 5:随机采样 B 个索引 n 1 , . . . , n B。06: 根据索引选择相应的B个连接C 1 , . . . , C n B 。 7:对SuperNet N 进行掩码操作,形成采样网络 N 1 , . . . ,N n B 。 8: 前向传播B个采样网络。09: 计算损失 L = 1010: 根据公式3计算梯度。 11: 更新网络参数 W 。 12:结束循环。 13: 结束循环。 14: 使用pNSGA-III更新 {C ( e ) 1 , . . . , C ( e ) P } 。 15: 结束循环。输出:架构 C = { C ( E evo ) 1 , . . . , C ( E evo ) P }。04. 实验0本节中,我们首先介绍SuperNet和实验细节。然后,我们研究小模型陷阱现象,并将NSGA-III与我们提出的pNSGA-III进行比较。我们在CIFAR-10数据集上进行两次搜索,分别考虑设备无关和设备感知的目标。所有搜索到的架构都在CIFAR-10和ILSVRC2012数据集上进行评估。这两个数据集是识别任务的基准。18340表1. CIFAR-10数据集上与最先进的图像分类器的比较。架构优化的多目标是性能和模型大小。我们遵循DARTS并使用切割策略进行训练。0架构 测试错误率(%) 参数量(M) 搜索成本(GPU天) 搜索方法0DenseNet-BC [24] 3.46 25.6 - 手动0PNAS [30] 3.41 3.2 225 SMBO ENAS + cutout [35] 2.91 4.2 4 RL NASNet-A + cutout [61] 2.65 3.3 2000RL AmoebaNet-A + cutout [37] 3.12 3.1 3150 进化 分层进化 [31] 3.75 15.7 300 进化 SNAS (mild) +cutout [49] 2.98 2.9 1.5 梯度 SNAS (moderate) + cutout [49] 2.85 2.8 1.5 梯度 SNAS (aggressive) +cutout [49] 3.10 2.3 1.5 梯度 DARTS (first) + cutout [32] 3.00 3.3 1.5 梯度 DARTS (second) + cutout [32]2.76 3.3 4 梯度 随机搜索 [32] 3.29 3.2 4 随机0RENA [59] 3.87 3.4 - RL NSGANet [33] 3.85 3.3 8 进化 LEMONADE [11] 3.05 4.7 80 进化0CARS-A 3.00 2.4 0.4 进化 CARS-B 2.87 2.7 0.4 进化 CARS-C 2.84 2.8 0.4 进化 CARS-D 2.95 2.9 0.4 进化CARS-E 2.86 3.0 0.4 进化 CARS-F 2.79 3.1 0.4 进化 CARS-G 2.74 3.2 0.4 进化 CARS-H 2.66 3.3 0.4 进化CARS-I 2.62 3.6 0.4 进化04.1. 实验设置0SuperNet骨干网络。为了说明我们方法的有效性,我们在一个与DARTS[32]相同的常用搜索空间上评估我们的CARS。DARTS是一个可微分的NAS系统,用于搜索缩减和普通细胞。普通细胞用于具有相同输入特征和输出特征的空间尺寸的层。缩减细胞用于对输入特征图进行下采样的层。在搜索这两种类型的细胞之后,通过堆叠一组搜索到的细胞来构建网络。搜索空间包含八种不同的操作,包括四种类型的卷积,两种类型的池化,跳跃连接和无连接。0进化细节。在DARTS搜索空间中,每个细胞的中间节点与前两个节点相连。对相应的节点进行交叉和突变。交叉比率和突变比率均设置为0.25,我们以0.5的概率随机生成新的架构。对于交叉操作,每个节点有0.5的比率交叉其连接,对于突变操作,每个节点有0.5的比率被随机重新分配。04.2. CIFAR-10上的实验0我们在CIFAR-10上的实验包括演示小模型陷阱现象,比较NSGA-III和pNSGA-III,以及设备无关和设备相关的搜索。0感知搜索。评估在CIFAR-10数据集和大型ILSVRC2012数据集上进行。0小模型陷阱。图3显示了三个模型的准确率曲线。参数数量分别为2.1M、2.9M和3.6M。在训练600个时期后,CIFAR-10数据集上的准确率与模型大小呈正相关,分别为96.87%、97.17%和97.20%。我们观察了前50个时期的准确率曲线,并得出了导致小模型陷阱现象的两个主要原因。这两个原因是:(1)小模型自然收敛更快,(2)准确率在训练过程中波动。对于最大的Model-C,其准确率在前50个时期始终低于Model-A和Model-B。因此,如果使用NSGA-III算法,Model-C将被淘汰,这是我们提出pNSGA-III的第一个动机。这是因为较大的模型更加复杂,因此更难优化。对于Model-B和Model-A,准确率曲线相似(图3(c))。然而,由于训练过程中的准确率波动(图3(b)),如果Model-A的准确率在某个时期高于Model-B,根据非支配排序策略,Model-B将被淘汰,这是我们提出的第二个原因。这两个原因都可能导致在架构更新过程中淘汰大模型。因此,提出pNSGA-III来解决小模型陷阱问题是必要的。2https://github.com/huawei-noah/CARS18350NSGA-III与pNSGA-III的比较。我们使用CARS在架构优化阶段使用不同的NSGA方法搜索架构。多目标是参数数量和模型大小。我们可视化了种群中维护的架构的分布趋势。如图2所示,使用NSGA-III更新架构会遇到小模型陷阱问题,并且在架构优化阶段淘汰大模型。相反,使用pNSGA-III更新架构可以保护较大的模型。较大的模型在后期时期有增加准确率的潜力,但在开始时收敛速度较慢。如果搜索目标是找到具有不同计算资源的模型,保持较大的模型在种群中而不是淘汰它们在架构优化阶段是至关重要的。0在CIFAR-10上进行搜索。我们将CIFAR-10训练集分为两部分,即用于更新网络参数的25,000张图像和用于更新架构的25,000张图像。拆分策略与DARTS [32]和SNAS[49]相同。总共搜索500个时期,参数预热阶段持续前10%的时期(50个时期)。之后,我们初始化种群,其中包含128个不同的架构,并逐渐使用提出的pNSGA-III进行演化。在网络参数更新了十个时期后,我们使用pNSGA-III来更新架构。0在CIFAR-10上进行评估。完成CARS搜索阶段后,种群中保留了N = 128个架构。我们评估了一些与之前的作品[32,49]具有相似模型大小的架构进行比较。我们在CIFAR-10数据集上重新训练了搜索到的架构。所有训练参数与DARTS[32]相同。我们在表1中将搜索到的架构与最新技术进行了比较。所有搜索到的架构都可以在补充材料2中找到。我们搜索到的架构在CIFAR-10数据集上的参数数量从2.4M到3.6M不等,这些架构的性能与最新技术相当。同时,如果我们使用NSGA-III方法而不是pNSGA-III来演化架构,我们只能搜索到具有约2.4M参数的一组架构,没有更大的模型,并且模型性能相对较差。与DARTS和SNAS等先前方法相比,我们的方法能够在广泛的搜索空间中搜索架构。CARS-G与DARTS(二阶)的准确率相当,模型大小较小,错误率约为2.75%。与DARTS(二阶)使用相同的3.3M参数相比,我们的方法能够达到相似的准确率。0图4.CARS-H和DARTS。顶部是CARS-H的正常块和缩减块,底部是DARTS的正常块和缩减块(二阶)。0顺序),我们的CARS-H的测试误差较低,为2.66% vs.2.76%。对于小型模型,我们搜索得到的CARS-A/C/D与SNAS的结果相当。此外,我们的大型模型CARS-I在稍微增加参数的情况下实现了更低的错误率2.62%。从CARS-A到CARS-J的整体趋势是错误率逐渐降低,同时增加模型大小。这些模型都是帕累托解。与其他多目标方法如RENA[59]、NSGANet [33]和LEMONADE[11]相比,我们搜索到的架构也显示出优越的性能。0搜索到的细胞比较。为了对所提出的方法有明确的理解,我们在图4中进一步可视化了CARS和DARTS搜索到的正常细胞和缩减细胞。CARS-H和DARTS(二阶)的参数数量相似(3.3M),但CARS-H的准确率比DARTS(二阶)更高。从图4中可以看出,CARS-H的缩减块中有更多的参数以保留更多有用的信息,而CARS-H的正常块的大小小于DARTS(二阶)的大小,以避免不必要的计算。CARS维护了一个覆盖了大范围搜索空间的种群。04.3. 在ILSVRC2012上进行评估0我们通过在ILSVRC2012数据集上训练这些搜索到的架构来评估它们的可迁移性。我们使用8个Nvidia TeslaV100来训练模型,批量大小为640。总共训练250个epoch。学习率为0.5,采用线性衰减调度器,前五个epoch进行学习率预热。动量为0.9,权重衰减为3e-5。还使用了标签平滑,平滑比例为0.1。表2中的结果显示了我们搜索到的架构的可迁移性。我们的模型涵盖了广泛的参数范围。模型大小范围从3.7M到5.1M,FLOPs范围从430到590MFLOPs。对于不同的部署环境,我们可以轻松选择满足计算资源要求的架构。该实验考虑了与设备无关的变量,即模型大小和性能,因此CARS A-I的延迟不是严格的。PNAS [30]74.291.95.1588224SMBOAutoSlim [55]75.4-8.3532-greedySNAS (mild) [49]72.790.84.35221.5gradientDARTS [32]73.391.34.75744gradientPDARTS [5]75.692.64.95570.3gradientPARSEC [3]74.091.65.65481gradientProxylessNAS (GPU) [2]75.192.57.14658.3gradientFBNet-C [47]74.9-5.537520gradientRCNet [50]72.291.03.42948gradientGDAS [9]74.091.55.35810.8gradientNASNet-A [61]74.091.65.35642000RLMNASNet-A1 [44]75.292.53.9312-RLAmoebaNet-A [37]74.592.05.15553150evolutionCARS-A72.890.83.74300.4evolutionCARS-B73.191.34.04630.4evolutionCARS-C73.391.44.24800.4evolutionCARS-D73.391.54.34960.4evolutionCARS-E73.791.64.45100.4evolutionCARS-F74.191.84.55300.4evolutionCARS-G74.291.94.75370.4evolutionCARS-H74.792.24.85590.4evolutionCARS-I75.292.55.15910.4evolution18360表2. ILSVRC2012数据集的总体比较。CARS模型是在CIFAR-10数据集上搜索得到的架构。0架构 Top-1 Top-5 参数 + × 搜索成本 搜索0准确率(%) 准确率(%) (M) (M) (GPU天) 方法0ResNet50 [22] 75.3 92.2 25.6 4100 - 手动 MorphNet [15] 75.2 - 15.5 3880 - 手动InceptionV1 [43] 69.8 90.1 6.6 1448 - 手动 MobileNetV2 (1 × ) [39] 72.0 90.4 3.4 300 -手动 Shuf�eNetV2 (2 × ) [34] 74.9 90.1 7.4 591 - 手动0与最终性能相关的正面反应。HUAWEI P30Pro上的延迟为82.9、83.3、83.0、90.0、93.8、92.2、98.1、97.2、100.6(毫秒)。0CARS-I在参数数量和近似FLOP相同的情况下,比PNAS的Top-1准确率高1%。CARS-G在参数数量相同的情况下,比DARTS的Top-1准确率高0.9%。此外,CARS-D在参数数量相同的情况下,比SNAS(mild
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 利用迪杰斯特拉算法的全国交通咨询系统设计与实现
- 全国交通咨询系统C++实现源码解析
- DFT与FFT应用:信号频谱分析实验
- MATLAB图论算法实现:最小费用最大流
- MATLAB常用命令完全指南
- 共创智慧灯杆数据运营公司——抢占5G市场
- 中山农情统计分析系统项目实施与管理策略
- XX省中小学智慧校园建设实施方案
- 中山农情统计分析系统项目实施方案
- MATLAB函数详解:从Text到Size的实用指南
- 考虑速度与加速度限制的工业机器人轨迹规划与实时补偿算法
- Matlab进行统计回归分析:从单因素到双因素方差分析
- 智慧灯杆数据运营公司策划书:抢占5G市场,打造智慧城市新载体
- Photoshop基础与色彩知识:信息时代的PS认证考试全攻略
- Photoshop技能测试:核心概念与操作
- Photoshop试题与答案详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功