本文主要是介绍【阅读笔记】DARTS: Differentiable Architecture Search,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
作者:
Hanxiao Liu | Karen Simonyan | Yiming Yang |
---|---|---|
CMU | DeepMind | CMU |
hanxiaol@cs.cmu.edu | simonyan@google.com | yiming@cs.cmu.edu |
Liu, Hanxiao, Karen Simonyan, and Yiming Yang. “Darts: Differentiable architecture search.” arXiv preprint arXiv:1806.09055 (2018).
发布时间: 24 Jun 2018
昨天看了这篇文章,感觉挺有意思的,将神经网络的结构也作为参数来进行梯度下降优化,给结构的选择以科学的方式。
Abstract
本文的核心思想是通过以可微的方式进行结构搜索。
与传统的在离散的和不可微的搜索空间上采用进化或强化学习搜索结构的方法不同,本文的方法是基于将结构表示的松弛(relaxation),允许使用梯度下降高效搜索架构。
在CIFAR-10,ImageNet,Penn Treebank和WikiText-2上进行了大量实验,表明本文的算法擅长于发现用于图像分类的高性能卷积结构和用于语言建模的循环神经网络结构,同时比现有技术的非微分搜索技术要快几个数量级。
1 Introduction
发现最先进的神经网络架构需要人类专家的大量工作。
最近,人们越来越有兴趣开发自动化算法解决神经网络结构的设计。
自动搜索架构在诸如图像分类 (Zoph and Le, 2016; Zoph et al., 2017; Liu et al., 2017b,a; Real et al., 2018)和object detection (Zoph et al., 2017)上有着广泛的探索。
现有最好的架构搜索算法尽管性能卓越,但在计算上要求很高。
例如,获得CIFAR-10和ImageNet的最新架构需要1800 GPU天的强化学习(RL) (Zoph et al., 2017) 或3150 GPU天的进化学习 (Real et al., 2018)。
虽然已经提出了几种加速方法,如强加搜索空间的特定结构(Liu et al., 2017b,a),对每个单独架构的权重或性能预测(Brock et al., 2017; Baker et al., 2018) ,以及跨体系结构的权重共享 (Pham et al., 2018b; Cai et al., 2018),但可扩展性(scalability )的根本challenge依然存在。
主流方法效率低下的内在原因, e.g. based on RL, evolution, MCTS (Negrinho and Gordon, 2017), SMBO (Liu et al., 2017a) or Bayesian optimization (Kandasamy et al., 2018),是在于把结构搜索视为一个在离散域的黑箱优化问题,这导致需要大量的架构评估。
在这项工作中,作者从另一个角度来看问题,并提出了一种称为DARTS(可微分的结构搜索,Differentiable Architecture Search)的高效架构搜索方法。
取代搜索一组离散的候选架构,松弛(relaxation)搜索空间使之连续,从而使架构可以通过梯度下降的方法对其在验证集上的性能进行优化。
因为基于梯度的优化,与低效的黑盒搜索不同,使得DARTS使用比现有技术数量级较少的计算资源实现具有竞争力的表现。
它也优于另一种最近的高效架构搜索方法,ENAS (Pham et al., 2018b).
值得注意的是,DARTS比许多现有方法简单,因为它不涉及任何controllers (Zoph and Le, 2016; Baker et al., 2016; Zoph et al., 2017; Pham et al., 2018b),hypernetworks (Brock et al., 2017) ,或表现预测因子performance predictors (Liu et al., 2017a)。
在一个连续的领域内搜索体系结构的想法并不新鲜(Saxena and Verbeek, 2016; Ahmed and Torresani, 2017; Shin et al., 2018),与先前的工作有几个主要区别在于:
- 虽然之前的工作试图对结构的特定方面进行微调,如卷积网络中的滤波器形状或分支模式,但是DARTS能够在丰富的搜索空间内发现具有复杂图形拓扑的高性能架构。
- 此外,DARTS不限于任何特定架构系列,能够搜索卷积网络和循环网络。
本文的贡献可以总结如下:
- 引入了一种适用于卷积和循环结构的可微分网络体系结构搜索的新算法。
- 通过实验表明本文的方法具有很强的竞争力。
- 实现了卓越的结构搜索效率(4个GPU:1天内CIFAR10误差2.83%; 6小时内PTB误差56.1),这归因于使用基于梯度的优化而非非微分搜索技术。
- 证明 DARTS 在 CIFAR-10 和 PTB 上学习的体系结构可以迁移到 ImageNet 和 WikiText-2 上
DARTS的实现可在https://github.com/quark0/darts 上找到。
2 Differentiable Architecture Search
在Sect. 2.1,用一般形式描述搜索空间,其中结构(或其中的单元cell)的计算过程被表示为有向无环图。
然后为搜索空间引入一个简单的连续松弛方案,使得架构及其权重的联合优化目标可微(Sect. 2.2)。
最后,本文提出了一种近似技术,使算法在计算上可行和高效(Sect. 2.3)。
2.1 Search Space
Following 前人的工作,搜索一个计算单元(cell)作为最终架构的基石。
学习过的单元可以堆叠起来形成一个卷积网络,或者递归连接形成一个循环网络。
单元是由N个有序节点组成的有向无环图。
每个节点 x ( i ) x^{(i)} x(i)都是一个latent representation(例如卷积网络中的特征映射),每个有向边是对 x ( i ) x^{(i)} x(i)的某种运算 o ( i , j ) o^{(i,j)} o(i,j)。
假设每个单元有两个输入节点和一个输出节点。
对于卷积单元,输入节点被定义为前两层的单元输出(Zoph et al. 2017)。
对于循环单元,输入节点被定义为当前步骤的输入以及上一步骤中的状态。
通过对所有中间节点应用reduction操作(例如concatenation)来获得单元的输出。
每个中间节点都是基于所有它之前的节点进行计算的:
x ( i ) = ∑ j < i o i , j ( x ( j ) ) x^{(i)}=\sum_{j<i}o^{i,j}(x^{(j)}) x(i)=j<i∑oi,j(x(j))
还包括一个特殊的零操作来指示两个节点之间没有连接。
因此学习的任务减少到学习其连边的操作。
2.2 Continuous Relaxation and Optimization
Let O O O be a set of candidate operations (e.g., convolution, max pooling, zero) where each operation represents some function o ( ⋅ ) o(\cdot) o(⋅) to be applied to x ( i ) x^{(i)} x(i).
To make the search space continuous, we relax the categorical choice of a particular operation as a softmax over all possible operations(把操作当作是一堆操作的softmax的结果):
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^{(i,j)}_{o})}{\sum_{o'\in O}exp(\alpha^{(i,j)}_{o'})}o(x) oˉ(i,j)(x)=o∈O∑∑o′∈Oexp(αo′(i,j))exp(αo(i,j))o(x)
where the operation mixing weights for a pair of nodes ( i , j ) (i, j) (i,j) are parameterized by a vector α i , j \alpha^{i,j} αi,j of dimension ∣ O ∣ |O| ∣O∣.
After the relaxation, the task of architecture search reduces to learning a set of continuous variables { α i , j } \{\alpha^{i,j}\} {αi,j}.
At the end of search, a discrete architecture is obtained by replacing each mixed operation o ˉ i , j ( x ) \bar{o}^{i,j}(x) oˉi,j(x) with the most likely operation, i.e., o ( i , j ) = a r g m a x o ∈ O α o ( i , j ) o(i,j) = argmax_{o\in O}~\alpha^{(i,j)}_{o} o(i,j)=argmaxo∈O
这篇关于【阅读笔记】DARTS: Differentiable Architecture Search的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!