【论文笔记】Efficient Neural Architecture Search via Parameter Sharing

【论文笔记】Efficient Neural Architecture Search via Parameter Sharing

  • Methods
    • Designing Recurrent Cell(设计循环单元)
    • Training ENAS and Deriving Architectures(训练ENAS和衍生架构)
    • Designing Convolutional Networks(设计卷积网络)
    • Designing Convolutional Cells(设计卷积单元)
  • Experiments
    • Language Model with Penn Treebank(用Penn Treebank数据集进行语言建模)
    • Image Classification on CIFAR-10(用CIFAR-10数据集进行图像识别)
  • Conclusion

本文中作者提出了ENAS,是一种快速且廉价的自动模型设计方法。ENAS中,控制器通过在大型计算途中搜索最佳子图来搜索神经架构;同时通过在子模型间的参数空降大大降低了计算开销。这项工作的主要贡献在于,通过强制所有子模型共享权重来避免从头到尾地训练每个子模型,从而提高了NAS的效率。

Methods

ENAS概念的核心是,NAS最终迭代所得的所有图都可以看作是较大图的子图。换句话说,我们可以使用单个有向无环图(DAG)表示NAS的搜索空间。如下图所示,图中的节点表示局部计算,边表示信息流:
【论文笔记】Efficient Neural Architecture Search via Parameter Sharing_第1张图片

Designing Recurrent Cell(设计循环单元)

ENAS的控制器是一个RNN,它决定:1)激活哪些边,以及2)在DAG中的每个节点上执行了哪些计算。为了创建一个循环单元,控制器RNN对N个决策块进行采样,如下图所示:
【论文笔记】Efficient Neural Architecture Search via Parameter Sharing_第2张图片
在上述例子中,注意到每一对节点j 搜索空间中的配置数量为指数级。具体来说,循环单元中有N个节点,允许4个激活函数,搜索空间中会有4^N×N!个配置,即搜索空间中有这么多个子模型。

Training ENAS and Deriving Architectures(训练ENAS和衍生架构)

本文中的控制器是具有100个隐藏单元的LSTM。在ENAS中有两组可学习的参数:控制器LSTM的参数(用θ表示)和子模型的共享参数(用ω表示)。ENAS的训练过程由两个阶段交替进行。第一个阶段训练ω,第二个阶段训练θ,两个阶段在ENAS的训练中交替进行。

Designing Convolutional Networks(设计卷积网络)

在卷积模型搜索空间中,控制器同样在每个决策块上采样两组决策:1)要连接到哪些先前节点; 2)使用什么计算操作。如下图所示:
【论文笔记】Efficient Neural Architecture Search via Parameter Sharing_第3张图片
要连接到那些先前节点这个决策允许模型形成残差连接,如对于上图中的节点4,控制器所选择的连接的先前节点为1和3。

Designing Convolutional Cells(设计卷积单元)

与其设计整个卷积网络,不如设计较小的模块然后将它们连接起来形成一个网络。如下图所示,其中需要设计卷积单元和压缩单元。

【论文笔记】Efficient Neural Architecture Search via Parameter Sharing_第4张图片
用带有B个节点的ENAS计算DAG来表示在一个单元内发生的计算。在这个DAG中,节点1和节点2被视为两个先前的节点的输出,本节点的输入。对于剩余的B-2个节点,控制器RNN做两组决策:1)选取两个先前节点用作当前节点的输入,2)两项操作将应用于这两个被采样的节点。如下图所示:
【论文笔记】Efficient Neural Architecture Search via Parameter Sharing_第5张图片
通过之前讨论的搜索空间来实现压缩单元:1)从搜索单元采样计算图,2)执行所有计算时将步幅设置为2。因此压缩单元可以将其输入空间的尺寸缩小2倍。

Experiments

Language Model with Penn Treebank(用Penn Treebank数据集进行语言建模)

下表中显示了ENAS单元的表现和其他没进行训练后处理的基准:
【论文笔记】Efficient Neural Architecture Search via Parameter Sharing_第6张图片
ENAS实现了55.8的测试复杂度与通过Softmaxes混合(MoS)实现的最先进水平56.0相当。重要的是,ENAS相比于NAS提升了6个点但训练时间快了1000倍。ENAS所发现的结构如下图所示:
【论文笔记】Efficient Neural Architecture Search via Parameter Sharing_第7张图片

Image Classification on CIFAR-10(用CIFAR-10数据集进行图像识别)

下表总结了ENAS和其他方法的测试误差:
【论文笔记】Efficient Neural Architecture Search via Parameter Sharing_第8张图片
ENAS找到了一种网络架构,实现了4.23%的测试误差,如下图所示:
【论文笔记】Efficient Neural Architecture Search via Parameter Sharing_第9张图片

Conclusion

NAS是神经网络设计过程自动化一个重要进步。然而,NAS的就算开销使它无法被广泛采用。本文中作者提出了ENAS,这种方法可以将NAS的速度提供1000倍以上。ENAS的主要贡献是在搜索架构期间,共享子模型的参数。

你可能感兴趣的:(【论文笔记】Efficient Neural Architecture Search via Parameter Sharing)