DARTS-: ROBUSTLY STEPPING OUT OF PERFORMANCE COLLAPSE WITHOUT INDICATORS

DARTS-:增加辅助跳跃连接,鲁棒走出搜索性能崩溃

在这里插入图片描述

论文链接:https://arxiv.org/abs/2009.01027

项目链接:GitHub - Meituan-AutoML/DARTS-: Code for “DARTS-: Robustly Stepping out of Performance Collapse Without Indicators”

ABSTRACT

可微体系结构搜索(DARTS)发展迅速,但长期存在性能不稳定的问题,极大地限制了其应用。现有的鲁棒方法从导致的恶化行为中寻找线索,而不是找出其原因。在性能崩溃之前,提出了各种指标如Hessian特征值作为停止搜索的信号。然而,如果阈值设置不当,这些基于指标的方法往往容易拒绝良好的体系结构,更不用说搜索本质上是有噪声的。在本文中,我们采取一种更微妙和直接的方法来解决崩溃。我们首先证明跳跃连接比其他候选操作有明显的优势,它可以很容易地从不利状态恢复并成为主导。我们推测这种特权会导致性能下降。因此,我们建议通过辅助跳跃连接来考虑这一好处,确保所有操作的公平竞争。我们称这种方法为DARTS-。在各种数据集上的大量实验验证了它可以大大提高鲁棒性。

1 INTRODUCTION

近期研究(Zela et al, 2020;Liang et al ., 2019;Chu等人,2020b)已经证明了可微架构搜索的一个关键问题(Liu等人,2019b)是由于多余的跳跃连接导致的性能崩溃。据此,提出了一些检测崩溃发生的经验指标。R-DARTS (Zela等人,2020)表明,当导出的体系结构泛化不良时,损失情况(Loss Landscape)具有更多的曲率(以更高的Hessian特征值w.r.t.体系结构权重为特征)。通过正则化较低的Hessian特征值,Zela等(2020);Chen & Hsieh(2020)试图稳定搜索过程。同时,通过直接将跳跃连接的数量限制为固定数量(通常为2),崩溃问题变得不那么明显(Chen et al ., 2019b;Liang et al, 2019)。这些基于指标的方法有几个主要缺点。首先,鲁棒性很大程度上依赖于指标的质量。一个不精确的指标要么不可避免地接受糟糕的模型,要么错误地拒绝良好的模型。其次,指标通过直接操纵推断模型来施加强先验,这有点可疑,类似于触摸测试集。第三,额外的计算成本(Zela等人,2020)或超参数的仔细调优(Chen等人,2019b;Liang et al ., 2019)。因此,问以下问题是很自然的:

  • 我们是否可以在不干扰搜索和/或离散过程的手工指示和限制的情况下解决崩溃?
  • 是否有可能在不调整额外超参数的情况下实现DARTS的鲁棒性?

为了回答上述问题,我们提出了一种有效且高效的稳定DARTS的方法。我们的贡献可以总结如下:

稳定DARTS的新范式。通过经验观察,目前的指标(Zela et al, 2020;Chen & Hsieh, 2020)可以以减少搜索空间的搜索范围为代价来避免性能崩溃,我们提出了一种新的无指标方法来稳定DARTS,称为DARTS-,它涉及一个辅助跳跃连接(见图1),以消除搜索阶段的不公平优势(Chu et al, 2020b)。

在这里插入图片描述

强大的鲁棒性和稳定性。我们在七个搜索空间和三个数据集上进行了彻底的实验,以证明我们的方法的有效性。具体来说,我们的方法在4个搜索空间上稳健地获得了最先进的结果,搜索成本比R-DARTS (Zela等人,2020)低3倍,后者需要4次独立运行才能报告最终性能。

无缝插件组合与DARTS变体。我们进行了实验,以证明我们的方法可以通过移除其他正交DARTS变体的手工指示器而无需额外开销,从而与其他正交DARTS变体无缝协作。特别是,我们的方法能够在CIFAR-10数据集上提高P-DARTS的0.8%准确率和PC-DARTS的0.25%准确率。

2 RELATED WORK

网络架构搜索和DARTS变体。多年来,研究人员一直在寻求自动发现各种深度学习任务的神经架构,以减轻人类的繁琐工作,从图像分类(Zoph等人,2018),目标检测(Ghiasi等人,2019),图像分割(Liu等人,2019a)到机器翻译(So等人,2019)等。在许多已提出的方法中,可微分架构搜索(Liu et al ., 2019b)以权值共享为特征,通过梯度下降解决搜索问题,效率高且易于推广。在A.1中可以找到对DARTS的简短描述。从那时起,许多后续的工作都致力于加速这一过程(Dong & Yang, 2019b),降低内存成本(Xu等人,2020),或培养其能力,如硬件感知(Cai等人,2019;Wu et al ., 2019),更细粒度(Mei et al ., 2020)等。然而,尽管做出了这些努力,但DARTS搜索性能崩溃的一个根本问题仍然没有得到妥善解决,这极大地阻碍了它的应用。

Robustifying DARTS。由于已知DARTS (Liu et al ., 2019b)由于性能崩溃而不稳定(Chu et al ., 2020b),最近的一些研究致力于通过设计崩溃的Hessian特征值等指标(Zela et al ., 2020)或添加扰动来正则化这种指标(Chen & Hsieh, 2020)来解决它。这两种方法都严重依赖于指标的准确性,也就是说,指标在多大程度上与性能崩溃相关?其他方法,如Progressive DARTS (Chen et al ., 2019b)和DARTS+ (Liang et al ., 2019)采用强人类先验,即将跳跃连接的数量限制为固定值。Fair DARTS (Chu et al ., 2020b)认为,崩溃是由于排他性竞争环境中的不公平优势造成的,跳跃连接过度受益,导致大量聚集。为了抑制这种优势,他们将竞争转化为协作,每个操作都独立于其他操作。然而,这是一种间接的方法。相反,SGAS (Li et al, 2020)使用贪婪策略来规避问题,可以防止不公平优势生效。然而,由于贪婪的低估,潜在的好操作可能会被过早地淘汰。

3 DARTS-

3.1 动机

我们从详细分析跳跃连接的作用入手。在ResNet中提出了跳跃连接来构建残差块(He et al ., 2016),显著提高了训练稳定性。甚至可以通过简单地堆叠将网络加深到数百层而不会降低精度。相反,当网络越深时,对VGG的普通块进行叠加会导致性能下降。此外,Ren et al (2015);Wei等(2017);泰等人(2017);Li等人(2018b)也通过经验证明,深度残差网络可以在各种任务上取得更好的性能。

从梯度流的角度来看,跳跃连接可以缓解梯度消失问题。给定n个残差块的堆栈,第(i +1)个残差块Xi+1的输出可以计算为 X i + 1 = f i + 1 ( X i , W i + 1 ) + X i X_{i+1} = f_{i+1}(X_i,W_{i+1}) + X_i Xi+1=fi+1(Xi,Wi+1)+Xi,其中 f i + 1 f_{i+1} fi+1表示权重为 W i + 1 W_{i+1} Wi+1的第 ( i + 1 ) (i +1) (i+1)个残差块的操作。设模型的损失函数为 L \mathcal{L} L,则 X i X_i Xi的梯度可得如下公式( 1 \mathbb{1} 1表示张量项均为1):
∂ L ∂ X i = ∂ L ∂ X i + 1 ⋅ ( ∂ f i + 1 ∂ X i + 1 ) = ∂ L ∂ X i + j ⋅ ∏ k = 1 j ( ∂ f i + k ∂ X i + k − 1 + 1 ) (1) \begin{aligned}\frac{\partial\mathcal{L}}{\partial X_i}&=\frac{\partial\mathcal{L}}{\partial X_{i+1}}\cdot\left(\frac{\partial f_{i+1}}{\partial X_i}+\mathbb{1}\right)=\frac{\partial\mathcal{L}}{\partial X_{i+j}}\cdot\prod_{k=1}^j\left(\frac{\partial f_{i+k}}{\partial X_{i+k-1}}+\mathbb{1}\right)\end{aligned} \tag{1} XiL=Xi+1L(Xifi+1+1)=Xi+jLk=1j(Xi+k1fi+k+1)(1)
我们观察到,浅层的梯度总是包含深层的梯度,这减轻了 W i W_i Wi的梯度消失。正式来说,
∂ L ∂ W i = ∂ L ∂ X i + j ⋅ ∏ k = 1 j ( ∂ f i + k ∂ X i + k − 1 + 1 ) ⋅ ∂ f i ∂ W i (2) \begin{aligned}\frac{\partial\mathcal{L}}{\partial W_i}&=\frac{\partial\mathcal{L}}{\partial X_{i+j}}\cdot\prod_{k=1}^j\left(\frac{\partial f_{i+k}}{\partial X_{i+k-1}}+\mathbb{1}\right)\cdot\frac{\partial f_i}{\partial W_i}\end{aligned} \tag{2} WiL=Xi+jLk=1j(Xi+k1fi+k+1)Wifi(2)
为了分析跳跃连接如何影响剩余网络的性能,我们在ResNet中对所有的跳跃连接引入了一个可训练系数 β β β。因此,将 X i X_i Xi的梯度变换为:
∂ L ∂ X i = ∂ L ∂ X i + 1 ⋅ ( ∂ f i + 1 ∂ X i + β ) (3) \begin{aligned}\frac{\partial\mathcal{L}}{\partial X_i}=\frac{\partial\mathcal{L}}{\partial X_{i+1}}\cdot\left(\frac{\partial f_{i+1}}{\partial X_i}+\beta\right)\end{aligned} \tag{3} XiL=Xi+1L(Xifi+1+β)(3)
β < 1 β < 1 β<1时,深层梯度在向浅层反向传播(BP)过程中逐渐消失。这里, β β β控制BP中梯度的记忆,以稳定训练过程。

我们在ResNet50上进行了验证性实验,结果如图2所示。用 { 0 , 0.5 , 1.0 } \{0,0.5,1.0\} {0,0.5,1.0}初始化β,我们可以看到 β β β随训练时期的变化趋势。我们观察到,无论初始化如何,经过40次epoch后, β β β都收敛于1,这表明残差结构学习将 β β β推到一个相当大的值以缓解梯度消失。

在这里插入图片描述

类似地,DARTS (Liu et al ., 2019b)使用可训练参数 β s k i p β_{skip} βskip来表示跳跃连接的重要性。然而,在搜索阶段, β s k i p β_{skip} βskip一般会增加和主导架构参数,最终导致性能崩溃。我们分析了DARTS中 β s k i p β_{skip} βskip变大的原因有两个方面:一方面,由于超网络自动学习减轻梯度消失,它将 β s k i p β_{skip} βskip推到一个适当的大值;另一方面,跳跃连接确实是目标网络的重要连接,应该在离散化阶段选择跳跃连接。因此,DARTS中的跳跃连接起着双重作用:一是作为稳定超网络训练的辅助连接,二是作为构建最终网络的候选操作。受上述观察和分析的启发,我们提出通过区分跳跃连接的两种作用和处理梯度流问题来稳定搜索过程。

3.2 走出性能崩溃

为了区分这两种作用,我们在一个单元中每两个节点之间引入一个辅助跳跃连接,如图1 (b)所示。一方面,固定的辅助跳跃连接具有稳定超网络训练的功能,即使 β s k i p β_{skip} βskip很小。另一方面,它也打破了不公平优势(Chu et al, 2020b),因为残差区块的有利贡献被剔除了。因此,学习到的结构参数 β s k i p β_{skip} βskip可以从控制梯度记忆的作用中解脱出来,更精确地表示跳跃连接作为候选操作的相对重要性。与公式7相反,现在可以通过公式4获得边缘 e ( i , j ) e (i,j) e(i,j)的输出特征映射,其中 β o i , j = exp ⁡ ( α o ( i , j ) ) ∑ o ′ ∈ O exp ⁡ ( α o ′ ( i , j ) ) \beta_{o}^{i,j}=\frac{\exp(\alpha_{o}^{(i,j)})}{\sum_{o^{\prime}\in\mathcal{O}}\exp(\alpha_{o^{\prime}}^{(i,j)})} βoi,j=oOexp(αo(i,j))exp(αo(i,j))表示归一化重要性, β β β是独立于结构参数的系数。

此外,为了消除辅助连接对离散化过程的影响,我们提出在搜索阶段将 β β β减小到0,并且我们的方法可以在搜索结束时退化为标准的DARTS。请注意,我们的方法对衰减策略的类型并非不敏感,因此为了简单起见,我们默认选择线性衰减。
o ˉ ( i , j ) ( x ) = β x + ∑ o ∈ O β o ( i , j ) o ( x ) = ( β + β s k i p ( i , j ) ) x + ∑ o ≠ s k i p β o ( i , j ) o ( x ) (4) \bar{o}^{(i,j)}(x)=\beta x+\sum_{o\in\mathcal{O}}\beta_{o}^{(i,j)}o(x)=\left(\beta+\beta_{skip}^{(i,j)}\right)x+\sum_{o\neq skip}\beta_{o}^{(i,j)}o(x) \tag{4} oˉ(i,j)(x)=βx+oOβo(i,j)o(x)=(β+βskip(i,j))x+o=skipβo(i,j)o(x)(4)
然后分析了辅助跳跃连接是如何处理梯度流问题的。参考Zhou等人(2020)最近工作的定理,超网络中网络权值 W W W的收敛性在很大程度上依赖于 β s k i p β_{skip} βskip。具体来说,假设在搜索空间中只包含三种操作(无操作、跳跃连接和卷积),并利用MSE损失作为训练损失,当结构参数 β i , j o β^o_{i,j} βi,jo固定,通过梯度下降优化 W W W时,训练损失可以在一步中按比例 ( 1 − η λ / 4 ) (1−ηλ/4) (1ηλ/4)降低,概率至少为 1 − δ 1−δ 1δ,其中 η η η是学习率,应该以 δ δ δ为界, λ λ λ遵循公式5。
λ ∝ ∑ i = 0 h − 2 [ ( β c o n v ( i , h − 1 ) ) 2 ∏ t = 0 i − 1 ( β s k i p ( t , i ) ) 2 ] (5) \lambda\propto\sum_{i=0}^{h-2}\left[\left(\beta_{conv}^{(i,h-1)}\right)^2\prod_{t=0}^{i-1}\left(\beta_{skip}^{(t,i)}\right)^2\right] \tag{5} λi=0h2[(βconv(i,h1))2t=0i1(βskip(t,i))2](5)
其中 h h h为超网络的层数。从公式5中,我们观察到 λ λ λ β s k i p β_{skip} βskip的依赖比对 β c o n v β_{conv} βconv的依赖更大,这表明当 β s k i p β_{skip} βskip较大时,网络权值 W W W收敛得更快。然而,通过引入一个加权为 β β β的辅助跳跃连接,公式5可以细化为:
λ ∝ ∑ i = 0 h − 2 [ ( β c o n v ( i , h − 1 ) ) 2 ∏ t = 0 i − 1 ( β s k i p ( t , i ) + β ) 2 ] (6) \lambda\propto\sum_{i=0}^{h-2}\left[\left(\beta_{conv}^{(i,h-1)}\right)^2\prod_{t=0}^{i-1}\left(\beta_{skip}^{(t,i)}+\beta\right)^2\right] \tag{6} λi=0h2[(βconv(i,h1))2t=0i1(βskip(t,i)+β)2](6)
其中 β ≫ β s k i p β\ggβ_{skip} ββskip使得λ对 β s k i p β_{skip} βskip不敏感,使得网络权值 W W W的收敛更依赖于 β c o n v β_{conv} βconv。在搜索开始时, β s k i p β_{skip} βskip的一般值为0.15, β β β为1.0。从收敛定理(Zhou et al ., 2020)的角度来看,辅助跳跃连接缓解了 β s k i p β_{skip} βskip的特权,均衡了结构参数之间的竞争。即使当 β β β逐渐衰减时,由于网络权重 W W W已经收敛到一个最优点,公平竞争仍然存在。因此,DARTS-能够稳定DARTS的搜索阶段。

大量的实验证明了所提出的辅助跳跃连接的有效性,并强调我们的方法可以灵活地与其他方法相结合,以进一步提高稳定性和搜索性能。总体算法在算法1中给出。

在这里插入图片描述

3.3 与前期工作的关系

我们的方法旨在解决可微网络架构搜索的性能崩溃问题。大多数以前的工作(Zela et al, 2020;Chen & Hsieh, 2020;Liang等人,2019)专注于制定表征崩溃发生的各种标准或指标。然而,我们不研究或依赖这些指标,因为它们可能会错误地拒绝好的模型。受Chu等人(2020b)的启发,我们的方法侧重于校准有偏差的搜索过程。基本原理很简单:如果有偏见的过程得到纠正,搜索结果将会更好。总之,我们的方法与其他方法的不同之处在于两个方面:面向过程和无指标。与Chu等人(2020b)调整竞争环境的方法不同,我们的方法可以被视为打破不公平优势的方法。此外,我们没有引入任何手工制作的指标来表示性能崩溃,从而大大减少了转换到不同任务的负担。

4 EXPERIMENTS

4.1 搜索空间和训练设置

为了在标准的DARTS空间中进行搜索和评估(为了简单起见,我们将其命名为S0),我们保持与DARTS中相同的设置(Liu et al, 2019b)。我们遵循R-DARTS (Zela等人,2020)提出的简化空间S1- S4(比S0更难)。然而,推断的模型是用两种不同的设置进行训练的,分别是R-DARTS (Zela et al ., 2020)和SDARTS (Chen & Hsieh, 2020)。不同之处在于CIFAR-100评估的层数和初始通道。R-DARTS设置8层和16个初始通道。相反,SDARTS分别使用20和36。对于ImageNet上的无代理搜索,我们在FBNet中提出的类似MobileNetV2的搜索空间(我们将其命名为S5)中进行搜索(Wu et al, 2019)。我们将SGD优化器用于权重和Adam (β1 = 0.5和β2 = 0.999,学习率为0.001),用于批量大小为768的架构参数。初始学习率为0.045,并在余弦调度后的30个epoch内衰减为0。我们也用L2正则化来处理1e-4。在 Tesla V100上,大约需要4.5个GPU-Day。附录中提供了更多细节。我们还使用了NAS-Bench-201 (S6),因为DARTS的性能非常差。我们总共使用了7个不同的搜索空间进行实验,涉及到3个数据集。

4.2 搜索结果

CIFAR-10和CIFAR-100。根据R-DARTS(Zela et al, 2020)的设置,我们在CIFAR-10上获得了97.36%的平均Top-1准确率,如表2所示。此外,我们的方法具有很强的鲁棒性,因为在六次独立运行中搜索结果非常稳定。在CIFAR-10上发现的最佳单元(97.5%)见图9 (B)。在CIFAR-100上发现的结果见表10(见A.2.1)。此外,我们的方法比R-DARTS (Zela et al, 2020)的搜索成本低得多(低3倍),R-DARTS需要4个具有不同正则化设置的独立搜索来生成最佳架构。换句话说,它的健壮性来自于更多二氧化碳排放的成本。

在这里插入图片描述

ImageNet。为了进一步验证DARTS-的效率,我们直接在S5中的ImageNet上进行搜索,并将我们的结果与表2中移动设置下的最先进模型进行比较。该体系结构的可视化如图10所示。在ImageNet验证数据集上,DARTS-A获得76.2%的Top-1准确率。相比之下,在该搜索空间上直接应用DARTS仅获得66.4% (Chu et al ., 2020b)。此外,在配备了auto-augmentation(Cubuk等人,2019)和squeeze-and-excitation(Hu等人,2018)之后,它获得了77.8%的Top-1精度,这也被用于EfficientNet。

在这里插入图片描述

NAS-Bench-201。除了标准搜索空间之外,还建议在有限的设置中使用已知的最优进行基准测试。NAS-Bench-201 (Dong & Yang, 2020)在简化的类似DARTS的搜索空间中由15,625个架构组成,其中它有4个内部节点,每个节点有5个操作。我们将我们的方法与表3中的先前工作进行比较。我们在CIFAR-10上进行搜索,并在各种测试集上查找发现的genotype的真实性能。值得注意的是,我们达到了一个新的SOTA状态,其中最好的几乎达到了最佳状态。

在这里插入图片描述

迁移到目标检测的结果。通过替换MMDetection工具箱平台(Chen et al ., 2019a)上的RetinaNet主干(Lin et al ., 2017),我们进一步评估了模型在下游目标检测任务上的可转移性。具体来说,在与Chu等人(2020b)相同的训练设置下,我们的模型在COCO数据集上实现了32.5%的mAP,超过了其他类似大小的模型,如MobileNetV3、MixNet和fairdart。详细结果见附录(表11)。

在这里插入图片描述

4.3 与其他变异体正交组合

我们的方法可以灵活地结合前人的工作进行进一步的改进。本文采用P-DARTS和PC-DARTS两种方法对联合预后进行了研究。

Progressive DARTS (P-DARTS)。P-DARTS (Chen et al ., 2019b)提出了一种渐进式方法,在剔除非竞争路径的同时,逐步进行深度搜索。此外,它还使用了一些手工制作的标准来解决崩溃问题(渐进式思想本身无法处理这个问题),例如,它们通过将跳跃连接的数量M规范为2和dropout来施加两个强先验。公平地说,我们去掉了这样一个精心手工制作的技巧,并运行了几次P-DARTS。作为自然对照组,我们也结合了DARTS-和P-DARTS。我们在表4中的CIFAR-10数据集上运行这两个实验3次。如果没有强先验,P-DARTS将严重遭受崩溃,其中推断的模型包含过多的跳跃连接。具体来说,它的测试误差非常高(平均为3.42%),甚至比DARTS还要糟糕。然而,P-DARTS可以从与DARTS-的组合中获益良多。改进的版本(我们称之为P-DARTS-)在CIFAR-10上获得比基线高得多的Top-1精度(+0.8%)。

在这里插入图片描述

Memory Friendly DARTS (PC-DARTS)。为了减轻整个超级网络的巨大内存开销,PC-DARTS (Xu et al ., 2020)选择部分通道进行搜索。比例超参数K需要仔细校准,才能在特定任务中获得良好的结果。作为副产品,搜索时间也减少到0.1 GPU-Day(K=4)。我们使用他们发布的代码,在相同的设置下对不同的种子进行重复的实验。为了准确地评估我们的方法的作用,我们选择K=2(在原始论文中是一个糟糕的配置)。我们在表5中比较了原始PC-DARTS及其与我们的组合(命名为PC-DARTS-)。PC-DARTS-可以略微提高CIFAR-10 Top-1的准确率(平均+0.26%)。结果还证实了我们的方法可以使PC-DARTS对其超参数K的敏感性降低,同时保持其较少的内存成本和运行时间的优势。

在这里插入图片描述

4.4 消融研究

对衰减策略的鲁棒性。我们的方法对 β β β上衰变策略的类型不敏感。我们设计了另外两种策略作为比较:余弦和阶跃衰减。他们都有相似的表现。其中,当利用余弦策略将 β β β调度为0时,S3中搜索到的4个CIFAR-10模型的平均准确率为97.33%±0.09,最佳准确率为97.47%。在相同的搜索空间中,在epoch 45处的阶跃衰减平均获得97.30%的Top-1精度。

S0-S4中C10和C100的鲁棒性比较。为了验证鲁棒性,需要进行多次搜索以报告派生模型的平均性能(Yu et al ., 2020;Antoine et al, 2020)。如表1、表9和表7所示,我们的方法在多个空间和数据集上优于最近的SOTA。注意,SDARTS-ADV利用对抗性训练,需要比我们多3倍的搜索时间。特别是,我们在CIFAR-100上的S3中找到了一个很好的模型,其Top-1测试误差最低为15.86%。这些模型的体系结构可以在附录中找到。

在这里插入图片描述

β β β的敏感性分析。通过设置较低的初始 β β β值,可以降低辅助跳跃连接支路的权重。我们现在评估我们的方法对β值的敏感性。很容易看到,当 β = 0 β = 0 β=0时,我们的方法退化为DARTS。我们用 β ∈ { 1 , 0.7 , 0.4 , 0.1 , 0 } β \in \{1,0.7,0.4,0.1,0\} β{1,0.7,0.4,0.1,0}来比较搜索结果。由表6中的 β 0 β_0 β0可知, β 0 β_0 β0越大有利于获得较好的网络。

在这里插入图片描述

辅助分支的选择。除了默认的跳跃连接作为辅助分支外,我们还证明了用一个可学习的1×1卷积投影代替它也是有效的,该卷积投影用一个单位张量初始化。S3中检索到的3种CIFAR-10模型的平均准确率为97.25%±0.09。与He等人(2016)的消融类似,这里的投影卷积的工作方式与提议的跳跃连接相似。这证明了辅助分支的必要性。

较长epoch的表现。Bi等人(2019)声称,更长的epoch导致超网络更好的收敛,据说有利于推断最终模型。然而,许多DARTS变体都失败了,因为它们的最终模型中充满了跳跃连接。因此,我们评估方法在这种情况下的行为。具体来说,我们将标准的50个epoch扩展到150,200,并为S0, S2和S3分别搜索3个独立的epoch。由于更长的周期,我们稍微改变了我们的衰变策略,我们一直保持 β = 1 β = 1 β=1,直到最后50个epoch,我们将 β β β衰变为0。其他超参数保持不变。结果如表8所示,发现的genotype如图17、18、19、20和21所示。这表明,与Bi等人研究的(#P = 0)相比,DARTS-具有合理的#P值,因此不会受到更长的epoch的影响(2019)。注意S2和S3是更困难的情况,其中DARTS比S0遭受更严重的崩溃。因此,即使在具有挑战性的搜索空间中,DARTS-也可以成功地存活更长时间。值得注意的是,更长的epoch是否真的能提高搜索性能还不清楚。虽然我们在S2中获得了新的最先进的结果,其中最佳模型的错误率为2.50%(之前为2.63%),但在S0中其平均性能(2.71±0.11%)仍低于50个epoch搜索的模型(2.59±0.08%),并且S3中的最佳模型(2.53%)也弱于之前(2.42%)。

在这里插入图片描述

此外,与一阶DARTS在S0中的成本为0.4 GPU-Day相比,专门设计用于更长的epoch的Amended-DARTS(Bi et al, 2019)即使在S0中修剪边缘也报告1.7 GPU-Day。我们的方法与一阶DARTS的成本相同,但效率更高。

5 ANALYSIS AND DISCUSSIONS

5.1 Hessian特征值失效

从验证损失w.r.t α α α计算的最大Hessian特征值被视为性能崩溃的指标(Zela等人,2020;Chen & Hsieh, 2020)。令人惊讶的是,我们的方法在大多数配置中发展出一个不断增长的特征值,这与之前的观察结果相冲突。我们在图4 (A.2.2)中显示了跨不同搜索空间和数据集的这些统计数据。

在这里插入图片描述

虽然特征值的增加几乎是单调的,最终达到一个比较大的值,但最终的模型仍然具有与最先进的模型相匹配的良好性能(见表9)。根据特征值标准,这些模型可能被误认为是糟糕的模型或从未访问过。我们的观察揭示了这些基于指标的方法的一个致命缺点:它们容易拒绝好的模型。进一步的分析可以在A.2.2中找到。

在这里插入图片描述

5.2 验证精度概况

最近的研究,R-DARTS (Zela et al ., 2020)和SDARTS (Chen & Hsieh, 2020)指出,为了在离散化过程后获得稳定的架构,架构权重应该收敛到精度对扰动不敏感的最优点,即收敛点应该有一个平滑的景观。SDARTS提出了一种基于微扰的正则化方法,进一步稳定了搜索过程。然而,扰动正则化会干扰训练过程,从而误导体系结构权值的更新。与通过扰动显式平滑景观的SDARTS不同,DARTS-可以隐式地执行相同的操作,而无需直接扰动体系结构权重。

为了分析DARTS-的有效性,我们绘制了基于体系结构权值 α α α的验证精度图,发现辅助连接平滑了图,从而稳定了搜索阶段。具体来说,我们选择两个随机方向并对 α α α施加归一化扰动(遵循Li等人2018a)。如图3所示,DARTS-对扰动的敏感性低于DARTS,并且DARTS的等高线图-下降更平缓。

在这里插入图片描述

6 CONCLUSION

我们提出了一种简单有效的方法,称为DARTS-来解决可微分架构搜索中的性能崩溃问题。其核心思想是利用辅助跳跃连接分支来接替候选跳跃连接操作的梯度优势作用。这可以创造一种公平的竞争,在这种竞争中,双层优化过程可以很容易地区分好操作和坏操作。因此,搜索过程更加稳定,并且在不同的搜索空间和不同的数据集之间很少发生崩溃。在严格控制的设置下,它稳定地优于最近最先进的RobustDARTS (Zela等人,2020),搜索成本降低了3倍。此外,我们的方法不赞成各种手工正则化技巧。最后但并非最不重要的是,它可以单独使用,也可以根据需要与各种正交改进配合使用。

本文为今后的研究传递了两个重要信息。一方面,性能崩溃的的Hessian特征值指标(Zela et al, 2020;Chen & Hsieh, 2020)并不理想,因为它有拒绝好的模型的风险。另一方面,手工正则化技巧(Chen等人,2019b)对于搜索一个好的模型似乎比提出的方法更重要。那么解决方案是什么呢?原则上,很难找到一个完美的崩溃指标。我们的方法显示了控制搜索过程的潜力,并且不会对最终模型施加限制或先验。我们希望在这方面得到更多的注意。

A APPENDIX

A.1 DARTS初步了解

在可微架构搜索中(Liu et al, 2019b),构建了一个以有向无环图(DAG)形式的基于单元的搜索空间。DAG有两个来自前一层的输入节点、四个中间节点和一个输出节点。在每两个节点(例如i, j)之间存在多个并行运算符(记为 O \mathcal{O} O),给定输入 x x x,其输出 o ˉ ( i , j ) \bar{o}(i,j) oˉ(i,j)定义为:
o ˉ ( i , j ) ( x ) = ∑ o ∈ O exp ⁡ ( α o ( i , j ) ) ∑ o ′ ∈ O exp ⁡ ( α o ′ ( i , j ) ) o ( x ) (7) \bar{o}^{(i,j)}(x)=\sum_{o\in\mathcal{O}}\frac{\exp(\alpha_o^{(i,j)})}{\sum_{o^{\prime}\in\mathcal{O}}\exp(\alpha_{o^{\prime}}^{(i,j)})}o(x) \tag{7} oˉ(i,j)(x)=oOoOexp(αo(i,j))exp(αo(i,j))o(x)(7)
它本质上是对所有操作符应用softmax,其中每个操作符被赋予一个体系结构权重 α α α。超网络建立在两种单元上,即所谓的正常单元和约简单元(用于下采样)。然后将架构搜索描述为双层优化:
min ⁡ α L v a l ( w ∗ ( α ) , α ) s . t . w ∗ ( α ) = arg ⁡ min ⁡ w L t r a i n ( w , α ) (8) \begin{aligned}\min_\alpha&\quad\mathcal{L}_{val}(w^*(\alpha),\alpha)\\s.t.&\quad w^*(\alpha)=\arg\min_w\mathcal{L}_{train}(w,\alpha)\end{aligned} \tag{8} αmins.t.Lval(w(α),α)w(α)=argwminLtrain(w,α)(8)
这表明这种基于单元的超网络的训练应该是交错的,在每一步中,网络权值和架构权值都是迭代更新的。最终模型是通过简单地选择具有最大体系结构权重的操作来确定的。

A.2 实验

A.2.1 训练细节

CIFAR-10和CIFAR-100。表9给出了精简搜索空间S1-S4以及最大特征值下的平均性能。表10报告了CIFAR-100在50中的结果。

在这里插入图片描述

ImageNet分类。对于ImageNet上的训练,我们使用与MnasNet相同的设置(Tan et al ., 2019)。为了与EfficientNet (Tan & Le, 2019)进行比较,我们还使用了squeeze-and-excitation(Hu等人,2018)。此外,我们不包括使用大型模型蒸馏训练的方法,因为它可以略微提高最终验证的准确性。公平地说,我们没有在MobileNetV3中使用有效的head(Howard等人,2019),尽管它可以略微减少FLOPs。

COCO目标检测。所有模型在MS COCO数据集上进行了12个epoch的训练和评估,批大小为16。初始学习率为0.01,在epoch 8和11时降低0.1。

A.2.2 关于特征值失效的进一步讨论

为了进一步探索搜索性能与Hessian特征值之间的关系,我们在图4 (b)中绘制了搜索模型的性能轨迹。

在这里插入图片描述

具体来说,我们每10个epoch对模型进行一次采样,并使用与上述相同的设置从头开始训练这些模型(图5)。推理模型的性能持续增长,准确率从96.5%提高到97.4%。这证实了用我们的方法进行搜索的有效性。相比之下,基于特征值的早期停止策略(Zela et al, 2020)在这种情况下会失败。我们认为,所提出的辅助跳跃连接分支可以正则化超网络的过拟合,留下体系结构权重来表示候选操作的能力。这个实验是R-DARTS的一个反例,在R-DARTS中,尽管Hessian特征值变化很快,但仍然可以出现好的模型。它再次否认需要一个代价高昂的指标。

在这里插入图片描述

A.2.3 更多消融研究

为了补充4.4节的敏感性分析,图6显示了初始化不同值的β时的训练损失曲线。

在这里插入图片描述

A.3 损失情况

为了展示DARTS-的一致平滑能力,我们在图7和图8中绘制了更多的损失情况(在几个种子上)。一般情况下,如果将其视为 camping tents,则DARTS-的斜率会更膨胀,这表明过参数化网络具有更好的收敛性。

在这里插入图片描述

A.4 实验列表

我们将所有已进行的实验进行汇总,并给出相关的图表见表12。

在这里插入图片描述

B FIGURES OF GENOTYPES

图9—图21。

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

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

相关文章

数据平台“国产替代”掣肘在迁移?奇点云的工业制造实践解读

系列导读 如《“数据要素”三年行动计划&#xff08;2024—2026年&#xff09;》指出&#xff0c;工业制造是“数据要素”的关键领域之一。如何发挥海量数据资源、丰富应用场景等多重优势&#xff0c;以数据流引领技术流、资金流、人才流、物资流&#xff0c;对于制造企业而言是…

【面试题】ES文档写入和读取流程详解

前言&#xff1a;在回答这个问题之前我们先要搞清楚一个问题那就是什么是文档&#xff0c;避免不知所云&#xff01; 一、什么是文档&#xff1f; 在Elasticsearch中&#xff0c;文档&#xff08;Document&#xff09;是最基本的信息单元&#xff0c;用于表示和存储数据。文…

Android 系统应用 pk8签名文件转jks或keystore教程

一、介绍 签名文件对于我们在做应用开发中&#xff0c;经常遇到&#xff0c;且签名文件不仅仅是保护应用安全&#xff0c;还会涉及到应用与底层之间的数据共享和API文件等问题。 在Android中&#xff0c;签名文件同样也存在这个问题。但是android中又区分系统应用和普通应用。系…

C语言 青蛙跳台阶问题

目录 ​编辑 1.问题描述 2.问题分析 3.全部代码 4.结语 1.问题描述 一只青蛙可以一次跳一级台阶&#xff0c;也可以一次跳两级台阶&#xff0c;如果青蛙要跳上n级台阶有多少种跳法&#xff1f; 2.问题分析 当台阶只有一级时&#xff0c;只能跳一级&#xff0c;所以只有一…

用 C++ 编码架构图的最佳用例

统一建模语言&#xff08;UML&#xff09;&#xff0c;作为一种实际应用的语言标准&#xff0c;借助一系列架构图呈现建模软件系统。UML 的出现鼓励了自动化软件工具的开发&#xff0c;有助于自动代码生成。UML 图面向对象系统和软件工具&#xff0c;将静态结构和动态行为以可视…

注册、配置中心-微服务小白入门(2)

Nacos 已经下载安装并且使用了&#xff0c;那么看如何使用&#xff1a; Nacos 注册及配置&#xff0c;以下是一个服务启动后注册到nacos&#xff0c;同时&#xff0c;把该服务的相关配置&#xff0c;写到nacos之中 1、nacos设置 命名空间中&#xff0c;添加对应的服务命名空间…

Jenkins中支持maven构建遇到仓库报错问题

目的 Jenkins中支持maven构建(Jenkins使用docker安装&#xff09; 问题 1.构建一个maven项目 2.执行报错 /var/lib/jenkins/local_maven_repo/com/sx/root/1.0.4/root-1.0.4.pom.part.lock (No such file or directory) Failed to transfer Could not transfer artifact co…

【Flask】Flask项目部署上线

Flask 项目部署上线 1.Gunicorn Gunicorn 是一个纯 Python WSGI 服务器&#xff0c;配置简单&#xff0c;多工作者实现&#xff0c;方便 性能调优。 它倾向于与主机平台轻松集成。 它不支持 Windows &#xff08;但可以在 WSL 上运行&#xff09;。 它很容易安装&#xff0…

论文阅读之PeriodicLoRA: Breaking the Low-Rank Bottleneck in LoRA Optimization(2024)

文章目录 论文地址主要内容主要贡献模型图技术细节实验结果 论文地址 PeriodicLoRA: Breaking the Low-Rank Bottleneck in LoRA Optimization 主要内容 这篇文章的主要内容是介绍了一种名为PeriodicLoRA&#xff08;PLoRA&#xff09;的参数高效微调&#xff08;Parameter-…

TypeScript在学习(0)

1.什么是TypeScript? 答:TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集&#xff0c;而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。 个人浅见&#xff0c;我一直把ts简单理解成&#xff0c;其实就是javascript上多了…

DY-36电压继电器 额定电压100V 整定范围40-160V 板前带座 JOSEF约瑟

系列型号&#xff1a; DY-32电压继电器&#xff1b; DY-36电压继电器&#xff1b; DY-33电压继电器&#xff1b; DY-37电压继电器&#xff1b; DY-34电压继电器&#xff1b; DY-38电压继电器&#xff1b; DY-31电压继电器&#xff1b; DY-35电压继电器&#xff1b; DY-32/60C电…

YOLO算法改进Backbone系列之:Conformer

CNN难以捕捉全局表征&#xff0c;这通常对高级计算机视觉任务至关重要。一个直观的解决方案是扩大感受野&#xff0c;但这可能需要更密集但具有破坏性的池化操作。由于自注意力机制和多层感知器&#xff08;MLP&#xff09;结构&#xff0c;transformer反映了复杂的空间变换和长…

Vue3 + vite + Ts 组件间通信

Vue3 vite Ts 组件间通信 1、props2、自定义事件3、mitt4、$attrs 1、props 概述&#xff1a;props 是使用频率最高的一种通信方式&#xff0c;常用与&#xff1a;父 和 子 互相传递 若 父传子 &#xff1a;属性值是非函数。若 子传父 &#xff1a;属性值是函数。 简单例子&…

网红电商主播培养体系招聘管理制度孵化方案

【干货资料持续更新&#xff0c;以防走丢】 网红电商主播培养体系招聘管理制度孵化方案 部分资料预览 资料部分是网络整理&#xff0c;仅供学习参考。 共120页可编辑&#xff08;完整资料包含以下内容&#xff09; 目录 主播团队组建方案 让好主播主动留下 1. 好主播选拔标准…

【Flink】Flink 处理函数之基本处理函数(一)

1. 处理函数介绍 流处理API&#xff0c;无论是基本的转换、聚合、还是复杂的窗口操作&#xff0c;都是基于DataStream进行转换的&#xff0c;所以统称为DataStreamAPI&#xff0c;这是Flink编程的核心。 但其实Flink为了更强大的表现力和易用性&#xff0c;Flink本身提供了多…

学习SpringBoot笔记--知识点(2)

目录 数据访问 基础特性 自定义banner Profiles Profiles组件 Profiles配置文件 外部化配置 单元测试 数据访问 整合SSM场景 SpringBoot 整合 Spring&#xff0c;SpringMVC&#xff0c;MyBatis 进行数据访问场景开发 需要的依赖&#xff1a; <!-- web启动…

如何从其他平台复制商品上传到自己店铺?官方授权接口,一键复制爆款同款

很多做一件代发的卖家在上新时会从其他平台选品铺货&#xff0c;看到某个商品卖得不错&#xff0c;直接复制到自己店铺去卖&#xff0c;可以节省测款成本。 现在平台严查无货源&#xff0c;直接从别人店铺搬运商品属于违规违规行为&#xff0c;想要复制这个爆款的话&#xff0…

鸿蒙HarmonyOS应用开发—AbilityStage组件容器

AbilityStage是一个Module级别的组件容器&#xff0c;应用的HAP在首次加载时会创建一个AbilityStage实例&#xff0c;可以对该Module进行初始化等操作。 AbilityStage与Module一一对应&#xff0c;即一个Module拥有一个AbilityStage。 DevEco Studio默认工程中未自动生成Abil…

ArcGIS二次开发(一)——搭建开发环境以及第一个简单的ArcGIS Engine 程序

Arcgis10.2、Arcgis Engine10.2与Microsoft Visual Studio 2012的版本进行安装 1、推荐教程与安装包2、安装顺序3、安装成功测试VS新建项目可以创建ArcGIS项目&#xff0c;并且在VS中拖拽ArcGIS工具 4、搭建第一个简单的ArcGIS Engine 程序 ArcEngine和VS版本是有对应的&#x…

【Python】enumerate函数的使用方法,小白一看就懂

enumerate函数的使用方法&#xff1a; season[‘a’,‘b’,‘c’,‘d’] for i in enumerate(season): print(i) season[‘a’,‘b’,‘c’,‘d’] for i,eliment in enumerate(season): print(i,eliment) 输出结果为&#xff1a; 练习题&#xff1a; 2.给出10个学生姓名…