论文阅读笔记——DARTS:Differentiable Architecture Search可微分架构搜索(二)(论文翻译学习)

DARTS:Differentiable Architecture Search 可微分架构搜索(二)

加油加油!如果你感觉你现在很累,那么恭喜你,你现在正在走上坡路!让我们一起加油!

欢迎关注我的讲解视频,让我们一起学习:

Bilibili主页: https://space.bilibili.com/481802918

在这里插入图片描述

DARTS:Differentiable Architecture Search(二)

Differentiable Architecture Search

2.2 持续放松和优化

O \mathcal{O} O为一组候选运算(例如:卷积,最大池化或者零操作),其中每个运算代表要应用于x(i)的某个函数o。为了使搜索空间连续,我们将特定操作的分类选择放宽到所有可能操作的softmax:

o ˉ ( i , j ) ( x ) = ∑ o ∈ O exp ⁡ ( α o ( i , j ) ) ∑ o ′ ∈ O exp ⁡ ( α o ′ ( i , j ) ) o ( x ) (2) \bar{o}^{(i, j)}(x)=\sum_{o \in \mathcal{O}} \frac{\exp \left(\alpha_{o}^{(i, j)}\right)}{\sum_{o^{\prime} \in \mathcal{O}} \exp \left(\alpha_{o^{\prime}}^{(i, j)}\right)} o(x)\tag 2 oˉ(i,j)(x)=oOoOexp(αo(i,j))exp(αo(i,j))o(x)(2)
其中一对节点 (i,j) 的运算混合权重由维度为 | O \mathcal{O} O| 的向量 α(i,j) 参数化。然后架构搜索的任务就简化为学习一组连续变量α={α(i,j)},如图1所示。在搜索结束时,可以通过用最可能(likely)的操作替换每个混合操作 o ˉ ( i , j ) \bar {o}^{(i,j)} oˉ(i,j)来获得离散体系结构。例如, o ( i , j ) = a r g m a x o ∈ O α o ( i , j ) o^{(i,j)}=argmax_{o\in\mathcal{O}}α_o^{(i,j)} o(i,j)=argmaxoOαo(i,j)。在下文中,我们将α称为编码架构。

放松(搜索空间)之后,我们的目标是共同学习所有混合操作中的体系结构α和权重w(例如卷积滤波器的权重)。类似于使用强化学习或演算(evolution)的架构搜索,它们将验证集性能作为奖励或适用性的指标,DARTS旨在通过使用梯度下降来优化验证损失。

声明 L t r a i n \mathcal{L}_{train} Ltrain L v a l \mathcal{L}_{val} Lval来分别表示训练损失和验证损失。这两种损失不仅由架构α决定,而且由网络中的权重w决定。架构搜索的目标就是找到使验证损失 L v a l ( w ∗ , α ∗ ) \mathcal{L}_{val}(w*,\alpha^*) Lval(w,α)最小的 α ∗ \alpha^* α,其中与架构相关的权重w*通过最小化训练损失获得 w ∗ = a r g m i n w L t r a i n ( w , α ∗ ) w^*=argmin_w\mathcal{L}_{train}(w,\alpha^*) w=argminwLtrain(w,α)

扫描二维码关注公众号,回复: 12099801 查看本文章

这暗示了一个双层优化问题,其中α为上层变量,w为下层变量:

min ⁡ α L v a l ( w ∗ ( α ) , α ) (3) \min_\alpha \quad \mathcal{L}_{val}(w^*(\alpha),\alpha) \tag 3 αminLval(w(α),α)(3)
s . t . w ∗ ( α ) = a r g m i n w L t r a i n ( w , α ) (4) s.t. \quad w^*(\alpha)=argmin_w\mathcal{L}_{train}(w,\alpha) \tag 4 s.t.w(α)=argminwLtrain(w,α)(4)

嵌套公式也出现在基于梯度的超参数优化中,这在某种意义上是相关的,即体系结构α可以看作是一种特殊类型的超参数,尽管它的维数大大高于标量值的超参数,例如学习率,并且(嵌套公式)很难优化。

在这里插入图片描述
注 : ∇ 求 梯 度 注:\nabla 求梯度
2.3 近似架构梯度

由于昂贵的内部优化,准确评估架构梯度可能会令人望而却步。因此,我们提出了一种简单的近似方案,如下所示:
∇ α L v a l ( w ∗ ( α ) , α ) ≈ ∇ α L v a l ( w − ξ ∇ w L t r a i n ( w , α ) , α ) (6) \nabla_\alpha\mathcal{L}_{val}(w^*(\alpha),\alpha) \tag 6 \\ \approx \nabla_\alpha \mathcal{L}_{val}(w- \xi\nabla_w \mathcal{L}_{train}(w,\alpha),\alpha) αLval(w(α),α)αLval(wξwLtrain(w,α),α)(6)
其中w表示算法保持的当前权重,ξ是内部优化步骤的学习率。这个想法是通过仅使用一个训练步骤就对w进行自适应来近似 w ∗ ( α ) w^*(\alpha) w(α),而不是通过训练直到收敛来完全解决内部优化问题(等式4)。 相关技术已经用于元学习中模型迁移,基于梯度的超参数调整和展开式的生成对抗网络GAN。注意,如果w对于内部优化来说是局部最优的,则方程6将简化为 ∇ α L v a l ( w , α ) \nabla_\alpha\mathcal{L}_{val}(w,\alpha) αLval(w,α),因此 ∇ α L t r a i n ( w , α ) = 0 \nabla_\alpha\mathcal{L}_{train}(w,\alpha)=0 αLtrain(w,α)=0

算法1中概述了这种迭代过程。虽然我们目前尚不了解优化算法的收敛性保证,但实际上,通过选择合适的 ξ 1 \xi^1 ξ1可以达到固定点。我们还注意到,当为权重优化启用动量(momentum)时,方程式6中的一步式展开学习目标会相应修改,我们所有的分析仍然适用。将链式规则应用于近似架构梯度(方程式6)可得出:
∇ α L v a l ( w ′ , α ) − ξ ∇ α , w 2 L t r a i n ( w , α ) ∇ w ′ L v a l ( w ′ , α ) (7) \nabla_\alpha\mathcal{L}_{val}(w',\alpha)-\xi\nabla^2_{\alpha,w}\mathcal{L}_{train}(w,\alpha)\nabla_{w'}\mathcal{L}_{val}(w',\alpha) \tag 7 αLval(w,α)ξα,w2Ltrain(w,α)wLval(w,α)(7)
其中 w ′ = w − ξ ∇ w L t r a i n ( w , α ) w'=w-\xi\nabla_w\mathcal{L}_{train}(w,\alpha) w=wξwLtrain(w,α)表示单步前进模型的权重。上面的表达式在第二项中包含昂贵的矩阵向量乘积。幸运的是,使用有限差分近似( finite difference approximation)可以大大降低复杂度。使用 ϵ \epsilon ϵ为小标量2,并且有 w ± = w ± ϵ ∇ w ′ L v a l ( w ′ , α ) w^{\pm}=w\pm\epsilon\nabla_{w'}\mathcal{L}_{val}(w',\alpha) w±=w±ϵwLval(w,α)。然后:
∇ α , w 2 L t r a i n ( w , α ) ∇ w ′ ( L ) v a l ( w ′ , α ) ≈ ∇ α L t r a i n ( w + , α ) − ∇ α L t r a i n ( w − , α ) 2 ϵ (8) \nabla^2_{\alpha,w}\mathcal{L}_{train}(w,\alpha)\nabla_{w'}\mathcal(L)_{val}(w',\alpha)\approx \frac{\nabla_{\alpha}\mathcal{L}_{train}(w^+,\alpha)-\nabla_\alpha\mathcal{L}_{train}(w^-,\alpha)}{2\epsilon} \tag8 α,w2Ltrain(w,α)w(L)val(w,α)2ϵαLtrain(w+,α)αLtrain(w,α)(8)
计算有限差分仅需要权重两次前向传播,而α则需要两次后向传播,并且复杂度从O(|α|| w |)降低为O(|α| + | w |)。

一阶近似: 当ξ= 0时,等式7中的二阶导数将消失。在这种情况下,架构梯由 ∇ α L v a l ( w , α ) \nabla_\alpha\mathcal{L}_{val}(w,\alpha) αLval(w,α)给出,对应于通过假设当前 w w w w ∗ ( α ) w^*(\alpha) w(α)相同来优化验证损失的简单启发式算法。根据我们在表1和表2中的实验结果,这会导致一些速度提升,但从经验上讲会降低性能。在下文中,我们将ξ= 0的情况称为一阶近似,而将ξ> 0的梯度公式称为二阶近似。

2.4 推导离散架构

为了形成离散体系结构中的每个节点,我们保留从所有先前节点收集的所有非零候选操作中排在前k位的最强操作(来自不同的节点)。一项操作的强度定义为 e x p ( α o ( i , j ) ) ∑ o ′ ∈ O e x p ( α o ′ ( i , j ) ) \frac{exp(\alpha_o^{(i,j)})}{\sum_{o'\in\mathcal{O}}exp(\alpha_{o'}^{(i,j)})} oOexp(αo(i,j))exp(αo(i,j)).为了使我们的派生架构与现有工作具有可比性,我们对卷积单元使用k = 2,对递归单元使用k = 1。

以上操作将零运算排除在外出于两个原因。首先,我们需要每个节点正好有k个非零输入边,以便与现有模型进行公平比较。其次,归零操作的强度是不确定的,因为增加归零操作的对数仅会影响所得节点表示的规模,并且由于存在批次归一化而不会影响最终分类结果。

3 实验与结果

我会以视频的形式与大家分享讲解:)
Bilibili主页: https://space.bilibili.com/481802918

猜你喜欢

转载自blog.csdn.net/fuhao7i/article/details/109209194