NASNet
论文:Learning Transferable Architectures for Scalable Image Recognition
github:https://github.com/tensorflow/models/tree/master/research/slim/nets/nasnet
cvpr2017 google brain作品,利用强化学习,使用500块p100训练4天多得到的网络结构NASNet,不管在精度还是在速度上都超越了人工设计的经典结构。
论文贡献:
(1)设计了新的搜索空间,即NASNet search space,并在实验中搜索得到最优的网络结构NASNet
(2)提出新的正则化技术,ScheduledDropPath,是DropPath方法的改进版,可以大大提高了模型的泛化能力。
DropPath方法在训练过程中以随机概率p进行drop,该概率训练中保持不变。而ScheduledDropPath方法在训练过程线性的提高随机概率p。
文章类似resnet和inception一样,进行基本block的堆叠生成最终网络。因此搜索最优网络的时候,只搜索最优block。这样的好处,
(1)可以极大的加快搜索速度
(2)基础block对其他分类,检测问题都具有很好的泛化能力
网络整体结构:
上图分别为cifar-10和ImageNet的网络结构,由于cifar-10的网络输入为32*32,而ImageNet的网络输入为299*299,因此,ImageNet网络具有更多的模块堆叠,更大的深度。
网络结构中主要包含2个模块,Normal cell和Reduction cell。然后进行这2个模块的堆叠形成最终的网络。
搜索过程:
如上图所示,控制器RNN从搜索空间中以概率p预测网络结构A。worker单元,学习该网络直到收敛,并得到准确性R。最终将梯度p*R传递给RNN控制器进行梯度更新。
控制器依次搜索隐藏状态,隐藏状态,何种操作,何种操作,何种组合方法,这5个方法和操作的组合。其中,每种方法,每种操作都对应于一个softmax损失。这样重复B次,得到一个最终block模块。最终的损失函数就有5B个。实验中最优的B=5。
图右为根据图左得到的一个示例组合,与图左根据颜色一一对应。
其中,黄色的可选的操作包括上图所示的13种操作。
最终论文得到了3个网络结构,分别为NASNet-A,NASNet-B, NASNet-C。
NASNet-A:
NASNet-B:
NASNet-C:
搜索策略:
文章进行了布鲁斯-随机搜索(RS)和强化学习(RL)的对比,得出强化学习(红色)可以获得比随机搜索(蓝色)更好的结果。
实验结果:
从图中可以看出,不管是乘-加计算量,还是参数量,NASNet都优于目前人工设计的网络结构。
总结:
(1)延续NAS论文的核心机制使得能够自动产生网络结构,AutoML以后将会是一个非常具有潜力的研究方向,google,第四范式等都有着方面的研究。
(2)采用resnet和Inception重复使用block结构思想。
(3)利用迁移学习将生成的网络迁移到大数据集上提出新的搜索空间NASNet。
(4)提出新的正则化技术ScheduledDropPath