告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

论文为Google Brain在16年推出的使用强化学习的Neural Architecture Search方式,该方式能够针对数据集搜索构建特定的网络,但需要800卡训练一个月时间。虽然论文的思绪有许多改善的地方,但该论文为AutoML的经典之作,为后面许多的研究提供了思绪,属于里程碑式的论文,十分值得认真研读,后面读者会连续更新AutoML的论文,有兴趣的可以连续关注

泉源:晓飞的算法工程条记 民众号

论文:Neural Architecture Search with Reinforcement Learning

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

Introduction

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

  论文提出神经网络架构搜索(Neural Architecture Search),一个用于搜索架构的gradient-based方式,主要包罗4个步骤:

  1. the controller. 网络结构可能看成是可变长的字符串,因此,论文使用循环神经网络(recurrent network)来发生这样的字符串
  2. child network. 在现实数据集上训练字符串对应的网络(child network),在验证集上获得准确率
  3. prolicy signal. 将准确率作为奖励信号(reward signal),我们能盘算计谋梯度(policy gradient)来更新controller
  4. iteration. 重复步骤1-3,controller将学习到若何针对训练集构建合适的神经网络

Methods

GENERATE MODEL DESCRIPTIONS WITH A CONTROLLER RECURRENT NEURAL NETWORK

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

  假设需要发生一个仅包罗卷积层的神经网络,如图2,the controller会天生一个代表网络超参数的token序列。在实验中,当层数到达设定后,天生操作就会住手,这个设定会按设定随着训练的举行增添。对于the controller发生的网络,会举行训练并在收敛后在预留的验证集上举行测试和纪录,将准确率作为指标来优化the controller RNN的参数$\theta_c$

TRAINING WITH REINFORCE

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

  controller发生的网络可以标记为一连串action $a_{1:T}$,网络在验证集上的准确率标记为$R$,将$R$作为奖励信息,使用强化学习来训练controller最大化$R$,损失函数为准确率的期望

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

  由于$R$对于controller是不能导的($R$是自力训练发生的),需要使用强化学习的policy gradient method来更新$\theta_c$,这里接纳Williams的REINFORCE方式,通过多次采样来估算奖励期望举行梯度盘算(这里有懂强化学习的读者,可以留言讲解下这个公式)

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

  转换后,对于controller的梯度$\triangledown_{\theta_c} J(\theta_c)$就如上式所示,m为controller一次发生的网络数,T为controller发生的超参数,$R_k$为第k个网络的准确率

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

  前面的更新公式是对梯度的无偏估量,但会发生较大的方差,由于发生的网络质量不稳定,每轮的准确差异可能很大。为了削减方差,加入基底参数b,即REINFORCE with Baseline,这里的b是之前每轮网络的准确率的指数滑动平均(exponential moving average),这样就能判断当前的准确率较之前是上升了照样下降了,从而更好地更新controller。由于b与当前的iteration无关,以是公式依然是无偏估量

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

  由于网络的训练需要很长时间,论文接纳漫衍式训练以及异步更新参数的方式来加速整体流程。接纳parameter-server的结构,总共S个parameter server,K个controller,每个controller一次训练m个网络。在网络都收敛后,controller网络梯度发送给parameter server,收敛界说为训练到达设定的周期

INCREASE ARCHITECTURE COMPLEXITY WITH SKIP CONNECTIONS AND OTHER LAYER TYPES

  前面提到的网络构建不包罗现在盛行的skip-connection layer(ResNet)和branching layer(GoogleNet),论文使用Neelakan-tan提出的给予注重力极致的set-selection type attention来增添这个特征

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

  在层N添加一个anchor point隐藏层,该层输出N-1个content-based sigmoids来指示之前的层是否需要毗邻,$h_j$代表组织的网络的第j层的anchor point,$W_{prev}$ $W_{curr}$ $v$是可训练的参数,由于这些参数依然是概率漫衍,以是REINFORCE方式依然可直接使用

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

  在现实中,若是一个层包罗多个输入,会将输入举行concat操作。由于每层的输出巨细不一样,而且有的层甚至没有输入和输出,skip connection可能会出现问题,主要有以下3种应对方式:

  • 若是当前层无输入,直接将image作为输入
  • 在最后一层将所有无毗邻的输出concat作为最后的的分类器的输入
  • 当concat的输入巨细不一致时,将小的输入举行0填充至统一巨细

  最后,论文提到controller可以添加学习率等参数的展望。此外,可以增添layer type的展望,来让controller增添pooling, local contrast normalization, batchnorm等层的添加

Dubbo 扩展点加载机制:从 Java SPI 到 Dubbo SPI

GENERATE RECURRENT CELL ARCHITECTURES

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

  论文也在RNN架构搜索上举行了实验,RNN和LSTM单元(cell)可以界说为一个树状结构,将$x_t$和$h_{t-1}$作为输入,输出$h_t$。controller需要展望结构中node的合并方式(addition, elementwise, multiplication等)和激活函数(tanh, sigmoid等)来处置输入以及天生输出,然后将两个node的输出喂到下一个node中,为了利便展望,对树状效果的每一个node举行了编号
  另外,受LSTM的启发,为每个单元添加变量$c_{t-1}$和$c_t$来存储影象状态(memory state),让controller选择这两个变量划分毗邻哪个node,注重$c_{t-1}$需要合并和激活操作(Cell Inject),整体的展望步骤如下:

  • controller展望node 0的操作为$Add$和$Tanh$,$a_0=tanh(W_1 * x_t + W_2 * h_{t-1})$
  • controller展望node 1的操作为$ElemMult$和$ReLU$,$a_1=ReLU((W_3 * x_t) \odot (W_4*h_{t-1}))$
  • controller展望”Cell Index”的第二个变量为0,以及”Cell Inject”的操作为$Add$和$ReLU$,$a_0^{new}=ReLU(a_0+c_{t-1})$
  • controller展望node 2的操作为$ElemMult$和$Sigmoid$,$a_2=sigmoid(a_0^{new}\odot a_1)$
  • controller展望”Cell Index”的第一个变量为1,将$c_t$设为node 1激活前的输出

EXPERIMENTS AND RESULT

LEARNING CONVOLUTIONAL ARCHITECTURES FOR CIFAR-1

  • Search spac

  搜索空间包罗卷积操作,ReLu,batch normalization和skip connection。卷积核的长宽限制在$[1,3,5,7]$,output_num限制在$[24,36,48,64]$,步长包罗两种,一种固定为1,一种则限制在$[1,2,3]$

  • Training details

  controller为双层LSTM,每层35个隐藏单元,使用ADAM优化,学习率为0.0006。搜索的网络举行50轮训练,验证集是从训练机随机挑选的5000张样本,使用Nesterov Momentum训练,学习率为0.1。网络的层数初始为6层,每发生1600个子网络就增添2层

  • Results

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

  在训练了12800个网络后,获得了准确率最高的网络结构,之后举行小范围的超参数(learning rate,weight decay,batchnorm epsilon,epoch to decay learning rate)搜索,最后获得表1的效果:

  • 若是不展望步长和池化,能够获得一个5.5% errror rate的15-layer网络结构,这个结构准确率和层数的性价比很高,然则他的性能很慢,见Appendix,值得注重的是,这个结构包罗许多长方形和比较大的卷积核,以及包罗许多skip connections
  • 当需要展望步长时,由于搜索空间很大,搜索出的20-layer网络精度仅有6.01%
  • 最后,在允许网络在13层和24层包罗池化操作后,controller能够设计一个39-layer的网络,精度到达4.47%。为了缩小搜索空间,让模子展望13层网络,每层由全毗邻3层的3个子层组成(类似与densenet),此外,缩小卷积数目为$[6,12,24,36]$,每个大层增添40个卷积核,最终准确率到达3.74%,逾越人类设计的最好网络

LEARNING RECURRENT CELLS FOR PENN TREEBANK

  • Dataset

  RNN在Penn Treebank数据集上举行语言模子构建,举行word-level的实验,即单词展望

  • Search space

  combination method为$[add,elem_mult]$,activation method为$[identity,tanh,sigmoid,relu]$,RNN单元的输入对为8对(对应之前的node0 node 1那种),总共约莫$6\times 10^{16}$种网络结构

  • Training details

  学习率为0.0005,每个子模子训练35个epoch,每个子网络包罗两层,奖励函数为$\frac{c}{(validation perplexity)^2}$,c一样平常设为80。同样的,在搜索完结构后,需要举行超参数搜索

  • Result

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

  从表2可以看到,搜索到的网络性能到达了state-of-the-art,搜索出来的结构跟LSTM单元十分相似

  • Transfer Learning Results

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

  为了验证搜索的单元在差别义务上的通用性,在同样的数据集上举行character-level的实验,即字符展望,从结构看出,搜索的结构依然显示不错

  • Control Experiment 1 – Adding more functions in the search space

  为了验证架构搜索的鲁棒性,添加max合并方式和sin激活方式,从实验来看,虽然搜索空间变大了,但效果相差不大,效果见Appendix A

  • Control Experiment 2 – Comparison against Random Search

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

  论文举行了随机搜索的对比,只管这个方式看起来,然则现实经常很难逾越,从实验效果看来,论文提出的搜索方式不仅最好的模子要优异,整体平均都要优于随机搜索

CONCLUSION

  论文使用强化学习举行Neural Architecture Search这一创新的方式,该方式能够针对数据集搜索构建特定的网络,但搜索的资源消费伟大。从实验的历程来看,论文提出的方式照样需要添加许多人工干预的部门才气突破各个task中的state-of-the-art,而且需要十分多的盘算资源和时间,然则从意义来说,该论文开创了AutoML的序幕,为后面许多的研究提供了思绪,十分值得认真研读

参考内容

A APPENDIX

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017



若是本文对你有辅助,贫苦点个赞或在看呗~
更多内容请关注 微信民众号【晓飞的算法工程条记】

告辞炼丹,Google Brain提出强化学习助力Neural Architecture Search | ICLR2017

原创文章,作者:28x29新闻网,如若转载,请注明出处:https://www.28x29.com/archives/2901.html