Rethinking Architecture Selection in Differentiable NAS
论文链接:https://arxiv.org/abs/2108.04392v1
项目链接:https://github.com/ruocwang/darts-pt
ABSTRACT
可微架构搜索(Differentiable Neural Architecture Search, NAS)是目前最流行的网络架构搜索(Neural Architecture Search, NAS)方法之一,它通过基于梯度的算法在权值共享的网络中共同优化模型权值和结构参数。在搜索阶段结束时,将选择具有最大架构参数的操作构成最终架构,并隐含假设架构参数的值反映了操作强度。虽然关于超网络优化的讨论很多,但架构选择过程却很少受到关注。我们提供了经验和理论分析,表明架构参数的大小并不一定表明操作对超网络性能的贡献有多大。我们提出了另一种基于微扰的架构选择,直接测量每个操作对超网络的影响。我们用提出的架构选择重新评估了几种可微分的NAS方法,发现它能够始终从底层超网络中提取显着改进的架构。此外,我们发现采用所提出的选择方法可以大大减轻DARTS的几种失效模式,这表明在DARTS中观察到的大部分不良泛化可归因于基于magnitude的架构选择的失败,而不是完全归因于其超网络的优化。
1 INTRODUCTION
网络架构搜索(Neural Architecture Search, NAS)已经引起学术界和工业界越来越多的关注,因为它有可能自动化发现高性能架构的过程,而这些过程长期以来都是手工制作的。NAS的早期作品部署了进化算法(Stanley & Miikkulainen, 2002;Real等人,2017;Liu et al ., 2017)和强化学习(Zoph & Le, 2017;Pham等人,2018;Zhong等人,2018)来指导架构发现过程。最近,人们提出了几种一次性方法,显著提高了搜索效率(Brock等人,2018;郭等人,2019;Bender et al, 2018)。
作为一种特别流行的one-shot方法实例,DARTS (Liu et al ., 2019)使搜索过程能够以端到端方式使用基于梯度的优化器执行。它应用连续松弛将架构的分类选择转换为连续的架构参 α α α。由此产生的超网络可以通过基于梯度的方法进行优化,并选择与最大架构参数相关的操作形成最终架构。尽管它很简单,但一些研究对DARTS的有效性提出了质疑。例如,一个简单的随机搜索(Li & Talwalkar, 2019)优于原始的DARTS;Zela等人(2020)观察到,DARTS退化为充满无参数操作(如跳跃连接甚至随机噪声)的网络,导致所选架构的性能较差。
虽然之前的大多数研究将DARTS的失败归因于其超网络优化(Zela et al, 2020;Chen & Hsieh, 2020;Chen等人,2021),很少有人讨论另一个重要假设的有效性: α α α的值反映了底层操作的强度。在本文中,我们对这个问题进行了深入的分析。令人惊讶的是,我们发现在许多情况下, α α α并不能真正表示超网络中操作的重要性。首先,与较大 α α α相关的操作不一定会在离散化后导致更高的验证精度。其次,作为一个重要的例子,我们从数学上表明,在DARTS中观察到的跳跃连接的支配(即 α s k i p α_{skip} αskip变得比其他操作更大)实际上是超网络优化的合理结果,但当我们依靠 α α α来选择最佳操作时就会出现问题。
如果 α α α不是操作强度的良好指标,我们应该如何从预训练的超网络中选择最终?我们的分析表明,每个操作的强度应该根据其对超网络性能的贡献来评估。为此,我们提出了另一种基于微扰的架构选择方法。给定一个预训练的网络,选择边缘上的最佳操作并根据其对级网络精度的干扰程度进行离散化;最终的架构是逐边推导的,其间进行微调,以便超网络在每个操作决策中保持收敛。我们重新评估了几种可微分的NAS方法(DARTS (Liu et al ., 2019)、SDARTS (Chen & Hsieh, 2020)、SGAS (Li et al ., 2020)),并表明所提出的选择方法能够持续地从网络中提取出显著改进的架构,而不是基于magnitude的选择方法。此外,我们发现用基于微扰的选择方法取代基于magnitude的选择方法可以极大地缓解DARTS的鲁棒性问题。
2 BACKGROUND AND RELATED WORK
可微架构搜索(DARTS)的概述。首先回顾了可微结构搜索的公式。DARTS的搜索空间由基于细胞的微结构的重复组成每个单元可以看作是一个有 N N N个节点和 E E E条边的DAG,其中每个节点代表一个潜在特征映射 x i x_i xi,每个边与搜索空间 O \mathcal{O} O中的一个操作 o o o(例如skip connect, sep conv 3x3)相关联,然后对该搜索空间应用连续松弛。具体来说,在搜索阶段激活对某条边的每一个操作,它们的输出通过架构参数 α α α进行混合,形成该边的最终混合输出 m ˉ ( x i ) = ∑ o ∈ O exp α o ∑ o ′ exp α o ′ o ( x i ) \bar{m}(x^{i})=\sum_{o\in\mathcal{O}}\frac{\exp\alpha_{o}}{\sum_{o^{\prime}}\exp\alpha_{o^{\prime}}}o(x^{i}) mˉ(xi)=∑o∈O∑o′expαo′expαoo(xi)。这个特殊的公式允许以可微分的方式执行架构搜:通过替代梯度更新,DARTS通过以下双层目标共同优化 α α α和模型权重 w w w:
min α L v a l ( w ∗ , α ) s . t . w ∗ = arg min w L t r a i n ( w , α ) . (1) \min_{\alpha}\mathcal{L}_{val}(w^*,\alpha)\quad\mathrm{s.t.}\quad w^*=\arg\min_{w}\mathcal{L}_{train}(w,\alpha). \tag{1} αminLval(w∗,α)s.t.w∗=argwminLtrain(w,α).(1)
我们将搜索阶段使用的连续松弛网络称为DARTS的超网络。在搜索阶段结束时,将从超网络中选择与每条边最大 α o α_o αo相关联的操作,形成最终架构。
DARTS失效模式分析。一些研究对DARTS的鲁棒性提出了质疑。Zela等人(2020)在四个不同的搜索空间上测试了DARTS,并观察到性能明显退化。他们的经验发现,当DARTS的网络落入验证损失的高曲率区域(由Hessian ∇ α . α 2 L v a l ( w , α ) \nabla_{\alpha.\alpha}^{2}{\mathcal{L}_{val}}(w,\alpha) ∇α.α2Lval(w,α))。虽然Zela等人(2020)将这个问题与DARTS中超网络训练的失败联系起来,但我们从DARTS的架构选择方面进行了研究,并表明通过更好的架构选择方法可以缓解DARTS的大部分鲁棒性问题。
渐进式搜索空间收缩。有一系列关于NAS的研究侧重于通过渐进式搜索空间收缩来降低搜索成本并调整搜索和评估阶段的模型大小(Liu et al ., 2018;Li et al ., 2019;Chen等,2021;Li et al, 2020)。这些方法的一般方案是在搜索阶段根据DARTS之后的 α α α的大小依次修剪弱操作和边缘。在这方面,我们的方法与它们是正交的,因为我们选择的操作是基于它对超网络性能的贡献程度,而不是 α α α值。虽然我们也会贪婪地离散边缘,并在中间对网络进行微调,但目的是让超网络从离散化后的精度损失中恢复过来,以准确地评估下一个边缘的操作强度,而不是降低搜索成本。
3 DARTS中基于MAGNITUDE的架构选择的陷阱
在本节中,我们提出了架构参数 α α α不一定代表一般底层操作的强度的观点,并得到了经验和理论证据的支持。作为一个重要的例子,我们在数学上证明了在DARTS中观察到的跳跃连接支配现象本身是合理的,并且在与基于大小的架构选择结合时成为问题。
3.1 α α α不能代表操作强度
继DARTS之后,现有的可微分NAS方法使用架构参数 α α α的值从超网络中选择最终架构,并隐含假设 α α α代表底层操作的强度。在本节中,我们将详细研究这一假设的有效性。
考虑一个预先训练好的超网络的一个边;边缘操作的强度可以自然地定义为对该操作进行离散化并对剩余网络进行微调直至其再次收敛后的网络精度;我们将其简称为“收敛处离散化精度”。在收敛处达到最佳离散化精度的操作可以被认为是给定边的最佳操作。图1显示了随机选择的边缘在DARTS超网络上的 α α α(蓝色)和操作强度(橙色)的比较。
正如我们所看到的,每个操作的 α α α的大小不一定与收敛时离散化精度测量的相对强度一致。此外,分配小 α s α_s αs的操作有时是强操作,导致收敛时的高离散精度。为了进一步验证不匹配,我们研究了搜索空间S2上的操作强度,其中由于过多的跳跃连接,DARTS会严重失败(Zela et al, 2020)。S2是DARTS搜索空间的一个变体,每条边只包含两个操作(skip connect, sep conv 3x3)。图2显示了S2上所有边上基于 α α α(左)和操作强度(右)选择的操作。
从图2a中,我们可以看到 α s k i p _ c o n n e c t > α s e p _ c o n v _ 3 × 3 α_{skip\_connect} > α_{sep\_conv\_3\times3} αskip_connect>αsep_conv_3×3在14条边中的12条上。因此,派生的子架构将缺乏表示能力,并且由于太多的跳跃连接而表现不佳。然而,如图2b所示,超网从离散化到sep-conv_3x3中受益更多,而不是在一半边缘上跳跃连接。
3.2 一个案例分析:跳跃连接
一些研究指出,DARTS倾向于将大的 α α α分配给跳跃连接,从而导致可泛化性差的浅架构(Zela等人,2020;Liang et al ., 2019;Bi et al, 2019)。这种“跳跃连接支配”问题通常归因于DARTS超网络优化的失败。相比之下,我们从ResNet的研究中得到启发(He et al, 2016),并表明这种现象本身是一个合理的结果,而DARTS改进了其对最优特征映射的估计,使得 α s k i p α_{skip} αskip在架构选择中无效。
在vanilla网络(如VGG)中,每一层从前一层的输出特征映射中计算一个新的特征映射;因此,在测试时重新排序层将极大地损害性能(Veit et al, 2016)。与普通的网络不同,Greff等人(2017)和Veit等人(2016)发现,具有兼容通道大小的ResNet中的连续层实际上是在估计相同的最优特征映射,以便这些层的输出在收敛时彼此保持相对接近;因此,ResNet的测试精度在层重排序下保持稳定。Greff等人(2017)将ResNet中这种独特的特征映射估计方法称为“展开估计”。
DARTS的超网络在外观和行为上都类似于ResNet,而不是像VGG这样的普通网络。从外观上看,在DARTS超网络的一个单元内,具有跳跃连接的边与ResNet中的连续残差层直接对应。在行为方面,DARTS的超网络在边缘洗牌下也表现出高度的鲁棒性。如表1所示,在测试时,在预训练的DARTS超网络上随机重新排序边缘对其性能的影响也很小。这一证据表明,DARTS也像ResNet一样执行展开估计,即,单元内的边缘共享相同的最优特征图,它们试图估计。在下面的命题中,我们应用这一发现,并在最小化特征映射估计方差的意义上提 α α α的最优解。
命题1。在不丧失一般性的前提下,考虑一个简化搜索空间中的单元包含两个操作:(skip, conv)。设 m ∗ m^* m∗表示最优特征映射,根据展开的估计视图在所有边上共享(Greff et al, 2017)。设 e ( x e ) e(x_e) e(xe)为卷积运算的输出,设 x e x_e xe为跳跃连接(即边e的输入特征映射)。假设 m ∗ m^* m∗, o e ( x e ) o_e(x_e) oe(xe)和 x e x_e xe被归一化为相同的尺度。 m ∗ m^* m∗的当前估计值可以写成:
m ‾ e ( x e ) = exp ( α c o n v ) exp ( α c o n v ) + exp ( α s k i p ) α e ( x e ) + exp ( α s k i p ) exp ( α c o n v ) + exp ( α s k i p ) x e , (2) \overline{m}_e(x_e)=\frac{\exp(\alpha_{conv})}{\exp(\alpha_{conv})+\exp(\alpha_{skip})}\alpha_e(x_e)+\frac{\exp(\alpha_{skip})}{\exp(\alpha_{conv})+\exp(\alpha_{skip})}x_e, \tag{2} me(xe)=exp(αconv)+exp(αskip)exp(αconv)αe(xe)+exp(αconv)+exp(αskip)exp(αskip)xe,(2)
其中 α c o n v α_{conv} αconv和 α s k i p α_{skip} αskip是在DARTS中定义的架构参数。最优 α c o n v ∗ α^∗_{conv}