可微架构搜索的理解与鲁棒性
论文链接:https://arxiv.org/abs/1909.09656
项目链接:https://github.com/automl/RobustDARTS
OpenReview:https://openreview.net/forum?id=H1gDNyrKDS
ABSTRACT
可微架构搜索(DARTS)由于其简单和小的搜索成本而引起了人们的广泛关注,该搜索成本是通过连续松弛和近似产生的双层优化问题来实现的。然而,对于新问题,DARTS并不能健壮地工作:我们确定了一个广泛的搜索空间,其中DARTS产生了退化的架构,测试性能非常差。我们研究了这种失效模式,并表明,虽然成功地最小化了验证损失,但当它们与架构空间中的高验证损失曲率相吻合时,所找到的解泛化性很差。我们证明了通过添加各种类型的正则化中的一种,我们可以鲁棒化DARTS以找到曲率更小和泛化性能更好的解。基于这些观察,我们提出了几种简单的DARTS变体,它们在实践中表现得更加稳健。我们的观察结果在三个图像分类任务的五个搜索空间中是鲁棒的,并且也适用于视差估计(密集回归任务)和语言建模的非常不同的领域。
1 INTRODUCTION
网络架构搜索(NAS)是自动设计神经网络架构的过程,最近由于在各种任务上实现最先进的性能而引起了人们的关注(Zoph & Le, 2017;Real et al, 2019)。可微架构搜索(DARTS) (Liu et al ., 2019)显著提高了NAS的效率,将其成本降低到与训练单个神经网络相同的数量级。这大大扩展了NAS的范围,使其也可以应用于更昂贵的问题,如语义分割(Chenxi等人,2019)或视差估计(Saikia等人,2019)。
然而,一些研究人员也报告了DARTS的工作效果不佳,在某些情况下甚至不如随机搜索(Li & Talwalkar, 2019;Sciuto et al, 2019)。为什么会这样?如何解释这些看似矛盾的结果呢?本文的总体目标是理解和克服DARTS的这种失效模式。为此,我们作出以下贡献:
-
我们基于四个搜索空间确定了12个NAS基准,其中标准DARTS产生了退化的架构,在多个数据集上的测试性能很差(第3节)。
-
通过计算验证损失相对于架构参数的Hessian特征谱,我们表明其主导特征值与架构的泛化误差之间存在很强的相关性。基于这一发现,我们提出了一种简单的带有早停机制的DARTS变体,其性能更加稳健(第4节)。
-
我们表明,与之前关于尖锐/平坦局部最小值的工作相关,更强地正则化DARTS的内部目标使其能够找到具有更小的Hessian谱和更好的泛化性质的解。基于这些见解,我们提出了两种实用的DARTS鲁棒性方法,克服了我们所有12个NAS基准测试中的失效模式(第5节)。
我们的研究结果在基于图像识别的广泛的NAS基准中是稳健的,并且也适用于语言建模(PTB)和视差估计的非常不同的领域。他们巩固文献中各种结果的发现,并导致更强大的DARTS版本。我们提供实现和脚本以促进再现性。
2 BACKGROUND AND RELATED WORK
2.1 平/锐极小值与泛化性能的关系
Hochreiter & Schmidhuber(1997)已经观察到训练损失的平坦最小值比锐最小值产生更好的泛化性能。近期工作(Keskar et al, 2016;Yao等人,2018)更多地关注大/小批量训练的设置,其中观察表明,小批量训练倾向于更平坦的最小值,并且泛化得更好。同样,Nguyen等人(2018)观察到这种现象在超参数空间中也表现出来。他们表明,每当超参数过拟合验证数据时,最小值位于空间的更清晰区域。这促使我们在4.1节后面的可微架构搜索的背景下进行类似的分析,我们在神经网络架构的空间中看到了同样的效果。
2.2 双层优化
我们首先简要介绍了双层优化问题(Colson et al, 2007)。这些问题包含两个相互嵌套的优化任务。
定义2.1。给定外部目标函数
F
:
R
P
×
R
N
→
R
F:\mathbb{R}^P\times\mathbb{R}^N\to\mathbb{R}
F:RP×RN→R和内目标函数
f
:
R
P
×
R
N
→
R
f:\mathbb{R}^P\times\mathbb{R}^N\to\mathbb{R}
f:RP×RN→R中,双层优化问题由:
min
y
∈
R
P
F
(
y
,
θ
∗
(
y
)
)
s
.
t
.
θ
∗
(
y
)
∈
arg
min
θ
∈
R
N
f
(
y
,
θ
)
,
\begin{align} &\min_{y\in\mathbb{R}^P}F(y,\theta^*(y)) \tag{1}\\ &s.t.\quad\theta^*(y)\in\underset{\theta\in\mathbb{R}^N}{\operatorname*{\arg\min}}f(y,\theta),\tag{2} \end{align}
y∈RPminF(y,θ∗(y))s.t.θ∗(y)∈θ∈RNargminf(y,θ),(1)(2)
其中
y
∈
R
P
y \in \mathbb{R}^{P}
y∈RP和
θ
∈
R
N
θ \in \mathbb{R}^N
θ∈RN分别是外部变量和内部变量。人们也可以将双层问题视为约束优化问题,将内部问题视为约束。
一般情况下,即使内目标(2)是强凸且有唯一的最小值 θ ∗ ( y ) = arg min θ ∈ R N f ( y , θ ) \theta^{*}(y)=\arg\min_{\theta\in\mathbb{R}^{N}}f(y,\theta) θ∗(y)=argminθ∈RNf(y,θ),则不可能直接优化外部目标公式(1)。围绕该问题的一种可能方法是使用隐函数定理来检索解映射(或响应映射)的导数 θ ∗ ( y ) ∈ F ⊆ R N w.r.t. y \theta^*(y)\in\mathbb{F}\subseteq\mathbb{R}^N\text{ w.r.t. }y θ∗(y)∈F⊆RN w.r.t. y (Bengio, 2000;Pedregosa, 2016;Beirami et al, 2017)。另一种策略是用动力系统近似内部问题(Domke, 2012;Maclaurin et al, 2015;Franceschi等,2017;2018),其中优化动力学可以,例如,描述梯度下降。在内部问题的极小值是唯一的情况下,在某些条件下,该近似问题的极小值集确实收敛于双层问题的极小值集(1)(见Franceschi et al(2018))。
2.3 网络结构搜索
网络架构搜索(Neural Architecture Search, NAS)是指自动设计神经网络结构的过程,以克服人工设计架构时繁琐的试错过程。我们在这里简要回顾一下NAS,并参考Elsken等人(2019b)最近的调以获得更全面的概述。之前的工作主要采用强化学习技术(Baker等人,2017a;Zoph & Le, 2017;钟等,2018;Zoph等人,2018)或进化算法(Stanley & Miikkulainen, 2002;刘等,2018b;Miikkulainen等,2017;Real等人,2017;2019)优化离散架构空间。由于这些方法通常非常昂贵,因此各种工作都侧重于通过使用网络形态来降低搜索成本(Cai et al ., 2018a;b;Elsken et al, 2017;2019a),搜索模型内的权值共享(Saxena & Verbeek, 2016;Bender等人,2018;Pham等人,2018)或多保真度优化(Baker等人,2017b;Falkner et al, 2018;Li et al ., 2017;Zela等人,2018),但它们的适用性仍然往往局限于相当简单的任务和小数据集。
2.4 可微架构搜索(DARTS)
最近的一项工作侧重于将离散神经架构搜索问题放宽为可以通过梯度下降解决的连续问题(Liu et al ., 2019;谢等,2019;Casale等人,2019;Cai et al, 2019)。在DARTS (Liu et al, 2019)中,这是通过简单地使用每层可能候选操作的加权和来实现的,而实值权重则有效地参数化了网络的架构。我们现在将更详细地审查DARTS,因为我们的工作直接建立在它的基础上。
搜索空间的不断松弛。与之前的工作一致(Zoph等人,2018;Real等人,2019),DARTS仅优化称为单元的子结构,这些子结构堆叠以定义完整的网络架构。每个单元包含N个节点,组织成一个有向无环图。该图包含两个输入节点(由前两个单元格的输出给出)、一组中间节点和一个输出节点(通过连接所有中间节点给出)。每个中间节点 x ( j ) x ^{(j)} x(j)表示一个特征映射。图1展示了这样一个单元。Liu等人(2019)不是在架构搜索期间将单个操作应用于特定节点,而是通过将中间节点作为候选操作的混合物计算,并将其应用于前一个节点 x ( i ) x^{(i)} x(i),从而放宽了选择操作的决定, i < j , x ( j ) = ∑ i < j ∑ o ∈ O exp ( α o i , j ) ∑ o ′ ∈ O exp ( α o ′ i , j ) o ( x ( i ) ) i<j,x^{(j)}=\sum_{i<j}\sum_{o\in\mathcal{O}}\frac{\exp(\alpha_{o}^{i,j})}{\sum_{o^{\prime}\in\mathcal{O}}\exp(\alpha_{o^{\prime}}^{i,j})}o\left(x^{(i)}\right) i<j,x(j)=∑i<j∑o∈O∑o′∈Oexp(αo′i,j)exp(αoi,j)o(x(i)),其中 O \mathcal{O} O表示所有候选操作(如3 × 3卷积、跳跃连接、3 × 3最大池化等)的集合, α = ( α o i , j ) i , j , o \alpha=(\alpha_{o}^{i,j})_{i,j,o} α=(αoi,j)i,j,o作为架构的实值参数化。
基于梯度的搜索空间优化。然后,DARTS通过交替梯度下降优化搜索网络的权重(通常称为权重共享或one-hot模型,因为所有单个子图/架构的权重都是共享的)和架构参数。在训练集和验证集上分别对网络权值和结构参数进行优化。这可以解释为求解双级优化公式(1)、(2),其中F和F分别为验证和训练损失 L v a l i \mathcal{L}_{vali} Lvali和 L t r a i n L_{train} Ltrain, y y y和 θ θ θ分别为架构参数 α α α和网络权值 w w w。注意,DARTS仅通过单个梯度步骤近似低级解(参见附录A了解更多细节)。
在搜索阶段结束时,通过为每个中间节点选择k个最重要的传入操作来获得离散单元,而所有其他操作都被修剪。重要性是通过操作加权系数 exp ( α o i , j ) ∑ o ′ ∈ O exp ( α o ′ i , j ) \frac{\exp(\alpha_o^{i,j})}{\sum_{o^{\prime}\in\mathcal{O}}\exp(\alpha_{o^{\prime}}^{i,j})} ∑o′∈Oexp(αo′i,j)exp(αoi,j)来衡量的。
3 WHEN DARTS FAILS
现在我们将描述各种搜索空间,并演示标准DARTS在这些空间上的失败。我们从四个类似于原始CIFAR-10搜索空间但更简单的搜索空间开始,并跨三个不同的数据集(CIFAR-10、CIFAR-100和SVHN)进行评估。它们非常标准,因为它们使用与原始DARTS论文相同的宏架构(Liu et al ., 2018a),由正常单元和约简单元组成,然而,它们只允许一个子集的操作符用于单元格搜索空间:
- S1:这个搜索空间使用一组不同的操作符,每条边只有两个操作符,我们使用离线过程来识别,该过程迭代地从原始DARTS搜索空间中删除最不重要的操作。这个预先优化的空间的优点是非常小,同时仍然包含许多强大的架构。我们参考附录B以了解其结构和插图的详细信息(图9)。
- S2:在这个空间中,每条边的候选操作的集合是 { 3 × 3 SepConv, SkipConnect } . \{3\times3\textit{ SepConv, SkipConnect}\}. {3×3 SepConv, SkipConnect}.。我们之所以选择这些操作,是因为它们是Liu等人(2019)报告的发现单元中最常见的操作。
- S3:在这个空间中,每条边的候选操作集是 { 3 × 3 SepConv, SkipConnect, Zero } . \{3\times3\textit{ SepConv, SkipConnect, Zero}\}. {3×3 SepConv, SkipConnect, Zero}.,其中Zero操作简单地将输入特征映射中的每个值替换为零。
- S4:在这个空间中,每条边的候选操作集是 { 3 × 3 SepConv, Noise } . \{3\times3\textit{ SepConv, Noise}\}. {3×3 SepConv, Noise}.,其中Noise操作简单地将输入特征映射中的每个值替换为 ϵ ∼ N ( 0 , 1 ) \epsilon\sim\mathcal{N}(0,{1}) ϵ∼N(0,1)。这是S1-S4中唯一不是原始DARTS空间的严格子空间的空间;我们故意添加了噪声操作,这会严重损害性能,因此不应被DARTS选择。
我们在每个空间上运行DARTS,使用与Liu等人(2019)完全相同的设置。图1显示了CIFAR-10在这些搜索空间上选择的不良单元(参见附录G,了解其他数据集上的类似结果)。从视觉上看,人们可能会怀疑发现的单元不是最优的:在空间S1-S3的几乎所有边缘上,无参数跳过连接占主导地位,而在S4的8个操作中,甚至有5个操作选择了有害的噪声操作。表1(第一列)证实了DARTS在所有这些搜索空间和不同数据集上产生的非常差的性能标准。我们注意到Liu等人(2019)和Xie等人(2019)认为Zero操作可以帮助共同搜索架构拓扑和选择操作符,但在我们的实验中,它没有帮助降低跳过连接的重要性权重(比较图1b和图1c)。
我们强调搜索空间S1-S3是非常自然的,并且作为原始空间的严格子空间,应该比原始空间更容易搜索。它们绝不是特别的,也不是以对抗的方式构建的。只有S4是专门用来展示DARTS选择明显次优噪声算子的失效模式的。
- S5:非常小的搜索空间和已知的全局最优。知道全局最小值的好处是,人们可以通过测量所选点相对于已知全局最小值的regret来对算法的性能进行基准测试。因此,我们创建了另一个搜索空间,其中普通和约简单元只有一个中间节点,每个边有3个操作选择,即3 × 3 SepConv, SkipConnection和3 × 3 MaxPooling。这个空间中可能的架构总数是81个,所有这些都是我们先验评估的。我们称这个空间为S5。
我们对每个数据集在该搜索空间上运行了三次DARTS,并将其结果与Li & Talwalkar(2019)的随机搜索与权重共享(RS-ws)的基线进行了比较。图2显示了在整个搜索过程中由DARTS(蓝色)和RS-ws(绿色)选择的架构的test regret。DARTS设法找到接近全局最小值的架构,但是在40个epoch左右,测试性能恶化了。注意,搜索模型验证错误(红色虚线)并没有恶化,而是收敛了,这表明架构参数与验证集过度拟合。相比之下,RS-ws在整个搜索过程中保持相对恒定;当仅评估找到的最终架构时,RS-ws确实优于DARTS。
- S6:用于视差估计的编码器-解码器架构。为了研究我们的发现是否可以推广到图像识别之外,我们还分析了一个非常不同的问题的搜索空间:为视差估计的密集回归任务寻找编码器-解码器架构;详情请参阅附录E。我们将该搜索空间建立在 AutoDispNet (Saikia等人,2019)的基础上,该搜索空间使用用于包含正常、下采样和上采样单元的空间。我们再次构造了一个简化空间。与图像分类搜索空间类似,我们发现正常单元主要由无参数操作组成(见附录G中的图25)。正如预期的那样,这导致了很大的泛化误差(见我们后续实验表2的第一行)。
4 THE ROLE OF DOMINANT EIGENVALUES OF ∇ α 2 L v a l i d \nabla_{\alpha}^{2}\mathcal{L}_{valid} ∇α2Lvalid
现在我们分析为何DARTS在所有这些情况下都失败了。在2.1节的激励下,我们将仔细研究验证损失 ∇ α 2 L v a l i d \nabla_{\alpha}^{2}\mathcal{L}_{valid} ∇α2Lvalid w.r.t架构参数 α α α的Hessian矩阵的最大特征值 λ m a x α λ^α_{max} λmaxα。
4.1 大架构特征值和泛化性能
有人可能会假设DARTS的性能很差,因为它通过迭代优化对双层优化问题的近似解决方案失败了,但我们实际上观察到验证错误进展得很好:图3(左)显示搜索模型验证错误在所有情况下都是收敛的,即使这里选择的单元结构是图1中的那些。
相反,DARTS发现的架构不能很好地泛化。如图3(中间)所示。在那里,我们每隔5个epoch,根据α值评估由DARTS认为的最优架构。注意,无论何时对测试集进行评估,我们都要重新训练在对架构权重 α α α应用argmax后获得的架构。可以注意到,在一定数量的搜索周期之后,架构开始退化,类似于图2所示的结果。我们假设这可能与2.1节中讨论的尖锐局部极小值有关。为了验证这一假设,我们在一个随机抽样的小批量上计算了验证损失的完整Hessian ∇ α 2 L v a l i d \nabla_{\alpha}^{2}\mathcal{L}_{valid} ∇α2Lvalid。图3(右)显示,在标准DARTS中,主导特征值 λ m a x α λ^α_{max} λmaxα(作为锐度的代理)确实随着最终架构的测试误差(中间)而增加,而验证误差仍然减少(左)。我们还更直接地研究了 λ m a x α λ^α_{max} λmaxα和测试误差之间的相关性,通过测量24种不同架构(通过标准DARTS和我们在第5节中讨论的正则化版本获得)的这两个量。对于CIFAR-10上空间S1的例子,图4显示 λ m a x α λ^α_{max} λmaxα确实与测试误差密切相关(Pearson相关系数为0.867)。
4.2 大架构特征值和修剪后性能下降
当架构特征值很大(因此最小值是尖锐的)时,DARTS表现不佳的一个原因可能是在DARTS结束时的修剪步:从搜索中得到的最优的连续 α ∗ α^∗ α∗被修剪以获得离散的 α d i s c α^{disc} αdisc,在 α ∗ α^∗ α∗的邻域的某个地方。在急剧极小值 α ∗ α^∗ α∗的情况下, α d i s c α^{disc} αdisc的损失函数值可能显著高于最小值 α ∗ α^∗ α∗,而在平坦极小值的情况下, α d i s c α^{disc} αdisc预计具有类似的损失函数值。图5a假设说明了这一点,其中 y y y轴表示搜索模型验证损失, x x x轴表示 α α α值。
为了验证这一假设,我们测量了性能下降: L v a l i d ( α d i s c , w ∗ ) − L v a l i d ( α ∗ , w ∗ ) \mathcal{L}_{valid}(\alpha^{disc},w^{*})-\mathcal{L}_{valid}(\alpha^{*},{w^{*}}) Lvalid(αdisc,w∗)−Lvalid(α∗,w∗)w.r.t.与此离散化步骤产生的搜索模型权值相关联,并与 λ m a x α λ^α_{max} λmaxα相关联。图5b中的结果显示,低曲率确实不会导致大的性能下降(这里我们实际计算的是精度下降,而不是损失函数差,但我们观察到类似的关系)。确定了这种关系之后,我们现在继续避免高曲率。
4.3 基于 ∇ α 2 L v a l i d \nabla_{\alpha}^{2}\mathcal{L}_{valid} ∇α2Lvalid大特征值的早停机制
我们提出了一种简单的早停方法,以避免曲率大而泛化差。我们强调,简单地根据验证性能停止搜索(就像在训练网络的情况下所做的那样)并不适用于此,因为NAS直接优化了验证性能,正如我们在图2中看到的那样,验证性能在不断提高。
相反,我们建议在架构搜索过程中跟踪 λ m a x α λ^α_{max} λmaxα,并在它增加太多时停止。为了实现这个想法,我们使用了一个简单的启发式方法,无需任何调优即可使用。设 λ ˉ m a x α ( i ) \bar{λ}^α_{max}(i) λˉmaxα(i)表示 λ m a x α λ^α_{max} λmaxα在 i i i周围经过k = 5次迭代后的平滑值;然后,当 λ ‾ m a x α ( i − k ) / λ ‾ m a x α ( i ) < 0.75 \overline{\lambda}_{max}^{\alpha}(i-k)/\overline{\lambda}_{max}^{\alpha}(i)<0.75 λmaxα(i−k)/λmaxα(i)<0.75时停止,并返回第i−k个epoch的架构。通过这种早停启发式,我们不仅避免了爆炸特征值,这与较差的泛化相关(见图4),而且还缩短了搜索的时间。
表1显示了在S1-S4和所有三种图像分类数据集上使用这种早停标准(DARTS-ES)运行DARTS的结果。
图6显示了整个搜索过程中特征值轨迹的局部平均值,以及表1中每个设置的DARTS搜索早停的点。请注意,在应用提前停止机制时,我们从不使用测试数据。早停显著改善了所有设置的DARTS,而不会损害它。
5 REGULARIZATION OF INNER OBJECTIVE IMPROVES GENERALIZATION OF ARCHITECTURES
正如我们在4.1节中看到的,验证损失的更大的最小值(通过大的特征值)导致较差的泛化性能。在我们的双层优化设置中,外部变量的轨迹取决于内部优化过程。因此,我们假设修改内部客观 L t r a i n \mathcal{L}_{train} Ltrain的架构可以将外部变量 α α α重新定向到架构空间的平坦区域。我们研究了两种正则化方法(第5.1节中的数据增强和第5.2节中的L2正则化),并发现两者以及第4.3节中的早停准则在实践中使DARTS更具鲁棒性。我们强调,我们不改变最终训练和评估阶段的正则化,而只是改变搜索阶段的正则化。我们在本文中所有实验中使用的设置,以获得最终的测试性能,在附录C中描述。
5.1 通过数据增强进行正则化
我们首先研究了通过数据增强进行正则化的效果,即在架构搜索期间,分别通过Cutout (CO, DeVries & Taylor(2017))和ScheduledDropPath (DP, Zoph等人(2018))屏蔽部分输入和中间特征映射(ScheduledDropPath是一种正则化技术,但我们在这里列出了它,因为我们将它与Cutout一起应用)。我们在所有三个图像分类数据集和搜索空间S1-S4上运行具有不同最大DP概率的CO和DP的dart(有和没有我们的早停准则,DARTS-ES)。
图7总结了结果:正则化在所有情况下都提高了DARTS和DARTS-ES的测试性能,有时非常显著,同时保持了相对较低的主导特征值(图13)。这也直接导致修剪后的精度下降较小,如第4.2节所述;实际上,图5b中绘制的搜索运行与本节中的相同。
附录中的图17明确显示了正则化与精度下降的关系。
我们还在附录中引用了进一步的结果:图11(显示测试与验证错误)。
和表5(显示架构参数的过度拟合减少了)。
类似的观察结果也适用于S6的视差估计,其中我们改变标准数据增强方法的强度,例如剪切或亮度变化,而不是掩盖部分特征,这对于该任务是不合理的。增强强度用“增强比例因子”来描述(附录E)。表2总结了结果。我们报告了平均终点误差(EPE),这是预测和ground truth图之间的欧几里得距离。数据增强避免了退化的架构,并大大改善了结果。
5.2 增加L2正则化
作为第二种正则化类型,我们还测试了不同的L2正则化因子3i·10−4对于 i ∈ { 1 , 3 , 9 , 27 , 81 } i \in \{1,3,9,27,81\} i∈{1,3,9,27,81}。标准的DARTS实际上已经包含了少量的L2正则化;i = 1表示默认值。图8显示,在所有数据集和空间中,更高的L2因子可以显著提高DARTS的测试性能(实线),同时保持较低的主导特征值(图14)。早停(虚线)的DARTS也受益于额外的正则化。我们再次观察到外目标的隐式正则化效应,这减少了架构参数的过拟合。我们再次参考表2进行视差估计;附录F显示了语言建模(Penn TreeBank)的类似结果。
5.3 通过正则化内部目标对DARTS进行实际鲁棒化
基于上述分析和实证结果的见解,我们现在提出两种可选的简单修改,以使DARTS在实践中更健壮,而无需手动调整其正则化超参数。
具有自适应正则化的DARTS。 一种选择是以自动化的方式调整DARTS的正则化超参数,以使架构权值保持在曲率较小的验证损失目标区域。实现这一目标的最简单的现成方法是,每当主特征值开始快速增加时,增加正则化强度。算法1 (DARTS-ADA,附录D.1)显示了这样一个过程。我们使用与DARTS-ES相同的早停准则(第4.3节),当满足该准则时,将DARTS回滚到epoch,并在剩余的epoch中使用更大的正则化值R(大η因子)继续搜索。只要满足条件,就重复此过程,除非正则化值超过某个最大预定义值Rmax。
多DARTS以不同的正则化强度运行。刘等人(2019)已经建议运行DARTS的搜索阶段四个epoch,产生四种架构,并在有限的时期内从头开始重新训练时,返回这四种架构中最好的w.r.t.验证性能。我们建议使用相同的过程,唯一的区别是四次运行使用不同数量的正则化。由此产生的RobustDARTS (R-DARTS)方法在概念上非常简单,实现起来很简单,如果任何一种尝试过的正则化强度都能很好地工作,那么它就很可能工作得很好。
表3通过与原始的DARTS、DARTS-ES和随机搜索(RS-ws)进行比较,评估了我们对DARTS、DARTS-ADA和R-DARTS(基于L2或ScheledDropPath正则化)的实际鲁棒性。对于这些方法中的每一种,正如DARTS论文(Liu et al, 2019)中提出的那样,我们使用不同的随机种子运行了四次独立的搜索,并根据上述验证运行选择了用于最终评估的架构。如表所示,根据Li & Talwalkar (2019), RS-ws的表现往往优于原始的DARTS;然而,通过我们的鲁棒化,DARTS通常比RS-ws表现得更好。DARTS-ADA在所有基准测试中都比标准DARTS不断改进,这表明在搜索过程中逐渐增加正则化可以防止在架构空间的坏区域结束。最后,RobustDARTS产生了最佳性能,并且由于它比DARTS-ES和DARTS-ADA更容易实现,因此我们建议在实践中使用该方法。
最后,由于本文中的评估到目前为止集中在原始DARTS搜索空间的较小子空间上,读者可能想知道RobustDARTS在完整搜索空间上的工作效果如何。如表4所示,在DARTS论文(PTB和CIFAR-10)的两个原始基准测试中,RobustDARTS的表现与DARTS相似,而DARTS是在这两个基准测试上开发的,并进行了很好的调整;然而,即使只将数据集更改为CIFAR-100或SVHN, RobustDARTS的性能也明显优于DARTS,这表明它具有鲁棒性。
6 CONCLUSIONS
我们证明了由DARTS发现的架构的泛化性能与架构参数的验证损失的Hessian矩阵的特征值有关。标准DARTS通常导致具有大特征值和较差泛化的退化架构。基于这一观察结果,我们提出了一种简单的基于跟踪最大特征值的早停准则。我们的经验结果还表明,适当地正则化内部目标有助于控制特征值,从而提高泛化。我们的发现大大提高了我们对DARTS失效模式的理解,并带来了更健壮的版本。它们在图像识别任务的许多不同搜索空间以及语言建模和视差估计的非常不同的领域是一致的。我们的代码是可复制的。
Appendix
A 关于DARTS的更多细节
这里我们详细描述了DARTS架构更新步骤。首先利用隐函数定理给出了计算公式(1)中外层问题梯度的一般形式。之后,我们介绍了DARTS如何计算用于更新结构参数 α α α的梯度。
A.1 具有光滑非二次型低阶问题的导数
∂ ( ∇ θ f ) ∂ θ ( y , θ ∗ ) ⋅ ∂ θ ∗ ∂ y ( y ) + ∂ ( ∇ θ f ) ∂ y ( y , θ ∗ ) = 0. ∂ θ ∗ ∂ y ( y ) = − ( ∇ θ 2 f ( y , θ ∗ ) ) − 1 ⋅ ∂ ( ∇ θ f ) ∂ y ( y , θ ∗ ) . d F d y = ∂ F ∂ θ ⋅ ∂ θ ∗ ∂ y + ∂ F ∂ y , d F d y = ∂ F ∂ y − ∂ F ∂ θ ⋅ ( ∇ θ 2 f ) − 1 ⋅ ∂ 2 f ∂ θ ∂ y . \begin{align} &\frac{\partial(\nabla_\theta f)}{\partial\theta}(y,\theta^*)\cdot\frac{\partial\theta^*}{\partial y}(y)+\frac{\partial(\nabla_\theta f)}{\partial y}(y,\theta^*)=\mathbf{0}.\tag{3}\\ &\frac{\partial\theta^*}{\partial y}(y)=-\Big(\nabla_\theta^2f(y,\theta^*)\Big)^{-1}\cdot\frac{\partial(\nabla_\theta f)}{\partial y}(y,\theta^*).\tag{4}\\ &\frac{dF}{dy}=\frac{\partial F}{\partial\theta}\cdot\frac{\partial\theta^*}{\partial y}+\frac{\partial F}{\partial y},\tag{5}\\ &\frac{dF}{dy}=\frac{\partial F}{\partial y}-\frac{\partial F}{\partial\theta}\cdot\left(\nabla_\theta^2f\right)^{-1}\cdot\frac{\partial^2f}{\partial\theta\partial y}.\tag{6} \end{align} ∂θ∂(∇θf)(y,θ∗)⋅∂y∂θ∗(y)+∂y∂(∇θf)(y,θ∗)=0.∂y∂θ∗(y)=−(∇θ2f(y,θ∗))−1⋅∂y∂(∇θf)(y,θ∗).dydF=∂θ∂F⋅∂y∂θ∗+∂y∂F,dydF=∂y∂F−∂θ∂F⋅(∇θ2f)−1⋅∂θ∂y∂2f.(3)(4)(5)(6)
A.2 DARTS结构梯度计算
min α L v a l i d ( α , w ∗ ( α ) ) s . t . w ∗ ( α ) = arg min w L t r a i n ( α , w ) , d L v a l i d d α = ∇ α L v a l i d − ∇ w L v a l i d ( ∇ w 2 L t r a i n ) − 1 ∇ α , w 2 L t r a i n , w ∗ ( α ) ≈ w − ξ ∇ w L t r a i n ( α , w ) , ∂ w ∗ ∂ α ( α ) = − ξ ∇ α , w 2 L t r a i n ( α , w ) , d L v a l i d d α ( α ) = ∇ α L v a l i d ( α , w ∗ ) − ξ ∇ w L v a l i d ( α , w ∗ ) ∇ α , w 2 L t r a i n ( α , w ∗ ) , ∇ α , w 2 L t r a i n ( α , w ∗ ) ≈ ∇ α L t r a i n ( α , w + ) − ∇ α L t r a i n ( α , w − ) 2 ϵ ∇ w L v a l i d ( α , w ∗ ) ⇔ ∇ w L v a l i d ( α , w ∗ ) ∇ α , w 2 L t r a i n ( α , w ∗ ) ≈ ∇ α L t r a i n ( α , w + ) − ∇ α L t r a i n ( α , w − ) 2 ϵ . d L v a l i d d α ( α ) = ∇ α L v a l i d ( α , w ∗ ) − ξ 2 ϵ ( ∇ α L t r a i n ( α , w + ) − ∇ α L t r a i n ( α , w − ) ) \begin{align} &\min_{\alpha}\mathcal{L}_{valid}(\alpha,w^*(\alpha))\tag{7}\\ &s.t.\quad w^*(\alpha)=\arg\min_{w}\mathcal{L}_{train}(\alpha,w),\tag{8}\\ \frac{d\mathcal{L}_{valid}}{d\alpha}&=\nabla_{\alpha}\mathcal{L}_{valid}-\nabla_{w}\mathcal{L}_{valid}\big(\nabla_{w}^{2}\mathcal{L}_{train}\big)^{-1}\nabla_{\alpha,w}^{2}\mathcal{L}_{train},\tag{9}\\ &w^*(\alpha)\approx w-\xi\nabla_{w}\mathcal{L}_{train}(\alpha,w),\tag{10}\\ &\frac{\partial w^{*}}{\partial\alpha}(\alpha)=-\xi\nabla_{\alpha,w}^{2}\mathcal{L}_{train}(\alpha,w),\tag{11}\\ \frac{d\mathcal{L}_{valid}}{d\alpha}(\alpha)&=\nabla_{\alpha}\mathcal{L}_{valid}(\alpha,w^{*})-\xi\nabla_{w}\mathcal{L}_{valid}(\alpha,w^{*})\nabla_{\alpha,w}^{2}\mathcal{L}_{train}(\alpha,w^{*}),\tag{12}\\ \nabla_{\alpha,w}^{2}\mathcal{L}_{train}(\alpha,w^{*})&\approx\frac{\nabla_{\alpha}\mathcal{L}_{train}(\alpha,w^{+})-\nabla_{\alpha}\mathcal{L}_{train}(\alpha,w^{-})}{2\epsilon\nabla_{w}\mathcal{L}_{valid}(\alpha,w^{*})}\quad\Leftrightarrow \\ \nabla_{w}\mathcal{L}_{valid}(\alpha,w^{*})\nabla_{\alpha,w}^{2}\mathcal{L}_{train}(\alpha,w^{*})&\approx\frac{\nabla_{\alpha}\mathcal{L}_{train}(\alpha,w^{+})-\nabla_{\alpha}\mathcal{L}_{train}(\alpha,w^{-})}{2\epsilon}.\tag{13}\\ \frac{d\mathcal{L}_{valid}}{d\alpha}(\alpha)&=\nabla_{\alpha}\mathcal{L}_{valid}(\alpha,w^{*})-\frac{\xi}{2\epsilon}\big(\nabla_{\alpha}\mathcal{L}_{train}(\alpha,w^{+})-\nabla_{\alpha}\mathcal{L}_{train}(\alpha,w^{-})\big) \tag{14} \end{align} dαdLvaliddαdLvalid(α)∇α,w2Ltrain(α,w∗)∇wLvalid(α,w∗)∇α,w2Ltrain(α,w∗)dαdLvalid(α)αminLvalid(α,w∗(α))s.t.w∗(α)=argwminLtrain(α,w),=∇αLvalid−∇wLvalid(∇w2Ltrain)−1∇α,w2Ltrain,w∗(α)≈w−ξ∇wLtrain(α,w),∂α∂w∗(α)=−ξ∇α,w2Ltrain(α,w),=∇αLvalid(α,w∗)−ξ∇wLvalid(α,w∗)∇α,w2Ltrain(α,w∗),≈2ϵ∇wLvalid(α,w∗)∇αLtrain(α,w+)−∇αLtrain(α,w−)⇔≈2ϵ∇αLtrain(α,w+)−∇αLtrain(α,w−).=∇αLvalid(α,w∗)−2ϵξ(∇αLtrain(α,w+)−∇αLtrain(α,w−))(7)(8)(9)(10)(11)(12)(13)(14)
B 构造第3节中的S1
我们在默认搜索空间上运行了两次DARTS,以便为每个混合操作找到两个最重要的操作。最初,每个混合操作由8个操作组成。在第一个DARTS运行之后,我们删除(从8个中)最不重要的4个。在第二次DARTS运行中,我们从剩下的4个中去掉了最不重要的2个。然后将S1定义为每个混合操作只包含剩下的两个最重要的操作。图9展示了这个预优化的空间。
C 最终架构评估
与原始的DARTS论文类似(Liu et al ., 2019),通过增加滤波器和单元的数量来扩大搜索过程中发现的架构,并从头开始重新训练以获得最终的测试性能。对于CIFAR-100和SVHN,我们使用16个初始滤波器和8个单元,从头开始训练我们进行的所有实验的架构。其余设置与Liu et al(2019)相同。
在CIFAR-10上,当缩放ScheduleDropPath掉落概率时,我们使用与原始DARTS论文中相同的设置从头开始训练发现的架构,即36个初始滤波器和20个堆叠单元。然而,对于搜索空间S2和S4,我们将初始过滤器的数量减少到16个,以避免内存问题,因为发现具有更多正则化的单元通常仅由可分离卷积组成。在CIFAR-10实验中缩放L2因子时,我们使用了16个初始滤波器和8个堆叠单元,除了S1的实验,其设置与Liu et al(2019)相同,即36个初始滤波器和20个堆叠单元。
请注意,尽管在DARTS搜索过程中改变了正则化因子,但在从头开始训练最终架构时,我们总是使用与Liu等人(2019)相同的值。在整个训练过程中,ScheduleDropPath的最大掉落概率从0线性增加到0.2,cut - out始终以cut - out概率1.0启用,L2正则化因子设置为3·10−4。
D 附加实验结果
D.1 自适应DARTS细节
我们在所有用于图像分类的搜索空间和数据集上评估了DARTS-ADA(第5.3节),R = 3.10−4 (DARTS默认值),Rmax = 3.10−2和η = 10。结果如表3 (DARTS-ADA)所示。函数train和eval对一个epoch执行普通的DARTS搜索,并在该epoch更新结束时返回架构,如果决定停止搜索并回滚到停止epoch,则返回停止值。
D.2 更仔细地看特征值
在本文的所有实验过程中,我们跟踪了所有配置和数据集的最大特征值,以查看它们在搜索过程中如何演变。图13和14显示了所有图像分类设置的结果。可以清楚地看到,增加内部目标正则化,无论是在L2方面还是在数据增强方面,都有助于控制最大特征值并将其保持在一个小值,这再次有助于解释为什么具有更强正则化的架构可以更好地泛化。每行上的标记突出显示了DARTS早停的时间。从图4中可以看到,在整个搜索过程中的平均优势特征值与通过DARTS找到的架构的测试性能之间确实存在一些相关性。
图15和16(前3行)显示了搜索结束时的全谱(基于特征值绝对值排序),而底部3行绘制了特征谱中特征值的分布。可以看到,与正则化强、架构泛化好的情况相比,不仅主特征值更大,而且谱中的其他特征值也有更大的绝对值,表明在多个维度上有更清晰的客观景观。此外,从分布图中可以看出,每当架构退化时(正则化值较低),就会出现更多的负特征值,这表明DARTS会陷入验证损失目标的正曲率和负曲率较大的点,这与更退化的Hessian矩阵相关。
E 视差估计
E.1 数据集
我们使用FlyingThings3D数据集(Mayer等人,2016)来训练AutoDispNet。它由渲染的立体图像对及其ground truth图组成。数据集提供了一个由21组成的训练和测试分割;818和4248个样本,图像分辨率为960×540。我们使用Sinter数据集(Butler et al(2012))来测试我们的网络。Sinintel是另一个从动画电影中提取的合成数据集,它也提供了分辨率为1024 × 436的ground truth视差图(1064个样本)。
E.2 训练
我们使用Saikia等人(2019)中描述的AutoDispNet-c架构。然而,我们使用较小的搜索,它由三个操作组成:MaxP ool3 × 3, SepConv3 × 3和SkipConnect。为了训练搜索网络,图像被降采样2倍,并训练了30万次小批迭代。在搜索过程中,我们分别使用SGD和ADAM对内部目标和外部目标进行优化。与最初的AutoDispNet不同的是,我们在开始架构参数更新之前没有预热启动搜索模型权重。提取的网络也进行了30万次小批量迭代的训练,但使用的是全分辨率图像。在这里,ADAM用于优化,学习率从1e−4退火到0,使用余弦衰减调度。
E.3 正则化对内部目标的影响
为了研究正则化对AutoDispNetc内部目标的影响,我们使用了两种类型的正则化实验:数据增强和L2正则化对网络权重的影响。
我们注意到,我们无法在AutoDispNet上测试早停方法,因为AutoDispNet依赖于自定义操作来计算特征映射相关性(Dosovitskiy等人,2015)和重采样,其中二阶导数目前不可用(需要计算Hessian)。
数据增强。尽管FlyingThings3D的训练样本数量相当大,但数据增强对于良好的泛化性能至关重要。视差估计网络采用平移、裁剪、剪切和缩放等空间变换。此外,还应用了外观变换,如加性高斯噪声、亮度、对比度、伽玛和颜色的变化。这种转换的参数从均匀或高斯分布中采样(由均值和方差参数化)。在我们的实验中,我们通过将这些参数分布的方差乘以一个固定因子来改变数据增强强度,我们称之为增强缩放因子。用相同的增强参数对提取的网络进行评估。增加内物镜增强强度的结果见表2。我们观察到,随着增强强度的增加,DARTS发现的网络参数数量更多,测试性能更好。当内部目标增强最大时,网络的测试性能最好。同时,当增大增大因子时,搜索模型验证误差增加,这再次强化了架构参数的过拟合被隐式正则化器减少的论点。L2正规化。研究了增加正则化强度对网络权值的影响。结果如表2所示。在这种情况下,正则化强度越大,测试性能越好。
F 在PENN TREEBANK上的结果
在这里,我们研究了更多的L2正则化对在Penn Treebank (PTB)上搜索复发细胞的内部目标的影响。我们再次使用简化的搜索空间,仅使用ReLU和身份映射作为可能的操作。其余设置与(Liu et al ., 2019)中相同。
我们使用不同的随机种子运行了四次独立的DARTS搜索,每次都有四个L2正则化因子,即5 × 10−7 (DARTS默认值),15 × 10−7,45 × 10−7和135 × 10−7。图19显示了DARTS使用上述L2正则化值发现的架构的test perplexity。
正如我们所看到的,内部目标上更强的正则化因子使搜索过程更健壮。当我们将L2因子从5×10−7增加到45×10−7时,发现架构的中位数perplexity变得更好,而搜索模型(一次)验证的平均perplexity增加。这个观察结果类似于图10所示的图像分类,再次表明适当地正则化内部目标有助于减少架构参数的过拟合。
G 在其他数据集上发现了第3节中的搜索空间S1-S4上的单元
图20-图30