这篇是发表于CVPR2019,18年2月就挂在arxiv上的论文《Efficient Neural Architecture Search via Parameter Sharing》,作者是Quoc V.Le团队,第一作者是Hieu Pham和Melody Y.Guan,甚至Jeff Dean也有挂名。
文章对之前用RL做NAS的方法进行了改进,将不同网络的参数进行共享,从而减少搜索时间。
方法
搜索空间
- 一个全连接N个节点的DAG
- 节点表示local computations,保存它自己对于不同op的参数
- 边代表flow of information
搜索方法
- 使用RL方法搜索
- 哪个edge被activated
- 每个node的computation是
RNN搜索
- sample一个activation func
- sample一个previous index和activation func
- 将所有loose节点求平均
CNN搜索
- 一个node:两个input index,两个op,结果通过add合并
训练
- 两阶段训练
- 第一阶段训练shared weights,用1 epoch的数据
- 固定controller参数,不同architectures的gradient合起来
- 第二阶段是训练LSTM,2000 steps
- R是在validation set计算
- 第一阶段训练shared weights,用1 epoch的数据
实验
- controller
- LSTM 100 hidden
- autoregressive
- PTB
- limit the size of our ENAS cell to 24M parameters
- CIFAR-10
- 310epochs
- 搜索0.5day+CutOut,2.89error
- 和随机比较
- 解释是不是因为search space的设计导致的效果好
- 去掉ENAS搜索,只用shared weights
- 比随机搜索还要差
总结
ENAS确实能大大减少搜索时间,但可能ENAS是不是可能陷入局部最优去了(weight sharing导致)?训练中的参数过多是否可以自动化?后续的DARTS就是可以解决两阶段训练的bias问题。