本文是对《Neural Architecture Search: A Survey》文献的翻译并结合自己的理解对文章主要内容进行总结。由于在翻写这篇Survey的时候,涉及到的很多文章还没有细读,文中如有理解或文字方面的错误,忘大家指正。由于本文的布局和原文一致,所以相关的参考文献请在原文对应位置查找。
1. Interoduction
深度学习在很多任务上取得了优异的成绩。随着对网络结构的人工设计,网络取得的效果越来越好。Neural Architecture Search(NSA)旨在自动学习网络结构,属于对自动机器学习更进一步的合理拓展。此篇Survey将NSA按照search space(搜索空间), search strategy(搜索策略), and performance estimation strategy(性能评估策略) 将现有文章分类总结。
search space:
search space 决定了哪些结构可以加到最后的网络中。预先设定好适合当前任务的结构能够有效的减小搜索空间并简化搜索。但同时可能引入人的偏好,限制了网络学习到超越人类知识的结构。
search strategy:
search strategy 决定如何利用search space 。一方面他需要快速找到性能良好的框架,另一方面,他要避免过早收敛到次优草地框架。
performance estimation strategy:
NSA的目的是找到一个在没见过的数据上也能达到很好性能的框架。performance estimation顾名思义就是对模型的性能进行评估。一个很简单的方法就是像之前是深度学习结构一样对模型进行训练并验证其性能。但是这很明细很耗时并且限制了可探索的网络结构。现今很多研究关注于减小性能评估时的代价。
上述三者之间的关系可以由Figture 1 来表述。
2. Search Space
search space 定义了NAS方法可以搜索的结构。下面讨论最近的工作中常用到的搜索空间。
一种比较简单的搜索空间是如Figure 2 左侧的链式搜索空间。第 i 层从第 i-1 层获取输入,并未将其输出提供给第 i+1 层作为输入。如此,搜索空间可以参数化为:
(i)最大层数n(可能对此不做限制);
(ii)每层的操作(也叫每层的类型),如池化、卷积、深度可分离卷积、扩张卷积等;
(iii)每层的超参数,如卷积层的滤波器的数量、kernel的尺寸、步长或者全连接层神经元的数量。
此种情况下需要注意的是:每层的超参数和每层的类型的相关的,所以此时的搜索空间并不是固定长度的,属于条件化的参数。
NAS最近的工作引入了诸如 skip connect (跳跃链接)这样的结构,这使得能够构建如Figture 2 右图所示的 更复杂的 multi-branch(多支路)网络。这种结构下,第 i 层将前面所有层(0,1,2,...,i-1)的结合体作为输入。 这种结构使得搜索的自由度显著的增大。链接结构网络、残差网络、denseNet 可以视为这种网络结构下的特例。
现有的人工设计网络多由重复的单元组成,故部分研究者提出搜索这样的