【学习笔记】DARTS & MiLeNAS

DARTS & MiLeNAS

基于双层优化的可微分的网络结构搜索算法及其改进

DARTS: Differentiable Architecture Search

MiLeNAS: Efficient Neural Architecture Search via Mixed-Level Reformulation

DARTS

核心:在连续域中实现对网络架构的搜索

定义Cell为网络中的基本单元,每个Cell结构都是一个有向无环图,对Cell的内部结构进行搜索:
在这里插入图片描述

利用softmax对每个候选运算(conv/maxpooling/zero, etc.)求和,对节点(i, j)的操作权值向量α(i, j)参数化:
o ˉ ( i , j ) ( x ) = ∑ o ∈ O e x p ( α o ( i , j ) ) ∑ o ‘ ∈ O e x p ( α o ‘ ( i , j ) ) o ( x ) \bar{o}^(i, j)(x)=\sum_{o\in O}\frac{exp(\alpha_o^{(i, j)})} {\sum_{o^`\in O}exp(\alpha_{o^`}^{(i, j)})}o(x) oˉ(i,j)(x)=oOoOexp(αo(i,j))exp(αo(i,j))o(x)
对于每个节点而言,找到其对应最大的α(i, j),从而将混合操作替换为对应的操作,即搜索目标为:
o ( i , j ) = a r g m a x o ∈ O α o ( i , j ) o^{(i, j)} = argmax_{o∈O}\alpha_o^{(i, j)} o(i,j)=argmaxoOαo(i,j)
训练过程中,利用loss_train对权重w进行优化,利用loss_valid对结构化参数α进行优化,采用双层优化思想:
min ⁡ α L v a l ( ω ∗ ( α ) , α ) s . t .   ω ∗ ( α ) = a r g m i n ω L t r a i n ( ω , α ) \min_\alpha \mathcal{L}_{val}(\omega^*(\alpha), \alpha)\\ s.t.\ \omega^*(\alpha)={argmin}_{\omega}\mathcal{L}_{train}(\omega, \alpha) αminLval(ω(α),α)s.t. ω(α)=argminωLtrain(ω,α)
伪代码如下:
在这里插入图片描述

单步优化时:
∇ α L v a l ( ω ∗ ( α ) , α ) ≈ ∇ α L v a l ( ω − ξ ∇ ω L t r a i n ( ω , α ) , α ) \nabla_{\alpha} \mathcal{L}_{val}(\omega^*(\alpha), \alpha) \approx \\ \nabla_{\alpha} \mathcal{L}_{val}(\omega-\xi\nabla_{\omega}\mathcal{L}_{train}(\omega, \alpha), \alpha) αLval(ω(α),α)αLval(ωξωLtrain(ω,α),α)
若令上式中学习率 ξ = 0 \xi = 0 ξ=0,则可得到梯度的一阶近似。若 ξ ≠ 0 \xi \ne 0 ξ=0,则为二阶近似,以下对其进行简化求解。

利用链式法则+复合求导可以将之写成如下形式:
∇ α L v a l ( ω ′ , α ) − ξ ∇ α , ω 2 L t r a i n ( ω , α ) ∇ ω ‘ L v a l ( ω ′ , α ) \nabla_{\alpha}\mathcal{L}_{val}(\omega^\prime,\alpha)- \xi\nabla_{\alpha,\omega}^2\mathcal{L}_{train}(\omega,\alpha)\nabla_{\omega^`}\mathcal{L}_{val}(\omega^\prime,\alpha) αLval(ω,α)ξα,ω2Ltrain(ω,α)ωLval(ω,α)
考虑到高阶矩阵乘法的复杂性,令 ω ± = ω ± ϵ ∇ ω ′ L v a l ( ω ′ , α ) \omega^{\pm}=\omega\pm\epsilon\nabla_{\omega^{\prime}\mathcal{L}_{val}(\omega^{\prime}, \alpha)} ω±=ω±ϵωLval(ω,α)利用泰勒展开将上式中的后半部分做如下简化:
∇ α , ω 2 L t r a i n ( ω , α ) ∇ ω ′ L v a l ( ω ′ , α ) ≈ ∇ α L t r a i n ( ω + , α ) − ∇ α L t r a i n ( ω − , α ) 2 ϵ \nabla_{\alpha,\omega}^2\mathcal{L}_{train}(\omega,\alpha)\nabla_{\omega^\prime}\mathcal{L}_{val}(\omega^\prime,\alpha) \approx \frac{\nabla_{\alpha}\mathcal{L}_{train}(\omega^+, \alpha) - \nabla_{\alpha}\mathcal{L}_{train}(\omega^-, \alpha)} {2\epsilon} α,ω2Ltrain(ω,α)ωLval(ω,α)2ϵαLtrain(ω+,α)αLtrain(ω,α)

MileNAS

核心:现有的许多网络结构搜索算法都可以表述为双层优化,需要使用二阶近似。本文证明了由这种近似引起的梯度误差会导致次最优性,即优化过程不能收敛到一个(局部)最优解,并提出了一种基于mixed-level的优化方法。

由于(6)式的近似,获得 ω ∗ ( α ) \omega^*(\alpha) ω(α)需要对 α \alpha α的每次更新重新训练两个网络。于此同时,因为建立在 ω \omega ω的一步近似上,二阶近似具有叠加效应,从而会导致梯度误差和偏离真梯度。

单层优化问题可以描述为:
min ⁡ ω , α L t r ( ω , α ) = min ⁡ α L t r ( ω ∗ ( α ) , α ) \min_{\omega, \alpha}\mathcal{L}_{tr}(\omega, \alpha)= \min_{\alpha}\mathcal{L}_{tr}(\omega^*(\alpha),\alpha) ω,αminLtr(ω,α)=αminLtr(ω(α),α)
由于 α \alpha α只取决于训练数据,直接对上式进行极小值搜索以获得最优的权值和结构参数可能导致对 α \alpha α过拟合。

利用正则化的思想,使用 L v a l ( ω , α ) \mathcal{L}_{val}(\omega,\alpha) Lval(ω,α)作为正则项,为(7)式添加约束项,其中 δ \delta δ为常量:
L v a l ( ω ∗ ( α ) , α ) ≤ L t r ( ω ∗ ( α ) , α ) + δ \mathcal{L}_{val}(\omega^*(\alpha), \alpha)\le \mathcal{L}_{tr}(\omega^*(\alpha), \alpha) + \delta Lval(ω(α),α)Ltr(ω(α),α)+δ
利用拉格朗日乘子法,将约束条件下(7)式的求解问题转化为如下形式:
ω ∗ ( α ) = a r g min ⁡ ω L t r ( ω , α ) , min ⁡ α ( 1 − λ ′ ) L t r ( ω ∗ ( α ) , α ) + λ ′ L ( ω ∗ ( α ) , α ) − λ ′ δ , 0 ≤ λ ≤ 1 \omega^*(\alpha)=arg\min_{\omega}\mathcal{L}_{tr}(\omega,\alpha),\\ \min_{\alpha}(1-\lambda^\prime)\mathcal{L}_{tr}(\omega^*(\alpha), \alpha) + \lambda^\prime\mathcal{L}(\omega^*(\alpha), \alpha) - \lambda^\prime\delta, \\ 0\le\lambda\le1 ω(α)=argωminLtr(ω,α),αmin(1λ)Ltr(ω(α),α)+λL(ω(α),α)λδ,0λ1
对上式进行优化,只需要相应搜索:

min ⁡ α , ω [ L t r ( ω ∗ ( α ) , α ) + λ L v a l ( ω ∗ ( α ) , α ) ] \min_{\alpha, \omega}[\mathcal{L}_{tr}(\omega^*(\alpha), \alpha) + \lambda\mathcal{L}_{val}(\omega^*(\alpha), \alpha)] α,ωmin[Ltr(ω(α),α)+λLval(ω(α),α)]
λ \lambda λ为非负的正则化参数,用于平衡训练损失和验证损失的重要性。

使用一阶方法对(10)式进行求解,对权重和结构参数进行训练更新:
ω = ω − η ω ∇ ω L t r ( ω , α ) , α = α − η α ( ∇ α L t r ( ω , α ) + λ ∇ α L v a l ( ω , α ) ) h a L t r ( ω , α ) + λ ∇ α L v a l ( ω , α ) ) \omega=\omega-\eta_\omega\nabla_\omega\mathcal{L}_{tr}(\omega, \alpha), \\ \alpha=\alpha-\eta_\alpha(\nabla_\alpha\mathcal{L}_{tr}(\omega, \alpha) + \lambda\nabla_\alpha\mathcal{L}_{val}(\omega, \alpha)) ha\mathcal{L}_{tr}(\omega, \alpha) + \lambda\nabla_\alpha\mathcal{L}_{val}(\omega, \alpha)) ω=ωηωωLtr(ω,α),α=αηα(αLtr(ω,α)+λαLval(ω,α))haLtr(ω,α)+λαLval(ω,α))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值