Single Path One-Shot Neural Architecture Search with Uniform Sampling

Single Path One-Shot Neural Architecture Search with Uniform Sampling

均匀采样单路径单次神经网络结构搜索

论文:https://arxiv.org/abs/1904.00420

代码:

https://github.com/megvii-model/SinglePathOneShot (官方代码)

https://github.com/CanyonWind/Single-Path-One-Shot-NAS-MXNet(MXNET版本)

摘要

现有的一次性方法很难训练,并且在像ImageNet这样的大规模数据集上还无效。这项工作提出了一个单一路径一次性模型,以解决培训中的挑战。我们的中心思想是构建一个简化的超网,其中所有的架构都是单一路径,这样权重自适应问题就得到缓解。通过均匀路径采样进行训练。所有的架构(以及它们的权重)都经过了充分而平等的训练。综合实验验证了该方法的灵活性和有效性。训练容易,搜索快。它毫不费力地支持复杂的搜索空间(例如,构造块、通道、混合精度量化)和不同的搜索约束(例如,浮点运算、延迟)。因此,它可以方便地用于各种需求。它在大型数据集ImageNet上实现了一流的性能。

一:简介

这个提法有两个问题。首先,超网中的权重是深度耦合的。不清楚为什么特定架构的继承权重仍然有效。第二,联合优化引入了体系结构参数和超网权重之间的进一步耦合。基于梯度的方法的贪婪本质不可避免地在优化过程中引入偏差,并且容易误导体系结构搜索

基于使用继承权重的体系结构的准确性应该是使用优化权重的准确性的预测,我们建议超网训练应该是随机的。所有架构都同时优化了它们的权重。这就产生了统一的抽样策略。为了减少超网中的权重耦合,提出了一种由单路径结构组成的简单搜索空间。训练无超参数,易于收敛。

本工作做出以下贡献。1.我们提出了一个原则性的分析,并指出使用嵌套和联合优化的现有网络连接存储方法的缺点。因此,我们希望这项工作将更新对一次性范例的兴趣,它通过顺序优化结合了两者的优点。2.我们提出了一种单路径单次抽样方法。它克服了现有一次性方法的缺点。它的简单性支持丰富的搜索空间,包括新颖的通道大小和位宽设计,所有这些都以统一的方式解决。架构搜索高效灵活。进化算法用于支持现实世界的约束,如低延迟。综合消融实验和与以前在大数据集(ImageNet)上的工作的比较验证了所提出的方法在准确性、存储器消耗、训练时间、架构搜索效率和灵活性方面是最先进的。

二:NAS方法综述

权重优化,训练集

架构优化,验证集

 

可微分的方法(darts),一阶

 

二阶

 

公式(3)的优化具有挑战性。首先,超网中图节点的权重相互依赖,在优化过程中深度耦合。对于一个特定的架构,它从w继承了某些节点权重。虽然这些权重与其他权重是分离的,但是不清楚为什么它们仍然有效。第二,架构参数θ和权重W的联合优化引入了进一步的复杂性。求解Eq。(3)在优化过程中,不可避免地会对θ中的某些区域和W中的某些节点引入偏差。这种偏差会使图中的一些节点训练良好,而另一些节点训练不佳。由于权重的成熟度不同,不同的架构实际上是不可比较的。

三:我们的单路径一次性方法

如上所述,体系结构参数和权重之间的耦合是有问题的。这是两者联合优化造成的。为了缓解这个问题,一个自然的解决方案是在两个连续的步骤中分离超网训练和架构搜索。这导致了所谓的一次性方法。

一般来说,这两个步骤的公式如下。首先,超网权重优化为:相比公式(3)缺少搜索空间的连续参数化。只优化权重。

 

其次,搜索的体系结构执行如下:

 

在搜索过程中,每个采样架构a从 WA(a)继承其权重。公式的关键区别(7)来自(1)和(2)是体系结构权重已准备就绪。ACCval()的求值只需要推理。因此,搜索非常高效。搜索也很灵活。任何适当的搜索算法都是可行的。像Eq(5)这样的架构约束完全可以满足。使用不同的约束条件(例如,100毫秒延迟和200毫秒延迟),搜索可以在同一超网上重复多次。这些特性在以前的方法中是不存在的。这些使得一次性范例对现实世界的任务很有吸引力。

 

Sec2的一个问题仍然存在。等式(6)中超网训练中的图节点权重耦合。不清楚为什么继承的权重WA(a)对于任意的架构a仍然是好的。

最近的一次性方法[2]试图使用“路径丢失”策略来分离权重。在等式(6)中的SGD步骤期间超网图中的每条边都是随机丢弃的。随机机会通过辍学率参数来控制。以这种方式,在训练期间减少了节点权重的自适应。文献[2]中的实验表明,训练对辍学率参数非常敏感。这使得超网训练变得困难。使用精心调整的加热策略。在我们实施这项工作的过程中,我们还发现验证精度对辍学率参数非常敏感。单路超网和均匀采样。让我们重新开始思考体重分担理念背后的基本原则。建筑搜索成功的关键在Eq(7)是,在使用继承权重WA(a)的验证集上的任何架构a的准确性(没有额外的微调)对完全训练的a的准确性具有高度的预测性。理想情况下,这要求权重WA(a)接近等式(1)中的最佳权重Wa。.的质量近似值取决于训练损失Ltrain(N(a,WA(a))被最小化的程度。这就产生了一个原则,即超网权重应该以搜索空间中的所有架构同时优化的方式进行优化。这表示为

 

其中γ(α)是α∈α的先验分布。(8)是Eq的一个实现。(6).在优化的每一步,架构a都是随机抽样的。只有权重W(a)被激活和更新。所以内存使用是有效率的。从这个意义上说,超网不再是一个有效的网络。它表现为随机超网[22]。这与[2]不同。

 

如图3 (a)所示,超网结构,其中每个体系结构都是一条路径。与[2]中的路径丢失策略相比,单路径策略是超参数的。我们在同一个搜索空间内比较了这两种策略(就像在这项工作中一样)。请注意,[2]中的原始删除路径可能会删除一个块中的所有操作,从而导致标识连接的捷径。在我们的实现中,这种情况下强制保留一条随机路径,因为我们的选择块没有标识分支。我们随机选择子网络,并在训练阶段评估其验证准确性。图1中的结果显示下降速率参数非常重要。不同的丢弃率使得超网达到不同的验证精度。我们的单路径策略对应于使用丢弃率1。它工作得最好,因为我们的单路径策略可以分离不同操作的权重。图1验证了重量分离的好处。先验分布γ(A)很重要。在这项工作中,我们根据经验发现均匀采样是好的。这并不奇怪。一项并行工作[10]还发现,基于随机超网的纯随机搜索在CIFAR-10上是有竞争力的。我们还试验了一种变体,它根据架构的约束对架构进行统一采样,称为统一约束采样。具体来说,我们随机选择一个范围,然后重复采样架构,直到采样架构的FLOPs落入该范围。这是因为一个真正的任务通常期望找到满足不同约束的多个体系结构。在这项工作中,我们发现均匀约束抽样方法稍好一些。所以本文默认使用。我们的实验也表明,随机搜索不足以从大的搜索空间中找到优秀的架构

 

对于我们的单路径超网,每个选择块只能同时调用一个选择。通过对所有选择块进行采样来获得路径。我们方法的简单性使我们能够定义不同类型的选择块来搜索各种体系结构变量。具体来说,我们提出了两个新的选择块来支持复杂的搜索空间。

通道数搜索。我们提出了一个新的基于权重分配的选择块,如图3 (b)所示。主要思想是预先分配一个通道数最大的权重张量,系统随机选择通道数,切片出对应的子传感器进行卷积。通过权值共享策略,我们发现超网可以快速收敛。具体来说,假设预分配权重的维度为(最大c出,最大c入,ksize)。对于超网训练中的每一批,随机采样当前输出通道c out的数量。然后,我们使用用于生成输出的形式权重[: cout,c:in,]分割出当前批次的权重。在搜索步骤中确定最佳频道数。

混合精度量化搜索。在这项工作中,我们设计了一个新的选择块来搜索权重和特征映射的位宽,如图3 (c)所示。我们还将前面讨论的频道搜索空间与混合精度量化搜索空间相结合。在超网训练期间,对于每个选择随机采样块特征位宽和加权位宽。它们是在进化步骤中决定的。见第二节。4了解详情。

进化架构搜索。对于Eq中的架构搜索。(7)、以前的一拍作品[3,2]使用随机搜索。这对于大的搜索空间是无效的。我们使用了进化算法。请注意,在[16]中使用了网络连接存储中的进化搜索,但这很昂贵,因为每个体系结构都是从头开始训练的。在我们的搜索中,每个架构只执行推理。这样效率很高。

 

算法1中详细说明了该算法。对于所有实验,种群大小P = 50,最大迭代次数T = 20,k = 10。对于交叉,两个随机选择的候选交叉产生一个新的。对于变异,随机选择的候选对象以0.1的概率变异它的每个选择块,产生一个新的候选对象。交叉和变异被重复以生成足够多的满足给定架构约束的新候选。在推断体系结构之前,对训练数据的随机子集(ImageNet上的20000个图像)重新计算所有批处理规范化(BN) [9]操作的统计数据。需要几秒钟。这是因为来自超网的BN统计通常不适用于候选网。这在[2]中也有提及。图2使用进化和随机搜索方法绘制了几代人的验证精度。很明显进化搜索更有效。实验细节在第二节。4.进化算法在处理等式中的不同约束时是灵活的。(5)因为可以直接控制变异和交叉过程,生成合适的候选来满足约束。以前基于RL的[21]基于梯度的[4,23,22]方法设计了复杂的奖励或损失函数来处理这些约束。例如,[23]使用损失函数CE(a,wa)αlog(LAT(a))β来平衡精度和延迟。很难调整超参数β来满足像等式这样的硬约束。(5).

 

总结。单路径超网、均匀采样训练策略、进化架构搜索和丰富的搜索空间设计的结合使我们的方法简单、高效和灵活。表1综合比较了我们的方法与以前的权重分配方法在各个方面的差异。我们的最容易训练,占用最小的内存,最好地满足架构(延迟)约束,并且容易支持大数据集。Sec中的大量结果。验证我们的方法是最先进的。

四:实验结果数据集

实验设置:所有实验都在ImageNet上进行[17]。我们将原始训练集随机分成两部分:50000个图像用于验证(每个类精确50个图像),其余的作为训练集。最初的验证集用于测试,根据[4]报告所有评估结果。培训。我们使用相同的设置(包括数据扩充、学习进度等。)作为超网和最终架构培训的[14]。批量为1024。通过使用8个NVIDIAGTX 1080 Ti GPU,超网被训练用于120个时期和240个时期的最佳架构(300000次迭代)。

搜索空间:构建模块。首先,我们对构建块选择任务的方法进行了评估,即在一定的复杂度约束下寻找构建块的最优组合。我们的基本构建模块设计灵感来自于最先进的手动设计网络——Shuffle net v2[14]。表2显示了超网的整体架构。“步幅”列表示每个重复组中第一块的步幅。总共有20个选择块。每个选项块有4个候选项,分别为“选项3”、“选项5”、“选项7”和“选项x”。它们在内核大小和深度卷积的数量上有所不同。搜索空间的大小是420。

 

我们用FLOPs ≤ 330M作为复杂度约束,因为以前很多网络的FLOPs都在[300,330]中,包括人工设计的网络[8,18,30,14]和NAS [4,23,21]中得到的网络。表3显示了结果。为了比较,我们设置了如下一系列基线:1)仅选择某个块选项(由“所有选项*”条目表示);请注意,不同的选择有不同的触发器,因此我们调整通道以满足约束。2)从搜索空间中随机选择一些候选。3)用[3,2]中使用的随机搜索代替我们的进化架构优化。结果显示,配备了我们的单路径超网的随机搜索发现的架构仅略好于随机选择(73.8对73.7)。这并不意味着我们的单路超网效率更低。这是因为随机搜索太幼稚,无法从大的搜索空间中挑选出好的候选人。通过使用进化搜索,我们的方法找到了一个在所有基线上都达到了较高精度(74.3)的体系结构。

搜索空间: 频道。基于我们用于频道号搜索的新颖选择块,我们首先在基线结构“所有选择3”(参考表3)上评估频道搜索:对于每个构建块,我们搜索“中间频道”(每个构建块中第一个1×1 conv的输出频道)的数量,从0.2x到1.6x(步幅为0.2),其中“k-x”意味着k倍于默认频道的数量。与构建块搜索相同,我们设置复杂度约束FLOPs ≤ 330M。表4(第一部分)显示了结果。我们的频道搜索方法具有比基线更高的精确度(73.9)。

 

为了进一步提高准确性,我们联合搜索构件和通道。有两种选择:1)在最佳构建块搜索结果上运行频道搜索;或者2)直接在组合搜索空间上搜索。我们的实验表明,第一条管道稍微好一些。如表4所示,在关节空间中的搜索获得了最好的精度(74.7% acc。),超越了以前最先进的手动设计[14,18]和自动搜索模型[21,36,11,12,4,23]在300M FLOPs的复杂度下。

 

与最先进的相比。表4中的结果表明我们的方法是优越的。然而,这种比较可能是不公平的,因为在以前的工作中使用了不同的搜索空间和训练方法[4]。为了进行直接比较,我们将我们的方法基准化为相同的搜索空间[4,23]。此外,我们在相同的设置下重新训练[4,23]中报告的搜索模型,以保证公平的比较。ProxylessNAS [4]中的搜索空间和超网架构受到MobileNet v2 [18]和MnasNet [21]的启发。它包含21个选择块;每个选择块有7个选择(6个不同的构建块和一个跳过层)。搜索空间的大小是721。FBNet [23]也使用了类似的搜索空间。表5报告了[4,23]搜索的5个模型作为基线的准确性和复杂性(我们设备上的浮点运算和延迟)。然后,对于每个基线,我们的搜索方法分别在相同的浮点运算或相同的延迟的约束下运行。结果表明,在所有情况下,我们的方法都达到了与对应基线相当或更高的精度。

 

此外,值得注意的是,我们在表5中不同约束下的体系结构是在同一个超网上搜索的,这证明了我们处理不同复杂性约束的方法的灵活性和效率:超网被训练一次,搜索多次。相比之下,以前的方法[23,4]必须在各种约束条件下训练多个超网。根据表7,搜索比超网训练便宜很多。

应用: 混合精度量化。我们在ResNet18和ResNet-34上评估我们的方法,作为以前量化工作中的常见做法(例如[5,24,13,34,29])。在[34,5,24]之后,我们只搜索和量化res块,不包括第一个卷积层和最后一个全连通层。权重和特征位宽的选择包括搜索空间中的{(1,2)、(2,2)、(1,4)、(2,4)、(3,4)、(4,4)}。至于信道搜索,我们在{0.5x,1.0x,1.5x}中搜索“瓶颈信道”(即每个剩余块中第一个卷积层的输出信道)的数量,其中“k-x”表示k倍于原始信道的数量。搜索空间的大小是(3×6)N= 18N,其中N是选择块的数量(对于ResNet-18N =8,对于ResNet-34N = 16)。请注意,对于每个构建块,我们对两个卷积使用相同的位宽。我们使用PACT [5]作为量化算法。表6报告了结果。基线表示为kWkA (k = 2,3,4),这意味着权重的统一量化和k位的激活。然后,我们的搜索方法在相应的位操作的约束下运行。我们还比较了最近的混合精度量化搜索方法[24]。结果表明,我们的方法在大多数情况下都能达到较高的精度。还要注意,我们对ResNet-18和ResNet-34的所有结果都是在同一个超网上搜索的。这样效率很高。

 

搜索成本分析。在网络连接存储方法中,搜索成本是一个值得关注的问题。因此,我们分析了我们的方法和以前的方法的搜索成本。我们使用构建块的搜索空间来衡量训练超网的内存成本和总时间成本。所有的超网都经过150000次迭代的训练,批量为256。所有模型都是用8个GPU训练的。表7显示,我们的方法显然使用更少的内存因为单路超网。我们的方法总体上更有效,尽管我们有一个额外的搜索步骤,每天花费不到1个GPU。注表7仅比较了一次运行。在实践中,当需要多次搜索时,我们的方法更有优势,也更方便使用。如表1所总结的,它保证在一次搜索中找到满足约束的架构。重复搜索很容易得到支持。

 

相关性分析:如表8所示,我们使用肯德尔τ度量来显示超网性能和独立模型性能之间的相关性。很明显,我们的方法在不同的搜索空间和不同的数据集上比随机搜索表现得更好,因为随机搜索的肯德尔τ度量应该是0。

 

五:结论

在本文中,我们重新审视了一次性网络连接存储范式,并分析了以往权重分配方法中权重耦合的缺点。为了缓解这些问题,我们提出了一种简单而有效的单路径一次性方法。综合实验表明,在几种不同的搜索空间上,我们的方法可以获得比其他方法更好的结果。我们还分析了我们的方法的搜索成本和相关性。我们的方法更有效,尤其是当需要多次搜索时。我们的方法可以在不同的搜索空间上获得显著的相关性,这也验证了我们方法的有效性。我们的方法也有一个限制,即我们的超网的预测排名是部分相关的,但与实际排名不完全相关。我们认为这取决于搜索空间。搜索空间越简单,相关性就越高。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值