oral oral( 二 )


oral oral

文章插图
图四:
基于强化学习的网络结构自动设计流程
值得注意的一点是,与一般的强化学习问题不同,该任务只在结束整个序列的决策后(即生成完整网络结构后)才会得到一个reward,而之前的每个决策是对应reward 。由于获得最终reward的成本非常高(需要在数据上重新训练新获得的网络结构),为了加快它的收敛,作者使用了reward shaping的技巧(如图五所示),因而训练初始阶段终止层的Q值不会过高,让算法不会在训练初始阶段倾向于生成层数过浅的网络结构 。
oral oral

文章插图
图五:
Reward shaping对收敛效率的影响
提前停止策略
虽然能够使用多种技巧来使自动化网络结构设计变的更加高效 。但是自动网络设计中耗费时间的关键还是在于每次获得reward的时间成本非常高,需要将生成的网络结构在对应的数据集上训练至收敛,然后获得相应的准确度来表示结构的好坏并且用作reward 。本文作者发现,通过调整学习率,只需要正常训练30分之一的过程(例如,CIFAR-100数据集上训练12个epoch),就可以得到网络的大致最终精度,这样可以大大降低时间成本 。但是,这样的网络结构精度及其关联的reward会有误差,导致无法精细区分网络结构的优劣,本文提出一个凭经验的解决公式:
即真实的reward和提前停止的准确度成正比,但是和网络结构的计算复杂度和结构连接复杂度(block中边数除以点数)成反比 。通过这样的公式矫正,得到的reward对网络结构的好坏更加具备可鉴别性(如图六所示) 。
oral oral

文章插图
图六:
提前停止的准确度与网络真实准确度、
计算复杂度、连接复杂度的关系
实验结果
本文使用了32个GPU,经过3天的搜索,可以在CIFAR数据集上找到性能达到目前先进水平的网络结构(如图七所示) 。
oral oral

文章插图
图七:
搜索过程以及学习得到的最优网络结构
相比之前的自动网络搜索方法(如Google NAS算法的数百块GPU以及一个月时间),BlockQNN算法可谓十分高效(如表二、表三所示) 。
oral oral

文章插图
表二:
不同自动网络结构设计算法的
计算资源对比
oral oral

文章插图
表三:
在CIFAR数据集上不同网络结构的错误率
另一方面,学习获得的网络结构也可以更容易的迁移到ImageNet任务上,取得了不错的精度(如表四所示) 。
oral oral

文章插图
表四:
在Imagenet数据集上不同网络结构的错误率
为了验证BlockQNN算法是否真的学习到了设计网络的方式,在同一搜索空间下和暴力搜索进行对比,可以发现本文提出的BlockQNN算法能获得比暴力搜索更好的模型(如图八所示) 。
oral oral

文章插图
图八:
强化学习与暴力搜索获得网络结构
在CIFAR数据集的准确率
对整个搜索过程和结果网络结构进行分析(如图九所示),本文作者发现学习得到的优异结构拥有一些共性 。比如multi-branch结构、short-cut连接方式等这些现在常用的设计思想 。同时,作者也发现了一些不太常见的结构共性,比如卷积层之间的addition操作出现的十分频繁,这些学习得到的网络结构还有待进一步的分析和研究 。
oral oral

文章插图
图九:
BlockQNN算法设计的网络结构示例
结论
【oral oral】本文提出了一种高效的基于强化学习的网路结构自动设计算法——BlockQNN,其通过“Block”的设计思想,让网络结构搜索空间大大降低,并且使得学习得到的网络具备非常强的可迁移性 。同时,本文使用“提前停止”和分布式架构来加速整个学习过程,达到了百倍于之前Google NAS算法的速度(仅需要32块GPU以及3天的训练) 。实验表明,其学习得到的网路结构在CIFAR数据集上达到人类设计网络结构的精度,并且其结构可以迁移到大规模的ImageNet数据集上,也能取得不错的性能 。作者希望朝着自动化深度学习这个目标继续发展算法,最终把人从复杂繁琐的网络设计和调参中解放出来,实现深度学习更进一步的“智能化” 。

秒懂生活扩展阅读