DARTS是很经典的NAS办法,它的呈现突破了以往的离散的网络搜寻模式,可能进行end-to-end的网络搜寻。因为DARTS是基于梯度进行网络更新的,所以更新的方向比拟精确,搜寻工夫相当于之前的办法有很大的晋升,CIFAR-10的搜寻仅须要4GPU days。

起源:晓飞的算法工程笔记 公众号

论文: DARTS: Differentiable Architecture Search

  • 论文地址:https://arxiv.org/abs/1806.09055
  • 论文代码:https://github.com/quark0/darts

Introduction


  目前风行的神经网络搜寻办法大都是对离散的候选网络进行抉择,而DARTS则是对间断的搜寻空间进行搜寻,并依据验证集的体现应用梯度降落进行网络结构优化,论文的次要奉献如下:

  • 基于bilevel优化提出翻新的gradient-based神经网络搜寻办法DARTS,实用于卷积构造和循环构造。
  • 通过试验表明gradient-based构造搜寻办法在CIFAR-10和PTB数据集上都有很好的竞争力。
  • 搜寻性能很强,仅须要大量GPU days,次要得益于gradient-based优化模式。
  • 通过DARTS在CIFAR-10和PTB上学习到的网络可能转移到大数据集ImageNet和WikiText-2上。

Differentiable Architecture Search


Search Space

  DARTS的整体搜寻框架跟NASNet等办法一样,通过搜寻计算单元(cell)的作为网络的根底构造,而后重叠成卷积网络或者循环网络。计算单元是个有向无环图,蕴含$N$个节点的有序序列,每个节点$x^{(i)}$代表网络的两头信息(如卷积网络的特色图),边代表对$x^{(i)}$的操作$o^{(i,j)}$。每个计算单元有两个输出和一个输入,对于卷积单元,输出为前两层的计算单元的输入,对于循环网络,输出则为以后step的输出和前一个step的状态,两者的输入均为将两头节点的所有输入进行合并操作。每个两头节点的计算基于后面所有的节点:

  这里蕴含一个非凡的zero操作,用来指定两个节点间没有连贯。DARTS将计算单元的学习转换为边操作的学习,整体搜寻框架跟NASNet等办法一样,本文次要集中在DARTS如何进行gradient-based的搜寻。

Continuous Relaxation and Optimization

  让$O$为候选操作集,每个操作代表利用于$x^{(i)}$的函数$o(\cdot)$,为了让搜寻空间间断化,将本来的离散操作抉择转换为所有操作的softmax加权输入:

  节点$(i,j)$间的操作的混合权重示意为维度$|O|$的向量$\alpha^{(i,j)}$,整个架构搜寻则简化为学习间断的值$\alpha=\{\alpha^{(i, j)}\}$,如图1所示。在搜寻的最初,每个节点抉择概率最大的操作$o^{(i,j)}=argmax_{o\in O}\alpha^{(i,j)}_o$代替$\bar{o}^{(i,j)}$,构建出最终的网络。
  在简化后,DARTS指标是够同时学习网络结构$\alpha$和所有的操作权值$w$。比照之前的办法,DARTS可能依据验证集损失应用梯度降落进行构造优化。定义$\mathcal{L}_{train}$和$\mathcal{L}_{val}$为训练和验证集损失,损失由网络结构$\alpha$和网络权值$w$独特决定,搜寻的最终目标是找到最优的$\alpha^{*}$来最小化验证集损失$\mathcal{L}_{val}(w^{*}, \alpha^{*})$,其中网络权值$w^{*}$则是通过最小化训练损失$w^{*}=argmin_w \mathcal{L}_{train}(w, \alpha^{*})$取得。这意味着DARTS是个bilevel优化问题,应用验证集优化网络结构,应用训练集优化网络权重,$\alpha$为下级变量,$w$为上级变量:

Approximate Architecture Gradient

  公式3计算网络结构梯度的开销是很大的,次要在于公式4的内层优化,即每次构造的批改都须要从新训练失去网络的最优权重。为了简化这一操作,论文提出了提出了简略的近似的改良:

  $w$示意以后的网络权重,$\xi$是内层优化单次更新的学习率,整体的思维是在网络结构扭转后,通过单次训练step优化$w$来迫近$w^{(*)}(\alpha)$,而不是公式3那样须要残缺地训练直到收敛。理论当权值$w$为内层优化的部分最优解时($\nabla_{w}\mathcal{L}_{train}(w, \alpha)=0$),公式6等同于公式5$\nabla_{\alpha}\mathcal{L}_{val}(w, \alpha)$。

  迭代的过程如算法1,交替更新网络结构和网络权重,每次的更新都仅应用大量的数据。依据链式法则,公式6能够开展为:

  $w^{'}=w - \xi \nabla_w \mathcal{L}_{train}(w, \alpha)$,上述的式子的第二项计算的开销很大,论文应用无限差分来近似计算,这是论文很要害的一步。$\epsilon$为小标量,$w^{\pm}=w\pm \epsilon \nabla_{w^{'}} \mathcal{L}_{val}(w^{'}, \alpha)$,失去:

  计算最终的差分须要两次正向+反向计算,计算复杂度从$O(|\alpha| |w|)$简化为$O(|\alpha|+|w|)$。

  • First-order Approximation

      当$\xi=0$时,公式7的二阶导会隐没,梯度由$\nabla_{\alpha}\mathcal{L}(w, \alpha)$决定,即认为以后权值总是最优的,间接通过网络结构批改来优化验证集损失。$\xi=0$能减速搜寻的过程,但也可能会带来较差的体现。当$\xi=0$时,论文称之为一阶近似,当$\xi > 0$时,论文称之为二阶近似。

Deriving Discrete Architectures

  在构建最终的网络结构时,每个节点选取来自不同节点的top-k个响应最强的非zero操作,响应强度通过$\frac{exp(\alpha^{(i,j)_o})}{\sum_{o^{'}\in O}exp(\alpha^{(i,j)}_{o^{'}})}$计算。为了让搜寻的网络性能更好,卷积单元设置$k=2$,循环单元设置$k=1$。过滤zero操作次要让每个节点有足够多的输出,这样能力与以后的SOTA模型进行偏心比拟。

Experiments and Results

  搜寻耗时,其中run代表屡次搜寻取最好的后果。

  搜寻到的构造。

  CIFAR-10上的性能比照。

  PTB上的性能比照。

  迁徙到ImageNet上的性能比照。

Conclustion


  DARTS是很经典的NAS办法,它的呈现突破了以往的离散的网络搜寻模式,可能进行end-to-end的网络搜寻。因为DARTS是基于梯度进行网络更新的,所以更新的方向比拟精确,搜寻工夫相当于之前的办法有很大的晋升,CIFAR-10的搜寻仅须要4GPU days。



如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】