GOLD-NAS:针对神经网络可微分架构搜索的一次大手术

本文是华为,清华与同济大学联合发表的基于可微分网络搜索的论文。本文基于传统DARTS搜索空间受限,二阶优化不稳定,超网络离散化误差大的这三个问题,对DARTS进行了一场全面的手术。本文针对上述三个问题提出了渐进式的(Gradual),一阶段的(One-Level),可微分的(Differentiable) 神经网络架构搜索(GOLD-NAS)。在标准的图像分类基准中,GOLD-NAS 可以找到单个搜索过程中的一系列的帕累托最优架构。

  • 论文题目:GOLD-NAS: Gradual, One-Level, Differentiable
  • 开源代码:https://github.com/sunsmarterjie/GOLD_NAS

DARTS目前的问题

搜索空间受限

DARTS的搜索空间非常有限,例如,对于每个边保留了一个运算符,每个节点固定接收两个前继输入,等等。这些约束有利于NAS搜索的稳定性,但它们也缩小了强大的搜索方法带来的准确性。最典型的,某些启发式设计(例如,每个单元格中有两个跳连运算符)或搜索技巧(例如,Early Stop),甚至随机搜索也可以达到令人满意的效果。

双层优化不稳定

DARTS需要双层优化,即训练阶段以优化网络权重验证阶段以更新体系结构参数。 这种机制带来了计算负担,更重要的是,梯度估计存在很大的不准确性可能会大大降低搜索过程

离散化误差大

在超级网络建立之后,DARTS会立即剪掉弱的运算符和边,但此步骤可能会带来较大的离散误差,尤其是当权重为被修剪的运算符不能保证很小。

GOLD-NAS的解决方案

搜索空间重定义
  • 不同的Cell可以拥有不同的结构
  • 每条边可以包含超过一个操作
  • 每条边只保留两个操作(Skip-Connect 和 Sep-conv-3x3)
  • 每个节点可以选择从任数量的前继作为输入
  • 训练过程中,操作参数从原始的Softmax归一化(竞争)修改为Signoid元素化(独立)
一阶段优化

可微分NAS的目标是解决以下优化问题:

α ⋆ = arg ⁡ min ⁡ α L ( ω ⋆ ( α ) , α ; D train ⁡ ) ,  s.t.  ω ⋆ ( α ) = arg ⁡ min ⁡ ω L ( ω , α ; D train  ) \boldsymbol{\alpha}^{\star}=\arg \min _{\boldsymbol{\alpha}} \mathcal{L}\left(\boldsymbol{\omega}^{\star}(\alpha), \boldsymbol{\alpha} ; \mathcal{D}_{\operatorname{train}}\right), \quad \text { s.t. } \quad \boldsymbol{\omega}^{\star}(\alpha)=\arg \min _{\boldsymbol{\omega}} \mathcal{L}\left(\boldsymbol{\omega}, \boldsymbol{\alpha} ; \mathcal{D}_{\text {train }}\right) α=argαminL(ω(α),α;Dtrain), s.t. ω(α)=argωminL(ω,α;Dtrain )

一阶段优化目标旨在同步更新架构参数 α ⋆ \boldsymbol{\alpha}^{\star} α和网络权重 ω ⋆ \boldsymbol{\omega}^{\star} ω:

ω t + 1 ← ω t − η ω ⋅ ∇ ω L ( ω t , α t ; D train ⁡ ) , α t + 1 ← α t − η α ⋅ ∇ α L ( ω t , α t ; D train ⁡ ) \omega_{t+1} \leftarrow \omega_{t}-\eta_{\omega} \cdot \nabla_{\omega} \mathcal{L}\left(\omega_{t}, \alpha_{t} ; \mathcal{D}_{\operatorname{train}}\right), \quad \alpha_{t+1} \leftarrow \alpha_{t}-\eta_{\alpha} \cdot \nabla_{\alpha} \mathcal{L}\left(\omega_{t}, \alpha_{t} ; \mathcal{D}_{\operatorname{train}}\right) ωt+1ωtηωωL(ωt,αt;Dtrain),αt+1αtηααL(ωt,αt;Dtrain)

根据NAS的搜索架构我们了解到架构参数 α ⋆ \boldsymbol{\alpha}^{\star} α(10数量级)和网络权重 ω ⋆ \boldsymbol{\omega}^{\star} ω(百万数量级)存在很大的参数数量差距。因此,在之前的训练中往往采用不同的优化器设置不同的优化参数,但是,由于参数数量上的差距优化器仍然会趋向于优化网络参数 ω ⋆ \boldsymbol{\omega}^{\star} ω。本文,将训练集进一步切分为两部分 D train  = D 1 ∪ D 2 \mathcal{D}_{\text {train }}=\mathcal{D}_{1} \cup \mathcal{D}_{2} Dtrain =D1D2,分别训练架构参数和网络权重:

α ⋆ = arg ⁡ min ⁡ α L ( ω ⋆ ( α ) , α ; D 1 ) ,  s.t.  ω ⋆ ( α ) = arg ⁡ min ⁡ ω L ( ω , α ; D 2 ) \boldsymbol{\alpha}^{\star}=\arg \min _{\boldsymbol{\alpha}} \mathcal{L}\left(\boldsymbol{\omega}^{\star}(\alpha), \boldsymbol{\alpha} ; \mathcal{D}_{1}\right), \quad \text { s.t. } \quad \boldsymbol{\omega}^{\star}(\alpha)=\arg \min _{\boldsymbol{\omega}} \mathcal{L}\left(\boldsymbol{\omega}, \boldsymbol{\alpha} ; \mathcal{D}_{2}\right) α=argαminL(ω(α),α;D1), s.t. ω(α)=argωminL(ω,α;D2)

ω t + 1 ← ω t − η ω ⋅ ∇ ω L ( ω t , α t ; D 2 ) , α t + 1 ← α t − η α ⋅ ∇ α L ( ω t + 1 , α t ; D 1 ) \omega_{t+1} \leftarrow \omega_{t}-\eta_{\omega} \cdot \nabla_{\omega} \mathcal{L}\left(\omega_{t}, \alpha_{t} ; \mathcal{D}_{2}\right), \quad \alpha_{t+1} \leftarrow \alpha_{t}-\eta_{\alpha} \cdot \nabla_{\alpha} \mathcal{L}\left(\omega_{t+1}, \alpha_{t} ; \mathcal{D}_{1}\right) ωt+1ωtηωωL(ωt,αt;D2),αt+1αtηααL(ωt+1,αt;D1)

一级优化往往存在更严重的搜索不稳定问题,文中给出的解决方法是:针对小数据集(CIFAR-10)可以在训练过程中添加正则化(例如,Cutout或AutoAugment); 亦或是直接在大数据集(ImageNet)上搜索

基于资源约束的渐进式剪枝

传统的DARTS在超网络训练完成后按规则进行离散化剪枝,但是在兼职过程中会产生巨大的离散化误差。本文,为了解决离散化误差的问题采用的渐进式剪枝过程,并且在多次剪枝过程中,每次剪掉参数趋于0的操作,尽量避免因剪枝造成的离散误差。另外,为了实现架构参数在训练过程中趋于0或者1,本文添加了基于资源约束的正则化Loss:

L ( ω , α ) = E ( x , y ⋆ ) ∈ D train  [ C E ( f ( x ) , y ⋆ ) ] + λ ⋅ ( F L O P s ‾ ( α ) + μ ⋅ F L O P s ( α ) ) \mathcal{L}(\boldsymbol{\omega}, \boldsymbol{\alpha})=\mathbb{E}_{\left(\mathbf{x}, \mathbf{y}^{\star}\right) \in \mathcal{D}_{\text {train }}}\left[\mathrm{CE}\left(f(\mathbf{x}), \mathbf{y}^{\star}\right)\right]+\lambda \cdot(\overline{\mathrm{FL} \mathrm{OPs}}(\boldsymbol{\alpha})+\mu \cdot \mathrm{FLOPs}(\boldsymbol{\alpha})) L(ω,α)=E(x,y)Dtrain [CE(f(x),y)]+λ(FLOPs(α)+μFLOPs(α))

GOLD-NAS 算法流程图

GOLD-NAS 算法流程图

结果

帕累托边界

帕累托边界

CIFAR-10 结果

CIFAR-10 结果

CIFAR-10搜索结果可视化:红色线代表Skip-Connect;蓝色线代表sep-conv-3x3

ImageNet 结果

ImageNet 结果
ImageNet搜索结果可视化:红色线代表Skip-Connect;蓝色线代表sep-conv-3x3


更多内容关注微信公众号【AI异构】

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值