AUTO ML架构分析
以下理解主要是基于Google Brain的一篇论文。
近年来,越来越多人从事神经网络结构的自动化设计方面的研究,但是,大规模神经网络的生成却一直没有比较好的成果。这里基于之前在ImageNet中训练的网络VGG、Inception、ResNet等中的经验,设计了一种通用的网络架构,该网络架构由基础的卷积Cell组成。
One inspiration for the NASNet search space is the realization that architecture engineering with CNNs often identifies repeated motifs consisting of combinations of convolutional filter banks, nonlinearities and a prudent selection of connections to achieve state-of-the-art results (such as the repeated modules present in the Inception and ResNet models [59, 20, 60, 58]). These observations suggest that it may be possible for the controller RNN to predict a generic convolutional cell expressed in terms of these motifs. This cell can then be stacked in series to handle inputs of arbitrary spatial dimensions and filter depth.
这种设计就将生成神经网络结构的工作简化为搜索最佳Cell结构,并且不同数据集之间的Cell是可以通用的,在Cifar-10中训练出来的Cell可以应用于Image-Net数据集的网络结构中去,并且取得了不错的效果,是一种设计大规模神经网络的不错的方法。
NAS(Network Architecture Search)
使用NAS在一定的范围内搜索最佳的Cell结构
在NAS架构中,使用RNN作为筛选子网络的控制器,获取每个子网络处理一个特定的验证数据集的精度,每个子网络的精度数据将会被用于更新RNN构成的控制器,这样RNN就会逐渐进行学习如何对特定的数据集生成验证精度较高的子网络。
梯度更新方式如下:
核心工作
设计了一个新型的搜索空间,NAS在该空间内搜索最佳的Cell架构,命名为NASNet 搜索空间。
网络框架
作者参照大规模神经网络的设计经验,对Cifar-10和ImageNet两种不同数据集分别设计出基础架构,这两种架构都是由两种Cell拼接而成:
- Normal Cell:返回相同维度的数据
- Reduction Cell:返回的feature的长宽为输入的一半
RNN控制器的功能就是从NASNet状态空间中搜索适合数据集的最佳Cell结构。并将该Cell填充到基础架构中去,即可得到一个完整的神经网络。
NASNet 搜索空间
搜索空间中的Cell由以下五个步骤生成,每一步都可以简化为一个分类问题,即五个softmax分类器。每次RNN控制器就基于搜索空间,执行一个五维的动作,选出要添加的Cell。
下面描述下这五步的动作空间:
第一步和第二步中的状态是从现有的状态集中选择出来的。
这里第三步和第四步中的operation分为如下几种:
而对于第五步中的组合操作,有如下两种:
- 将两个隐藏状态进行简单的相加
- 将两个隐藏层中的数据连接
上述的五步操作如下图所示:
而下面是一个较为简单的例子:
训练方式
这里可以采用强化学习对RNN控制器进行训练,谷歌论文里面采用的是PPO,强化学习的要素如下:
状态集:NASNet搜索空间
动作集:生成下一步的Cell的五个动作,即Step1-Step5
回报:即生成的Cell对测试数据的测试精度