鸡生蛋与蛋生鸡,纵览神经架构搜索方法
作者:CQITer小编 时间:2018-08-24 09:22
从谷歌渐进式的架构搜索到 CMU 的可微架构搜索,利用神经网络自动搭建不同的神经网络架构已经受到广泛的关注。最近弗莱堡大学的研究者发表了一篇论文纵览不同的神经架构搜索方法,他们从神经网络的搜索空间、搜索策略以及性能评估策略等三个方向探讨了不同的思路与方法。

深度学习在感知任务中取得的成功主要归功于其特征工程过程自动化:分层特征提取器是以端到端的形式从数据中学习,而不是手工设计。然而,伴随这一成功而来的是对架构工程日益增长的需求,越来越多的复杂神经架构是由手工设计的。神经架构搜索(NAS)是一个自动架构工程过程,因此成为自动化机器学习的合理发展方向。NAS 可以看做 AutoML 的子领域,与超参数优化和元学习有诸多交叉之处。我们根据三个维度对 NAS 方法进行分类:搜索空间、搜索策略及性能评估策略:
搜索空间。搜索空间定义了原则上可以表征的架构。结合有关任务属性的先验知识,可以减少搜索空间的大小并简化搜索。然而,这样做会引入人类偏见,进而阻碍找到超出人类现有知识的新型架构建筑块。
搜索策略。搜索策略详细说明了如何探索搜索空间。它包含了经典的「探索-利用」权衡;一方面,我们需要快速找到性能良好的架构,另一方面,我们应该避免过早收敛到次优架构区域。
性能评估策略。NAS 的目标是找到对未知数据实现高预测性能的架构。性能评估指的是评估这类性能的过程:最简单的选项是对数据执行标准架构训练和验证,但是这样做计算成本昂贵,而且限制了可以探索的架构数量。因此,近期的研究多集中于开发降低这些性能评估成本的方法上。
上面三个方向可以参考图 1 进行说明,本文也是根据这三个维度构建的。

图 1:神经架构搜索方法图解。搜索策略从一个预定义的搜索空间

论文:Neural Architecture Search: A Survey

论文地址:https://arxiv.org/abs/1808.05377v1
1. 摘要
在过去几年中,深度学习在很多方面都取得了显著进步,比如图像识别、语音识别、机器翻译等。取得这一进展的一个关键因素是新型神经架构。目前使用的架构大部分都是由专家手动开发的,而这个过程非常耗时且易出错。正因如此,人们对于自动神经架构搜索的方法越来越感兴趣。我们对这一研究领域的现有工作进行了概述,并按照搜索空间、搜索策略和性能评估策略三个维度对其进行了分类。
2. 搜索空间
搜索空间定义了 NAS 方法在原则上可能发现的神经架构。我们现在讨论最近的研究成果中常见的搜索空间。
链式结构神经网络空间是一个相对简单的搜索空间,如图 2(左)所示。链式结构神经网络架构 A 可以写成一个 n 层序列,其中第 i 层接收第 i-1 层的输出作为输入,而第 i 层的输出则作为第 i + 1 层的输入,即 A = Ln ◦ . . . L1 ◦L0。然后将搜索空间参数化为:(i)最大层数 n 可能是无界的;(ii)每一层都可以执行的操作类型,如池化层、卷积层,或更高级的层类型,如深度可分离卷积层(Chollet, 2016)或扩张卷积层(Yu and Koltun, 2016);(iii)与操作相关的超参数,如卷积层的滤波器数、核大小和步长,或者全连接网络(Mendoza et al, 2016)的单元数。要注意(iii)中的参数要以 (ii) 为条件,因此搜索空间的参数化长度不是固定的,而是一个条件空间。

图 2:不同架构空间示意图
图2中每个节点与神经网络中的一个层对应,例如卷积层或池化层。不同类型的层由不同的颜色显示。从 L_i 到 L_j 的边缘表示 L_i 接收 L_j 的输出作为输入。图左:链式结构空间的元素。图右:具有额外的层类型、多个分支和跳跃式连接的复杂搜索空间的元素。



