DARTS-PT: RETHINKING ARCHITECTURE SELECTION IN DIFFERENTIABLE NAS

news/2024/5/14 18:42:06/文章来源:https://blog.csdn.net/weixin_43790925/article/details/137155147

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)=oOoexpαoexpα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} αconv α s k i p ∗ α^∗_{skip} αskip最小化 v a r ( m ‾ e ( x e ) − m ∗ ) var(\overline{m}_{e}(x_{e})-m^{*}) var(me(xe)m),即最优特征映射 m ∗ m^∗ m与其当前估计 m e ( x e ) m_e(x_e) me(xe)之间的差的方差,由下式给出:
α c o n v ∗ ∝ v a r ( x e − m ∗ ) α s k i p ∗ ∝ v a r ( o e ( x e ) − m ∗ ) . \begin{align} \alpha_{conv}^*&\propto var(x_e-m^*)\tag{3}\\\\ \alpha_{skip}^*&\propto var(o_e(x_e)-m^*).\tag{4} \end{align} αconvαskipvar(xem)var(oe(xe)m).(3)(4)
我们建议读者参阅附录A.4以获得详细的证明。从公式(3)和公式(4)中,我们可以看到 α s k i p α_{skip} αskip α c o n v α_{conv} αconv的相对大小可以归结为 x e x_e xe o e ( x e ) o_e(x_e) oe(xe)中哪一个更接近方差 m ∗ m^* m

  • x e x_e xe(边 e e e的输入)来自前一条边的混合输出。由于每条边的目标是估计 m ∗ m^* m(展开估计), x e x_e xe也直接估计 m ∗ m^* m
  • o e ( x e ) o_e (x_e) oe(xe)是单个卷积操作的输出,而不是边缘 e e e的完全混合输出,因此即使在收敛时它也会偏离 m ∗ m^* m

因此,在优化良好的超网络中, x e x_e xe自然会比 o e ( x e ) o_e(x_e) oe(xe)更接近 m ∗ m^* m,从而导致 α s k i p α_{skip} αskip大于 α c o n v α_{conv} αconv

我们上面的分析表明,网络越好, ( α s k i p − α c o n v ) (α_{skip} - α_{conv}) (αskipαconv) gap (softmaxed)就越大,因为随着超网络的优化, x e x_e xe越来越接近 m ∗ m^* m。这一结果在图3中得到了证明,随着超网络变得更好,平均值 ( α s k i p − α c o n v ) (α_{skip} - α_{conv}) (αskipαconv)继续增长。在这种情况下,虽然 α s k i p > α c o n v α_{skip} > α_{conv} αskip>αconv

在这里插入图片描述

4 基于微扰的架构选择

我们建议直接根据操作强度对超网络性能的贡献来评估操作强度,而不是依靠 α α α值来选择最佳操作。操作选择标准见第4.1节。在第4.2节中,我们将描述整个架构选择过程。

4.1 评估各操作的强度

在第3.1节中,我们将给定边缘上每个操作的强度定义为它对网络性能的贡献程度,通过离散化精度来衡量。为了避免在离散化过程中由于超网络的大干扰而导致评估不准确,我们对剩余的超网络进行微调,直到它再次收敛,然后计算其验证精度(收敛时的离散化精度)。需要进行微调过程来评估边缘上的每个操作,这会导致大量的计算成本。

为了减轻计算开销,我们考虑了一种更实用的操作强度度量:对于给定边缘上的每个操作,我们在保留所有其他操作的同时mask它,并重新评估超网络。导致超网络验证精度下降最大的操作将被认为是该边缘上最重要的操作。与离散化相比,这种替代准则对超网络的扰动要小得多,因为它一次只从超网络中删除一个操作。因此,删除后的超网络的验证精度接近未修改的超网络,从而减轻了对剩余超网络进行收敛调整的要求。因此,我们在本工作中对操作选择实施此度量。

4.2 完整的架构选择过程

我们的方法直接在DARTS预训练的超网络上运行。给定一个超网络,我们随机遍历它的所有边。我们评估边缘上的每个操作,并根据第4.1节中描述的测量选择最佳的操作进行离散化。之后,我们调整超网络几个epoch以恢复离散化过程中丢失的准确性。重复上述步骤,直到所有边都确定。算法1总结了操作选择过程。单元拓扑以类似的方式确定。我们建议读者参阅附录A.3了解完整的算法,包括确定单元拓扑。这个简单的方法在接下来的章节中被称为“基于微扰的架构选择(PT)”。

在这里插入图片描述

5 实验结果

在本节中,我们证明了基于微扰的架构选择方法能够始终如一地找到比基于 α α α值选择的架构更好的架构。评估基于DARTS和NAS-Bench-201的搜索空间(Dong & Yang, 2020),我们证明了基于微扰的架构选择方法可以应用于多种DARTS变体。

5.1 DARTS的CNN搜索空间结果

我们保持所有的搜索和重新训练设置与DARTS相同,因为我们的方法只修改了架构选择部分。在搜索阶段之后,我们根据算法1在预训练的超网络上进行基于微扰的架构选择。我们在两次选择之间调整超网络5个epoch,因为这足以使超网络从离散化后的精度下降中恢复过来。我们使用四个随机种子运行搜索和架构选择阶段,并报告所获得架构的最佳和平均测试误差。

如表2所示,提出的方法(DARTS+PT)将DARTS的测试误差从3.00%提高到2.61%,搜索成本可控(0.8 GPU-Day)。请注意,仅通过改变架构选择方法,DARTS的性能明显优于许多其他可微分NAS方法,这些方法享有精心设计的超网络优化过程,如GDAS (Dong & Yang, 2019)和SNAS (Xie et al, 2019)。这一实证结果表明,结构选择对DARTS至关重要:通过适当的选择算法,DARTS仍然是一种非常有竞争力的方法。

在这里插入图片描述

我们的方法也能够提高其他DARTS变体的性能。为了证明这一点,我们在SDARTS (rs)和SGAS上评估了我们的方法(Chen & Hsieh, 2020;Li et al, 2020)。SDARTS(rs)是DARTS的一种变体,它通过对 α α α施加高斯扰动来正则化搜索阶段。与DARTS和SDARTS不同,SGAS执行渐进式搜索空间收缩。具体而言,SGAS基于一种新的边缘重要性分数,按照从最重要到最不重要的顺序逐步离散其边缘。为了公平的比较,我们保持其独特的搜索空间缩减过程不变,只是将其基于大小的操作选择替换为我们的。从表2中可以看出,我们的方法始终比基于magnitude的方法获得更好的平均测试误差。具体而言,该方法将SDARTS的测试误差从2.67%提高到2.54%,将SGAS的测试误差从2.66%提高到2.56%。此外,我们在实验中发现的最佳架构的测试误差为2.44%,在其他NAS方法中排名第一。

5.2 Nas-Bench-201搜索空间上的性能

为了进一步验证所提出的基于微扰的架构选择的有效性,我们在NAS-Bench-201上进行了实验。NAS-Bench-201提供了类似于DARTS的基于单元的统一搜索空间搜索空间中的每个架构都是在相同的协议下在三个数据集(cifar10、cifar100和imagenet16-120)上进行训练的,它们的性能可以通过查询数据库来获得。如5.1节所述,我们从DARTS中获取预训练的超网络,并在其上应用我们的方法。所有其他设置保持不变。图4显示了与DARTS相比,DARTS+PT的性能轨迹。虽然基于magnitude的选择发现的架构随着时间的推移而退化,但基于微扰的方法能够从相同的底层超网络中稳定地提取更好的架构。结果表明,基于magnitude的结构选择失败是导致DARTS性能退化的主要原因。

在这里插入图片描述

6 分析

6.1 DARTS的鲁棒性问题

Zela等人(2020)观察到,DARTS倾向于产生性能糟糕的退化架构。我们推测,DARTS的鲁棒性问题可以通过基于magnitude的架构选择的失败来解释。

为了证明这一点,我们在Zela等人(2020)(S1-S4)提出的四个空间上使用基于微扰的架构选择来测试DARTS的性能。这些空格的完整规格可在附录A.2中找到。给定一个超网络,基于 α α α选择的架构在空间和数据集上表现不佳(表3中的第3列)。然而,我们的方法能够持续提取有意义的架构,并显著提高性能(表3中的第4列)。

在这里插入图片描述

值得注意的是,DARTS+PT能够在S2(skip connect,sep conv 3x3)和S4(noise,sep conv 3x3)上找到有意义的架构,而在这些地方,DARTS失败了。如图5所示,在S2上,基于magnitude的选择退化为充满跳跃连接的架构,而DARTS+PT则能够找到具有4个卷积的架构;在S4上,在 α α α选择噪声的边缘上,DARTS+PT始终倾向于sep_conv_3x3。

在这里插入图片描述

6.2 渐进式Tuning

除了操作选择外,我们还在边缘离散后对超网络进行了调整,使超网络能够恢复失去的精度。为了单独衡量我们的操作选择标准的有效性,我们对渐进式Tuning部分进行了消融研究。具体来说,我们通过将渐进式Tuning与基于magnitude的操作选择相结合来测试基线,而不是我们的选择标准,我们将其命名为DARTS+PT-Mag。图6绘制了在操作选择阶段,DARTS+PT和DARTS+PT-Mag验证精度的变化。正如我们所看到的,与基于magnitude的替代方案相比,DARTS+PT能够识别出更好的操作,从而获得更高的验证精度,从而揭示了我们的操作选择标准的有效性。此外,在cifar10上,DARTS+PT-Mag在DARTS空间上的测试误差仅为2.85%,远低于DARTS+PT的2.61%,说明操作选择部分在我们的方法中起着至关重要的作用。

在这里插入图片描述

6.3 固定相同的 α α α

由于所提出的方法不依赖于 α α α进行架构选择,一个自然的问题是是否有必要优化一个独立的 α α α。我们发现,在训练超网络和应用基于微扰的架构选择时,通过固定 α = 0 α = 0 α=0(所有操作的统一权重),所得方法的性能与DARTS+PT相当,在某些情况下甚至更好。例如,在NAS-Bench-201上,DARTS+PT (fix α)的性能优于DARTS+PT。在DARTS的搜索空间及其变体S1-S4上,DARTS+PT (fix α)的表现与DARTS+PT相似。结果如表3和表4所示。这一令人惊讶的发现表明,即使是最朴素的方法,即简单地训练一个不含 α α α的超网络,在与所提出的基于微扰的架构选择相结合时,也将是一种有竞争力的方法。

在这里插入图片描述

7 CONCLUSION AND DISCUSSION

本文试图从架构选择的角度来理解可微分的NAS方法。我们重新审视了基于magnitude的DARTS架构选择过程,并提供了经验和理论证据,说明为什么它不能表明潜在的操作强度。我们引入了另一种基于微扰的架构选择方法,通过其对超网络性能的贡献直接测量操作强度。所提出的选择方法能够在多个空间和数据集上从与各自基本方法训练相同的超网络中一致地提取改进的结构。

我们的方法在超网络训练中带来了更大的自由度,因为它不依赖于 α α α来推导最终的结构。我们希望基于微扰的结构选择能够给NAS学界带来新的视角,重新思考 α α α在差异NAS中的作用。

A APPENDIX

A.1 关于我们的基线模型的描述

A.1.1 DARTS

DARTS (Liu et al ., 2019)是一项开创性的工作,介绍了一般可微分NAS框架,我们在第2节中对其进行了回顾。在DARTS中,拓扑和操作是一起搜索的。具体地说,在搜索结束时,它根据架构参数 α α α对正常(约简)单元中的每条边选择一个操作。然后,通过比较每个输入边的最大 α α α值,为单元中的每个节点选择两个输入边。最终的架构包括在正常(约简)单元中的8个边中的每一个边上的一个操作。边缘上的操作将从七个候选池中选择:kip connection, avg pool 3x3, max pool 3x3, sep conv 3x3, sep conv 5x5, dil conv 3x3, 和dil conv 5x5。除了这些操作之外,DARTS还维护一个“None”操作,该操作专门用于确定拓扑,而不是作为操作处理(Liu et al, 2019)。由于本文的重点是操作分配,因此在将所提出的选择方法应用于DARTS时,我们忽略了任何op。

A.1.2 SDARTS

SDARTS (Chen & Hsieh, 2020)是DARTS的一个变体,旨在通过随机高斯扰动对DARTS中的双层优化过程进行正则化,其灵感来自最近发现的正则化DARTS的超网络可以提高性能。虽然SDARTS中的结构参数 α α α的优化与DARTS相同,但它在训练模型权值 w w w时使用随机高斯噪声对结构参数 α α α进行扭曲。这种简单而有效的正则化方法能够持续提高DARTS的鲁棒性和性能。

A.1.3 SGAS

SGAS (Li et al ., 2020)代表了通过逐步缩小搜索空间来提高可微NAS搜索效率的一系列研究。它首先单独训练模型权值 w w w 10次。然后,从超网络中选择一条边,然后根据 α α α选择该边上的最佳操作进行离散化。边缘选择是基于提出的边缘重要性得分的排名。在确定最终架构的所有八个边缘后,该过程停止。

A.2 S1-S4空间的微结构

Zela等人(2020)引入了四种DARTS空间变体(S1、S2、S3和S4)来研究DARTS的鲁棒性。这些空间与DARTS的原始空间的不同之处在于每条边上操作的数量和类型。除此之外,其他一切都是一样的。

  • S1是由dart选择的top2操作组成的预优化搜索空间。因此,每条边包含一组不同的要搜索的操作。
  • S2由两个操作组成:skip connect和sep conv 3x3。
  • S3包含三个操作:none、skip connect和sep conv 3x3。
  • S4包括两个操作:Noise和sep conv 3x3。噪声运算输出随机高斯噪声 N ( 0 , 1 ) \mathcal{N} (0,1) N(0,1)不考虑输入。这种操作通常会损害离散化架构的性能,应该通过NAS算法加以避免。

A.3 基于微扰的架构选择完整算法

在这里插入图片描述

A.4 命题1的证明

已知:

(1) θ s k i p = S o f t m a x ( α s k i p ) \theta_{skip}=Softmax(\alpha_{skip}) θskip=Softmax(αskip)

​(2) θ c o n v = S o f t m a x ( α c o n v ) \theta_{conv}=Softmax(\alpha_{conv}) θconv=Softmax(αconv)

​(3) m ‾ e ( x e ) = θ c o n v o e ( x e ) + θ s k i p x e \overline{m}_{e}(x_{e})=\theta_{conv}o_{e}(x_{e})+\theta_{skip}x_{e} me(xe)=θconvoe(xe)+θskipxe

目标:
min ⁡ θ s k i p , θ c o n v V a r ( m ‾ e ( x e ) − m ∗ ) s . t . θ s k i p + θ c o n v = 1 \begin{align}\min_{\theta_{skip},\theta_{conv}}Var(\overline{m}_e(x_e)-m^*)\tag{5}\\s.t.\quad\theta_{skip}+\theta_{conv}=1\tag{6}\end{align} θskip,θconvminVar(me(xe)m)s.t.θskip+θconv=1(5)(6)
拉格朗日乘子法求解:
L ( θ s k i p , θ c o n v , λ ) = V a r ( m ‾ e ( x e ) − m ∗ ) − λ ( θ s k i p + θ c o n v − 1 ) = V a r ( θ c o n v o e ( x e ) + θ s k i p x e − m ∗ ) − λ ( θ s k i p + θ c o n v − 1 ) = V a r ( θ c o n v ( o e ( x e ) − m ∗ ) + θ s k i p ( x e − m ∗ ) ) − λ ( θ s k i p + θ c o n v − 1 ) = V a r ( θ c o n v ( o e ( x e ) − m ∗ ) ) + V a r ( θ s k i p ( x e − m ∗ ) ) + 2 C o v ( θ c o n v ( o e ( x e ) − m ∗ ) , θ s k i p ( x e − m ∗ ) ) − λ ( θ s k i p + θ c o n v − 1 ) = θ c o n v 2 V a r ( o e ( x e ) − m ∗ ) + θ s k i p 2 V a r ( x e − m ∗ ) + 2 θ c o n v θ s k i p C o v ( o e ( x e ) − m ∗ , x e − m ∗ ) − λ ( θ s k i p + θ c o n v − 1 ) \begin{align} L(\theta_{skip},\theta_{conv},\lambda) &\begin{aligned}=Var(\overline{m}_{e}(x_{e})-m^{*})-\lambda(\theta_{skip}+\theta_{conv}-1)\end{aligned} \tag{7}\\ &\begin{aligned}=Var(\theta_{conv}o_e(x_e)+\theta_{skip}x_e-m^*)-\lambda(\theta_{skip}+\theta_{conv}-1)\end{aligned}\tag{8} \\ &\begin{aligned}=Var(\theta_{conv}(o_{e}(x_{e})-m^{*})+\theta_{skip}(x_{e}-m^{*}))-\lambda(\theta_{skip}+\theta_{conv}-1)\end{aligned}\tag{9} \\ &\begin{aligned}&=Var(\theta_{conv}(o_{e}(x_{e})-m^{*}))+Var(\theta_{skip}(x_{e}-m^{*}))\\ &+2Cov(\theta_{conv}(o_{e}(x_{e})-m^{*}),\theta_{skip}(x_{e}-m^{*}))-\lambda(\theta_{skip}+\theta_{conv}-1)\end{aligned} \tag{10} \\ &\begin{aligned}&=\theta_{conv}^{2}Var(o_{e}(x_{e})-m^{*})+\theta_{skip}^{2}Var(x_{e}-m^{*}) \\ &+2\theta_{conv}\theta_{skip}Cov(o_{e}(x_{e})-m^{*},x_{e}-m^{*})-\lambda(\theta_{skip}+\theta_{conv}-1)\end{aligned} \tag{11} \end{align} L(θskip,θconv,λ)=Var(me(xe)m)λ(θskip+θconv1)=Var(θconvoe(xe)+θskipxem)λ(θskip+θconv1)=Var(θconv(oe(xe)m)+θskip(xem))λ(θskip+θconv1)=Var(θconv(oe(xe)m))+Var(θskip(xem))+2Cov(θconv(oe(xe)m),θskip(xem))λ(θskip+θconv1)=θconv2Var(oe(xe)m)+θskip2Var(xem)+2θconvθskipCov(oe(xe)m,xem)λ(θskip+θconv1)(7)(8)(9)(10)(11)
设置:
∂ L ∂ λ = θ c o n v + θ s k i p − 1 = 0 ∂ L ∂ θ c o n v = 2 θ c o n v V a r ( o e ( x e ) − m ∗ ) + 2 θ s k i p C o v ( o e ( x e ) − m ∗ , x e − m ∗ ) − λ = 0 ∂ L ∂ θ s k i p = 2 θ c o n v C o v ( o e ( x e ) − m ∗ , x e − m ∗ ) + 2 θ s k i p V a r ( x e − m ∗ ) − λ = 0 \begin{align} \frac{\partial L}{\partial\lambda}& =\theta_{conv}+\theta_{skip}-1=0 \tag{12}\\ \frac{\partial L}{\partial\theta_{conv}}& =2\theta_{conv}Var(o_{e}(x_{e})-m^{*})+2\theta_{skip}Cov(o_{e}(x_{e})-m^{*},x_{e}-m^{*}) -\lambda=0 \tag{13}\\ \frac{\partial L}{\partial\theta_{skip}}& =2\theta_{conv}Cov(o_{e}(x_{e})-m^{*},x_{e}-m^{*})+2\theta_{skip}Var(x_{e}-m^{*}) -\lambda=0 \tag{14} \end{align} λLθconvLθskipL=θconv+θskip1=0=2θconvVar(oe(xe)m)+2θskipCov(oe(xe)m,xem)λ=0=2θconvCov(oe(xe)m,xem)+2θskipVar(xem)λ=0(12)(13)(14)
解上述方程:
θ c o n v ∗ = V a r ( x e − m ∗ ) − C o v ( o e ( x e ) − m ∗ , x e − m ∗ ) Z θ s k i p ∗ = V a r ( o e ( x e ) − m ∗ ) − C o v ( o e ( x e ) − m ∗ , x e − m ∗ ) Z Z = V a r ( o e ( x e ) − m ∗ ) − C o v ( o e ( x e ) − m ∗ , x e − m ∗ ) + V a r ( x e − m ∗ ) − C o v ( o e ( x e ) − m ∗ , x e − m ∗ ) . \begin{align} \theta_{conv}^{*}&=\frac{Var(x_{e}-m^{*})-Cov(o_{e}(x_{e})-m^{*},x_{e}-m^{*})}{Z} \tag{15}\\ \theta_{skip}^{*}&=\frac{Var(o_{e}(x_{e})-m^{*})-Cov(o_{e}(x_{e})-m^{*},x_{e}-m^{*})}{Z} \tag{16}\\ &\begin{aligned}Z&=Var(o_{e}(x_{e})-m^{*})-Cov(o_{e}(x_{e})-m^{*},x_{e}-m^{*})\\ &+Var(x_{e}-m^{*})-Cov(o_{e}(x_{e})-m^{*}, x_{e}-m^{*}).\end{aligned}\tag{17} \end{align} θconvθskip=ZVar(xem)Cov(oe(xe)m,xem)=ZVar(oe(xe)m)Cov(oe(xe)m,xem)Z=Var(oe(xe)m)Cov(oe(xe)m,xem)+Var(xem)Cov(oe(xe)m,xem).(15)(16)(17)
将基础与DARTS结合得到:
α c o n v ∗ = log ⁡ [ V a r ( x e − m ∗ ) − C o v ( o e ( x e ) − m ∗ , x e − m ∗ ) ] + C α s k i p ∗ = log ⁡ [ V a r ( o e ( x e ) − m ∗ ) − C o v ( o e ( x e ) − m ∗ , x e − m ∗ ) ] + C \begin{align} \alpha_{conv}^*&=\log\left[Var(x_e-m^*)-Cov(o_e(x_e)-m^*,x_e-m^*)\right]+C \tag{18}\\ \alpha_{skip}^*&=\log\left[Var(o_e(x_e)-m^*)-Cov(o_e(x_e)-m^*,x_e-m^*)\right]+C \tag{19} \end{align} αconvαskip=log[Var(xem)Cov(oe(xe)m,xem)]+C=log[Var(oe(xe)m)Cov(oe(xe)m,xem)]+C(18)(19)
区分 α s k i p α_{skip} αskip α c o n v α_{conv} αconv的唯一项是对数内的第一项,因此:
α c o n v ∗ ∝ v a r ( x e − m ∗ ) α s k i p ∗ ∝ v a r ( o e ( x e ) − m ∗ ) \begin{align} \alpha_{conv}^*&\propto var(x_e-m^*) \tag{20}\\ \alpha_{skip}^*&\propto var(o_e(x_e)-m^*) \tag{21} \end{align} αconvαskipvar(xem)var(oe(xe)m)(20)(21)

A.5 关于 α α α和收敛时离散化精度的更多图

我们提供了类似于图1的额外数字,以考虑到超网络训练的随机性。我们首先用不同的种子训练6个超网络,然后从每个超网络中随机选择1条边。我们可以看到,结果与图1一致。如图7所示,每个操作的 α α α值不一定与其收敛时的相对离散精度一致。

在这里插入图片描述

A.6 DARTS+PT(fix α α α)在NAS-Bench-201上的性能轨迹

我们绘制了DARTS+PT (fix α α α)在NAS-Bench-201上类似图4的性能轨迹。如图8所示,在完全不训练 α α α的情况下,它始终可以获得较强的性能,这表明在未来可以探索不训练 α α α的超网络训练的额外自由度,以开发改进的搜索算法。

在这里插入图片描述

A.7 微调epoch的消融研究

如第4.2节所述,我们在两个边缘决策之间执行微调,以从离散化后的精度下降中恢复超网络。在所有实验中,微调epoch的数量被设置为5,因为根据经验,我们发现这足以让超网络再次收敛。在本节中,我们对微调epoch数目的影响进行了消融研究。如图9所示,超网络调优时间超过5个epoch所获得的增益是微不足道的。

在这里插入图片描述

A.8 基于ImageNet的架构可转移性评价

我们进一步评估了衍生架构在ImageNet上的性能。在本次实验中,我们严格遵循了DARTS的训练方案和超参数设置(Liu et al ., 2019)。如表5所示,提出的方法使DARTS的Top1性能提高了1.2%。

在这里插入图片描述

A.9 搜索架构

图10-图24
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1028682.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上位机图像处理和嵌入式模块部署(qmacvisual非opencv算法编写)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 我们都知道,qmacvisual本身依赖于qtopencv的实现。大部分的界面都是依赖于qt的实现。图像算法部分,也是大部分都依赖于open…

【threejs】较大物体或shape的贴图较小问题处理方法

问题 有的场景内相对体型差距过大的物体(如山地 海洋等)由于尺寸问题,加载贴图过于小,同时shader也无法完全展示,如图 我们可以获取物体的uv,进行缩放使得贴图可以完全展开 如果uv是乱的 可以用xyz坐标最…

C语言例4-4:putchar()函数的调用格式和使用的例子

代码如下&#xff1a; //putchar()函数的调用格式和使用的例子 #include<stdio.h> //编译预处理命令&#xff0c;即文件包含命令 int main(void) {char ch1N, ch2E, ch3W;putchar(ch1);putchar(ch2);putchar(ch3); //输出变量c1、c2和c3中的字符putchar(\n);putcha…

Vue——案例01(查询用户)

一、案例实现页面 二、案例实现效果 1. 查询效果 2. 年龄升序 3. 年龄降序 4. 原顺序 三、案例实现思路 1. 定义界面所需标签样式 <div id"app"><h2>查询用户:</h2><input type"text" placeholder"请输入名字"/><b…

竞赛 python+大数据校园卡数据分析

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于yolov5的深度学习车牌识别系统实现 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;4分工作量&#xff1a;4分创新点&#xff1a;3分 该项目较为新颖&am…

浪潮信息AIStation与潞晨科技Colossal-AI 完成兼容性认证!

为进一步提升大模型开发效率&#xff0c;近年来&#xff0c;浪潮信息持续加强行业合作&#xff0c;携手业内头部&#xff0c;全面进攻大模型领域。日前&#xff0c;浪潮信息AIStation智能业务创新生产平台与潞晨科技Colossal-AI大模型开发工具完成兼容性互认证。后续&#xff0…

Istio 部署 Spring Coud 微服务应用

Istio 服务部署 这篇文章讲述如何将 Java Spring Cloud 微服务应用部署到 Istio mesh 中。 准备基础环境 使用 Kind 模拟 kubernetes 环境。文章参考&#xff1a;https://blog.csdn.net/qq_52397471/article/details/135715485 在 kubernetes cluster 中安装 Istio 创建一…

【Roadmap to learn LLM】Large Language Models in Five Formulas

by Alexander Rush Our hope: reasoning about LLMs Our Issue 文章目录 Perpexity(Generation)Attention(Memory)GEMM(Efficiency)用矩阵乘法说明GPU的工作原理 Chinchilla(Scaling)RASP(Reasoning)结论参考资料 the five formulas perpexity —— generationattention —— m…

前端web移动端学习day04

移动 Web 第四天 01-vw适配方案 vw和vh基本使用 vw和vh是相对单位&#xff0c;相对视口尺寸计算结果&#xff0c;相对于屏幕的逻辑参数 vw&#xff1a;viewport width&#xff08;1vw 1/100视口宽度 &#xff09;vh&#xff1a;lviewport height ( 1vh 1/100视口高度 ) …

二叉树:递归算法的理解和运用

上一期中&#xff0c;我们了解到了堆&#xff0c;堆的结构也可以叫做二叉树的顺序结构&#xff0c;今天我们一起来看看二叉树的链式结构&#xff0c;我们还要学习有关于二叉树递归的书写。 首先&#xff0c;这是一个二叉树&#xff0c;但是对于普通的二叉树来说&#xff0c;增…

蓝桥备赛——堆队列

AC code import os import sys import heapq a [] b [] n,k map(int,input().split())for _ in range(n):x,y map(int,input().split())a.append(x)b.append(y) q []# 第一种情况&#xff1a;不打第n个怪兽# 将前n-1个第一次所需能量加入堆 for i in range(n-1):heapq.h…

Selenium 自动化 —— 浏览器窗口操作

更多内容请关注我的专栏&#xff1a; 入门和 Hello World 实例使用WebDriverManager自动下载驱动Selenium IDE录制、回放、导出Java源码 当用 Selenium 打开浏览器后&#xff0c;我们就可以通过 Selenium 对浏览器做各种操作&#xff0c;就像我们日常用鼠标和键盘操作浏览器一…

c++初阶篇----string的底层模拟

string类的模拟 目录 string类的模拟功能介绍各功能的实现类的构造函数&#xff0c;拷贝构造函数&#xff0c;析构函数迭代器的实现string的内部容量访问成员函数string的修改成员函数string类的相关联函数string类的输入输出友元 汇总string功能的实现汇总测试代码 功能介绍 …

151 shell编程,正则表达式,在C语言中如何使用正则表达式

零&#xff0c;坑点记录&#xff1a;bash 和 dash 的区别&#xff0c;导致的坑点 查看当前用的shell 是啥&#xff0c;用的是/bin/bash hunandedehunandede-virtual-machine:~$ echo $SHELL /bin/bash 当shell 脚本运行的时候&#xff08;后面会学到方法&#xff0c;这里是最…

Django屏蔽Server响应头信息

一、背景 最近我们被安全部门的漏洞扫描工具扫出了一个服务端口的漏洞。这个服务本身是一个Django启动的web服务&#xff0c;并且除了登录页面&#xff0c;其它页面或者接口都需要进行登录授权才能进行访问。 漏洞扫描信息和提示修复信息如下: 自然这些漏洞如何修复&#xff0c…

图论- 最小生成树

一、最小生成树-prim算法 1.1 最小生成树概念 一幅图可以有很多不同的生成树&#xff0c;比如下面这幅图&#xff0c;红色的边就组成了两棵不同的生成树&#xff1a; 对于加权图&#xff0c;每条边都有权重&#xff08;用最小生成树算法的现实场景中&#xff0c;图的边权重…

每天五分钟深度学习:使用神经网络完成人脸的特征点检测

本文重点 我们上一节课程中学习了如何利用神经网络对图片中的对象进行定位,也就是通过输出四个参数值bx、by、bℎ和bw给出图片中对象的边界框。 本节课程我们学习特征点的检测,神经网络可以通过输出图片中对象的特征点的(x,y)坐标来实现对目标特征的识别,我们看几个例子。…

java 溯本求源之基础(八)之 jar(下篇)

上篇中我们介绍了 Java 类加载顺序、JAR 命令的使用以及 MANIFEST.MF 文件的作用。Java 类加载顺序包括 Bootstrap classes、Extension classes 和 Class Path。JAR 命令是一个归档和压缩工具&#xff0c;用于打包 Java 应用程序。MANIFEST.MF 文件存储打包文件的元信息&#x…

Midjourney AI绘图工具介绍及使用

介绍 Midjourney是一款目前被誉为最强的AI绘图工具。只要输入想到的文字&#xff0c;就能通过人工智能产出相对应的图片。 官网只是宣传和登录入口&#xff0c;提供个人主页、订阅管理等功能&#xff0c;Midjourney实际的绘画功能&#xff0c;是在另外一个叫discord的产品中实…

关于未来自我的发展和一些学习方法(嵌入式方向)

我是一名大二的学生&#xff0c;考研还是就业&#xff0c;到底是重视专业课还是重视数学英语&#xff0c;这些问题一直困扰了我很久&#xff0c;但如今已经有了一些浅显的认识&#xff0c;所以才会想写这样一篇文章来记录一下自己的状态和未来的规划 下面的看法都是个人的看法&…