虽然大多数流行和成功的模型架构都是由人工专家设计的,但这并不意味着我们已经探索了整个网络架构空间并确定了最佳选择。如果我们采用一种系统的、自动的方式来学习高性能模型体系结构,那么我们将更有可能找到最佳的解决方案。
自动学习和演化网络拓扑并不是一个新想法(Stanley & Miikkulainen, 2002)。近年来,Zoph & Le 2017和Baker等人在2017年的开创性工作吸引了神经架构搜索(NAS)领域的大量关注,为更好、更快、更经济的NAS方法带来了许多有趣的想法。
当我开始研究NAS时,我发现Elsken等人2019年的这项调查非常有帮助。它们将NAS描述为一个由三个主要成分组成的系统,简洁明了,也被其他NAS论文广泛采用。
搜索空间: NAS搜索空间定义了一组操作(例如卷积、全连接、池化)以及如何将操作连接起来形成有效的网络架构。搜索空间的设计通常涉及人类的专业知识,以及不可避免的人类偏见。
搜索算法: NAS搜索算法对网络体系结构候选对象进行采样。它接受子模型性能指标作为奖励(例如,高精度,低延迟),并优化生成高性能架构候选。
评估策略: 我们需要测量、估计或预测提出的大量子模型的性能,以获得反馈,供搜索算法学习。候选评估的过程可能非常昂贵,许多新的方法被提出来节省时间或计算资源。