NEURAL ARCHITECTURE SEARCH WITH REINFORCEMENT LEARNING

原文链接:https://arxiv.org/pdf/1611.01578.pdf  发表:ICLR 2017

编辑:牛涛

code:https://github.com/tensorflow/models

NAS的开山之作,含金量无需多言。

其核心就是argue之前基于经验去设计结构太麻烦了,用自动化的方式生成网络结构会更有前景。

考虑到网络结构可以用一串长度可变的字符串表示,有点像是一句话,用RNN来生成似乎就顺理成章。大致框图如下

其过程有点像RL,RNN生成一个结构拿去验证得到reward,以此来更新RNN。

作者将CNN每层抽象成几个变量:filter个数、filter的长和宽、步长的长和宽。如下图

每个step的输入是之前输出过softmax的结果。

当我们生成结构后,我们训练他并得到最终精度R。然后用策略梯度的方式去跟更新RNN,如下式

类比于强化学习,在梯度上也加了个baseline降低方差

在实验中为了加速,采用了并行计算与异步更新,具体是用parameter server的方式(类似于联邦学习)

此外,考虑到GoogleNet、ResNet这种带跳接的结构,有必要增加生成网络的复杂度。为此在RNN预测每层时加了一个名为anchor point的东西,如下图

此时,第j层是否要skip到第i层由下式决定:

对于第N层,有N-1个h_j,共用一个W_{prev}W_{curr}和v,得到N-1个数值后根据这个分布去抽样决定skip的情况。不同尺度用padding来实现。

除了CNN外,文章还给出了设计recurrent cell的方法,但是这个循环cell我并没找到什么官方定义。NLP这边咱也不太懂,甩个图有兴趣自己看原文吧

实验结果:待补充

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容