《Learning Transferable Architectures for Scalable Image Recognition》论文阅读笔记

NASNet

 这篇文章出自Google Brain,是对他们之前发表在ICLR2017的论文《Neural Architecture Search with Reinforcement Learning》的改进,而这篇文章则发表在了CVPR 2018。原文可见Learning Transferable Architectures for Scalable Image Recognition


摘要

 因为在大数据上搜索网络构建块代价比较大,所以这篇文章提出先在小数据集CIFAR-10上进行搜索,然后再迁移到大数据集ImageNet上去。这篇文章关键的贡献在于设计了一种新的搜索空间也即NASNet搜索空间。不像之前的工作直接搜索整个网络结构,这篇文章是先搜索一个最好的网络层(或者cell)然后再将其堆叠起来构建网络。另外文章中还提出了一种新的正则化技术ScheduledDropPath以提高NASNet模型的泛化能力。从结果上来看,搜索得到的NASNet在CIFAR-10上实现了SOTA,迁移到ImageNet上后也实现了SOTA。最后就是NASNet学到的特征也可以迁移到其他任务上,比如在目标检测上同样超过了SOTA。

1. 引言

 这篇文章研究了一种新的卷积结构设计范式,并描述了一种优化卷积结构的可扩展方法。作者认为直接将NAS或任何其他搜索方法应用于大型数据集的计算代价比较昂贵,所以文章建议先在一个代理数据集(例如较小的CIFAR-10数据集)上搜索一个好的体系结构,然后再迁移到ImageNet这样的大数据集上去。作者通过设计一个NASNet搜索空间来实现这种可迁移性,使得体系结构的复杂性与网络的深度和输入图像的大小无关。更具体地说,搜索空间中的所有卷积网络都是由具有相同结构但不同权重的卷积层(或cell)组成的。因此,搜索最佳卷积结构被简化为搜索最佳cell结构。这么做的优势在于比搜索整个网络结构快得多,而且更容易泛化到其他问题上去。

2. 相关工作

  • 超参数优化
  • 进化算法
  • LSTM,NAS cell
  • VGG、Inception、ResNet/ResNeXt、Xception/MobileNet

3. 方法

 这篇文章采用的主要搜索方法还是他们前一篇文章《Neural Architecture Search with Reinforcement Learning》提出的如图1所示的NAS框架。其中控制器为一个RNN以采样不同结构的子网络。通过训练子网络直至收敛得到在验证集上的精度,用此精度更新控制器,从而控制器随着时间的推移可以生成更好的体系结构。这里控制器权重使用策略梯度(policy gradient )进行更新。


图1. NAS框架

 这项工作的主要贡献是设计了一个新的搜索空间(作者称之为NASNet搜索空间),以便在CIFAR-10数据集上找到的最佳架构可以扩展到更大、更高分辨率的图像数据集上去。至于NASNet搜索空间的灵感来源,则是因为SOTA的CNN架构设计往往是由重复的motifs组成的,包括卷积滤波器组、非线性以及谨慎选择的连接的一个组合,比如ResNet中的残差模块,Inception中的Inception模块等。这些观察表明,控制器RNN可能预测用这些motifs表达的一般卷积cell。这个cell可以串联起来处理任意空间尺寸和滤波器深度的输入。本文的方法中,卷CNN的总体架构是手动预先确定的,它们由多次重复的卷积cell组成,每个卷积cell具有相同的结构,但权重不同。文中也提出了两种cell,分别是Normal Cell和Reduction Cell,其实就是一个不用于下采样一个用于罢了。

 如图2所示,以CIFAR-10和ImageNet为例给了两种结构,因为ImageNet的图片尺寸更大,所以用了更多的Reduction Cell。而且每当空间尺寸减小时,输出中的滤波器数量加倍,以保持大致恒定的隐藏状态维。重要的是,文中将motif重复次数N和初始卷积滤波器的数量视为自由参数(人为事先指定的),可以根据图像分类问题的规模进行调整。


图2. 用于图像分类的可扩展架构包括两个重复的motifs,分别称为Normal Cell和Reduction Cell。 该图突出显示了CIFAR-10和ImageNet的模型架构。 实验中,Normal Cell在Reduction Cell之间堆叠的次数N的选择可能会有所不同。

图3. NASNet搜索空间示意图。网络motifs以递归方式分阶段构造,称为块。每个块由控制器选择一对隐藏状态(深灰色)、对这些隐藏状态执行的操作(黄色)和组合操作(绿色)组成。生成的隐藏状态保留在后续块上要选择的潜在隐藏状态集中。

 所以实际中改变的就只是Normal和Reduction Cell的结构罢了,这个正好可以用RNN进行搜索。cell的结构可以在如下定义的搜索空间内搜索(示意图如图3所示)。在搜索空间中,每个cell都接收到两个初始隐藏状态 h i h_{i} h i 1 h_{i-1} 作为输入,它们是前两个较低层或输入图像中两个cell的输出。给定两个初始隐藏状态(图4),控制器RNN递归地预测卷积cell的其余结构。每个单元的控制器预测分为B个块,其中每个块具有5个预测步骤,这些预测步骤由5个不同的softmax分类器进行,这些分类器对应于块元素的离散选择:
Step 1. h i h_{i} h i 1 h_{i-1} 或在先前块中创建的隐藏状态集中选择隐藏状态。
Step 2. 从与Step 1相同的选项中选择第二个隐藏状态。
Step 3. 选择要应用于在Step 1中选择的隐藏状态的操作
Step 4. 选择要应用于在Step 2中选择的隐藏状态的操作
Step 5. 选择一种方法来组合Step 3和4的输出以创建新的隐藏状态


图4. 用于递归构造卷积cell的一个块的控制器模型体系结构。 每个模块需要选择5个离散参数,每个参数对应于softmax层的输出。 右侧显示的示例构造块。 卷积cell包含B个块,因此控制器包含5B个softmax层,用于预测卷积cell的体系结构。实验中,B=5。

 该算法将新创建的隐藏状态附加到现有的隐藏状态集,作为后续块中的潜在输入。控制器RNN将上述5个预测步骤重复B次,对应于卷积cell中的B个块。在步骤3和4中,控制器RNN选择要应用于隐藏状态的操作从下面的操作中选择:


 在步骤5中,控制器RNN选择一种方法来组合两个隐藏状态,或者(1)两个隐藏状态之间的element-wise相加,或者(2)沿滤波器维度两个隐藏状态之间的级联。为了使控制器RNN能够同时预测Normal Cell和Reduction Cell,只需使控制器总共有2×5B个预测,其中第一个5B预测用于Normal Cell,第二个5B预测用于Reduction Cell。最后,这项工作还是用了之前工作用到的强化学习方案。

4. 实验

 首先所有架构搜索都是在CIFAR-10分类任务上进行的。然后跟前一篇论文一样,还是用近端策略优化(PPO)训练RNN。实验用500个GPU(P100)跑了超过4天(一个字,壕!!!),比之前论文里的800个GPU(K40)28天相比快了7倍,然而一般人还是玩不起。。。

 如图5所示是搜索得到的Normal Cell和Reduction Cell,可以看到深度可分离卷积的大量使用。


图5. 用CIFAR-10确定的B = 5个块的最佳卷积cell(NASNet-A)的体系结构。每个卷积单元都是B个块的结果。 单个块对应于两个基本操作(黄色)和一个组合操作(绿色)。

 在学习了卷积cell之后,可以探索几个超参数来为给定任务构建最终网络:(1)cell重复次数N和(2)初始卷积cell中的滤波器数。 选择初始滤波器的数量之后,只要stride为2,就将滤波器的数量加倍。

 然后作者在训练NASNet时,又发现了ScheduledDropPath,作为DropPath的一个改进版本,是NASNet的一种有效的正则化方法。在Drop-Path中,训练过程中每条路径以固定的概率被随机丢弃。 在这个改进版本的ScheduledDropPath中,单元中的每个路径则以一个在训练过程中呈线性增加的概率被丢弃。

4.1 CIFAR-10分类任务结果

 如表1所示是实验结果,可以看到带cutout的大模型NASNet-A实现了SOTA的准确率。


表1. 在CIFAR-10上NAS和其他SOTA模型的性能。 NASNet的所有结果均为5次运行的平均准确度。

4.2 ImageNet分类任务结果

 作者强调他们还是是使用了CIFAR-10上的最优网络,只是在ImageNet上从头重新开始训练。表2、表3和图6分别展示了结果。基本上NASNet都实现了新的SOTA(不管是大模型亦或是轻量级模型),也实现了更好的trade-off。


表2. 在ImageNet分类上的NAS和其他已发布的SOTA模型的性能。

表3. 在受限计算资源下运行的模型子集上的ImageNet分类性能。

图6. 在ImageNet 2012 ILSVRC挑战预测任务中,各顶级CNN架构的精度与计算需求(左)和参数数量(右)之间的关系。

4.3 改进的目标检测特征

 作者继续把得到的NASNet-A并进Faster-RCNN的框架中,结果如表4所示,同样实现了SOTA的结果。


表4. 基于mini-val和test-dev数据集的COCO目标检测性能。

4.4 架构搜索方法的效率

 文章还研究了强化学习在CIFAR-10图像分类问题上用于架构搜索的有效性,并将其与暴力随机搜索进行了比较(基于等量计算资源)。结果如图7所示,用RL获得的最佳模型明显优于RS发现的最佳模型。


图7. 比较随机搜索(RS)和强化学习(RL)在学习神经体系结构上的效率。

5. 总结

 本文提出的方法的关键见解是设计一个搜索空间,该空间将架构的复杂性与网络的深度分离。 由此产生的搜索空间可以在小型数据集(即CIFAR-10)上识别出良好的架构,并将学习到的架构迁移到一系列具有不同数据和计算规模的图像分类任务中去。与人工设计的架构相比,最终的架构在CIFAR-10和ImageNet数据集中的性能都达到或超过了SOTA的性能。同时,可以以更少的计算预算使用学习到的架构来执行ImageNet分类,并且超过了针对移动和嵌入式平台的简化架构。


个人看法

 这篇论文算是NAS的一篇比较有影响力的文章,其减少所需搜索资源的思路比较值得学习,主要就是通过NAS学习一个最优的cell,然后将学习到的cell堆叠成深的神经网络,从而得到SOTA的结果。当然,这个方法还是用500个GPU跑了超过4天,普通玩家还是玩不起。。。后面会再讲讲搜索速度更快的NAS方法。

发布了68 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/JR_Chan/article/details/104783969
今日推荐