NAS介绍--在搜索空间中通过某种搜索策略得到子网络结构,评估优劣并优化

NAS 综述

AutoML(automated machine learning)是模型选择、特征抽取和超参数调优的一系列自动化方法,可以实现自动训练有价值的模型。AutoML 适用于许多类型的算法,例如随机森林,gradient boosting machines,神经网络等。 机器学习最耗费人力的是数据清洗和模型调参,而一般在模型设计时超参数的取值无规律可言,而将这部分过程自动化可以使机器学习变得更加容易。即使是对经验丰富的机器学习从业者而言,这一自动化过程也可以加快速度。

Deep learning 实现端到端的的特征提取,相对于手工提取特征是一个巨大的进步,同时人工设计的神经网络架构提高了神经网络的复杂度。

随着技术的发展,Neural Architecture Search (NAS) 实现神经网络可以设计神经网络,代表机器学习的未来方向。NAS 是 AutoML 的子领域,在超参数优化和元学习等领域高度重叠。NAS 根据维度可分为三类:搜索空间、搜索策略和性能评估策略。(本文仅总结 NAS 在 CV 领域的应用,NLP 的应用将另写综述)。

搜索空间

搜索空间原则上定义了网络架构。对于一个任务,结合相关属性的先验知识可以缩小搜索空间的大小并简化搜索。但是同时也引入了人类偏见,这可能妨碍发现超越当前人类知识的新颖架构模块。

搜索策略

搜索策略定义了使用怎样的算法可以快速、准确找到最优的网络结构参数配置。

性能评估策略

因为深度学习模型的效果非常依赖于训练数据的规模,通常意义上的训练集、测试集和验证集规模实现验证模型的性能会非常耗时,所以需要一些策略去做近似的评估。

图 1 网络架构搜索方法

1.1 搜索空间

搜索空间,顾名思义,代表一组可供搜索的神经网络架构。

搜索空间根据网络类型可以划分为链式架构空间、多分支架构空间、cell/block 构建的搜索空间。根据搜索空间覆盖范围可分为 macro(对整个网络架构进行搜索)和 micro(仅搜索 cell,根据 cell 扩展搜索空间)。

1. 第一种搜索空间是链式架构空间(图 2 左图所示)。链式架构空间的每一层输出都是下一层的输入。搜索空间包括以下参数:

(1)网络最大层数 n。(2)每一层的运算类型:池化、连接、卷积(depthwise separable convolutions,dilated convolutions、deconvolution)等类型。(3)运算相关的超参数:滤波器的大小、个数、 strides 等。(4)激活函数:tanh,relu,identity,sigmoid 等。

图 2 链式架构空间(左图)与多分支架构空间(有图)

2. VGG19 等模型已经证明直筒的链式结构容易造成梯度弥散,卷积网络无法使层数更深。ResNet 和 DenseNet 等引入的跳跃连接和密集连接,使得更深的网络成为可能。目前很多论文的实验数据也证实多分支架构空间可以实现更高精度(代价是搜索空间呈指数级别增加)。图 2 右图所示为多分支架构空间连接示意图。

3. 基于基本的 cell/block 构建的搜索空间。

很多神经网络结构虽然很深,但会有基本的 cell/block,通过改变 cell/block 堆叠结构,一方面可以减少优化变量数目,另一方面相同的 cell/ block 可以在不同任务之间进行迁移。BlockQNN[2] 结合 Inception blocks 和 residue blocks,设计 block 模块,通过堆叠 block 设计搜索空间。Zoph et al[3] 设计两类 cells:normal cell 和 reduction cell (normal cell 不改变输入 feature map 的大小的卷积,而 reduction cell 将输入 feature map 的长宽各减少为原来的一半的卷积,通过增加 stride 的大小来降低 size),通过构建重复模块(cells)的深度堆叠结构。这个堆叠结构是固定的,但其中各个模块的结构可以改变。

图 3 基于 cell/block 构建的搜索空间

Cell 作为基本单元,也可以固定不变。PNAS[9] 学习的是单一一种 cell 类型,而没有区分 Normal cell 和 Reduction cell.

1.2 搜索策略

搜索算法通常是一个迭代过程,定义了使用怎样的算法可以快速、准确找到最优的网络结构参数配置。常见的搜索方法包括:随机搜索、贝叶斯优化、进化算法、强化学习、基于梯度的算法。其中强化学习和进化学习是主流算法,也是本章节重点介绍对象。

在搜索过程的每个步骤或迭代中,从搜索空间产生“样本”形成一个神经网络,称为“子网络”。所有子网络都在训练数据集上进行训练,然后将它们在验证数据集上的准确性视为目标(或作为强化学习中的奖励)进行优化。搜索算法的目标是找到优化目标的最佳子网络,例如最小化验证损失或最大化奖励。

基于强化学习的搜索方法

基于强化学习(reinforcement learning ,RL)的方法已经成为 NAS 的主流方法[4]。RL 有四个基元:agent, action,environment 和 reward. 强化学习是通过奖励或惩罚(reward)来学习怎样选择能产生最大积累奖励的行动(action)的算法。

NAS 的核心思想是通过一个 controller RNN 在搜索空间(search space)中得到一个子网络结构(child network),然后用这个子网络结构在数据集上训练,在验证集上测试得到准确率,再将这个准确率回传给 controller,controller 继续优化得到另一个网络结构,如此反复进行直到得到最佳结果,整个过程称为 Neural Architecture Search。

 

基于进化学习的搜索方法

进化学习(Evolutionary algorithms ,EA)为了达到自动寻找高性能的神经网络结构,需要进化一个模型簇(population)。每一个模型,也就是个体(individual),都是一个训练过的结构。模型在单个校验数据集(validation dataset)上的准确度就是度量个体质量或适应性的指标。

在一个进化过程中[7],工作者(worker)随机从模型簇中选出两个个体模型;根据优胜劣汰对模型进行识别,不合适的模型会立刻从模型簇中被剔除,即代表该模型在此次进化中的消亡;而更优的模型则成为母体(parent model),进行繁殖;通过这一过程,工作者实际上是创造了一个母体的副本,并让该副本随机发生变异。研究人员把这一修改过的副本称为子代(child);子代创造出来后,经过训练并在校验集上对它进行评估之后,把子代放回到模型簇中。此时,该子代则成为母体继续进行上述几个步骤的进化。

简言之,该进化算法就是在随机选出的个体中择其优,因此该方法也属于联赛选择算法(tournament selection)的一种。

另外,如无其他说明,模型簇一般能容纳 1000 个个体,工作者的数量一般是个体数量的 1/4,而消亡个体的目录会被删除,以保证整个算法能长时间在有限空间中运行。

进化学习的一个缺点是进化过程通常不稳定,最终的模型簇质量取决于随机变异。Chen et al[8] 提出通过 RL 控制器确定变异替代随机变异,稳定搜索过程。

Chenxi Liu et al.[9] 使用了基于序列模型的优化(SMBO)策略,按复杂度逐渐增大顺序搜索架构,同时学习一个用于引导该搜索的代理函数(surrogate function),类似于 A* 搜索。

1.3 性能评估策略

性能评估策略是实现搜索加速的过程。基于强化学习、进化学习等搜索策略,为了引导搜索空间,每个子网络都需要训练和评估。但是训练每个子网络需要巨大的资源消耗(比如 NAS[4] 需要 2000 GPU*天)。通常加速 NAS 的方法是通过训练后再查找近似度量的方式(例如减少训练 epochs,简化评估数据集 [3][4]、使用低分辨率图像、每一卷积层使用更少的滤波器)。本章节介绍两种更优的类型:(a) 代理度量 improved proxy;(b) 权值共享 weight-sharing。

1. 使用代理度量时,子网络之间的相对排名需要保持与最终模型准确率相关。Zhong et al.[10] 提出 FLOPS、子模型的 model size 与最终模型准确率负相关,介绍一种应用于奖励计算的修正函数,子网络的准确性可以通过提前训练停止获得,弥合代理度量和真实准确率的差距。有些算法提出通过预测神经网络模型的准确率、学习曲线、验证曲线等来改进代理度量,预测准确率低/学习曲线差的子网络暂停训练或直接放弃。

2. 权值共享。

子网络直接继承已经训练好的模型权重参数,可以显著降低模型的运算量 [7]。One-Shot 架构搜索 [11] 将所有架构视作一个 one-shot 模型(超图)的子图,子图之间通过超图的边来共享权重。一些论文直接在模型基础上添加卷积层或插入跳跃连接,参数权重可以直接复用,减少模型的运算量。

 

NAS 局限性:

NAS 的搜索空间有很大的局限性,目前 NAS 算法仍然使用手工设计的结构和 blocks,NAS 仅仅是将这些 blocks 堆叠。NAS 还不能自行设计网络架构。NAS 的一个发展方向是更广泛的搜索空间,寻找真正有效率的架构,当然这也对搜索策略和性能评估策略提出更高的要求。

2. AutoML概述

构建一个典型的机器学习项目,一般分成以下步骤:收集原始数据(标注数据)、清洗数据、特征工程、模型构建、超参数调优、模型验证和模型部署。整个过程中,模型构建最能体现创造力,而最耗时的,要数特征工程和超参数调优。

AutoML 框架能帮助算法工程师减轻负担,降低特征工程和超参数调优的工作量,NAS 可以完成模型的构建,基于 AutoML 的一揽子解决方案

AutoML 抽象所有 deep learning 的复杂过程,所需要的仅仅是数据。目前互联网巨头已经在很多行业提供 AutoML 服务,如微软的 CustomVision.AI、谷歌 Cloud AutoML、中科院的 BDA 系统、阿里 PAI 等。这些平台仅仅需要上传数据,AutoML 实现深度学习的训练、调优、云服务等,当然现在还是半自动化的人工参与状态,全自动化的 AutoML 是未来发展方向

阿里的 PAI Studio 汇集了阿里集团大量优质分布式算法,包括数据处理、特征工程、机器学习算法、文本算法等,可高效完成海量、亿级维度数据的复杂计算,给集团业务带来更为精准的洞察力。

AutoML Vision 是 Cloud AutoML 这个大项目推出的第一项服务,提供自定义图像识别系统自动开发服务。根据谷歌介绍,即使是没有机器学习专业知识的的小白,只需了解模型基本概念,就能借助这项服务轻松搭建定制化的图像识别模型。只需在系统中上传自己的标签数据,就能得到一个训练好的机器学习模型。整个过程,从导入数据到标记到模型训练,都可以通过拖放式界面完成。除了图像识别,谷歌未来还计划将 AutoML 服务拓展到翻译、视频和自然语言处理等领域。目前 Cloud AutoML 的费用是 20 美金/小时,相当于国内算法工程师的时薪。

机器学习的平台化降低了 AI 产品的使用成本,最终会降低机器学习的准入门槛,但提高了个人的职业门槛。随着谷歌、亚马逊、微软、BAT 等大厂对 AI 的持续投入,调参效果和业务范围会越来越广

https://baijiahao.baidu.com/s?id=1611850335583710710&wfr=spider&for=pc

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值