让算法解放算法工程师——NAS 综述

栏目: 数据库 · 发布时间: 6年前

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

雷锋网 (公众号:雷锋网) AI 科技评论按,本文作者陈泰红,邮箱 ahong007@yeah.net,他为雷锋网 AI 科技评论撰写了关于 NAS 的独家解读。

1. NAS 综述

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

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

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

  • 搜索空间

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

  • 搜索策略

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

  • 性能评估策略

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

让算法解放算法工程师——NAS 综述

图 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 等。

让算法解放算法工程师——NAS 综述

图 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)的深度堆叠结构。这个堆叠结构是固定的,但其中各个模块的结构可以改变。

让算法解放算法工程师——NAS 综述

图 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。

基于 NAS 的 RL 算法主要区别在于:

(a) 如何定义行动空间(在新的空间选择配置还是在修订已经存在的网络)

(b) 如何更新行动策略。Zoph et al 首先使用梯度策略更新策略 [4],并在其后的工作中使用 proximal policy optimization。Baker et al. 使用 Q-learning 更新行动策略。

在探索高维搜索空间时,基于 RL 的搜索成本非常高。NAS[4] 在使用 800 块 GPU 情况下耗时 28 天。其后续工作 [3] 使用 450 块 GPU 耗时 4 天生成简单的搜索空间。

基于进化学习的搜索方法

进化学习(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 模型(超图)的子图,子图之间通过超图的边来共享权重。一些论文直接在模型基础上添加卷积层或插入跳跃连接,参数权重可以直接复用,减少模型的运算量。

1.4  Multi-Objective NAS

以 Google 的 NAS 为基础,很多模型专注于优化模型的准确率而忽视底层硬件和设备,例如工作站,嵌入式设备和移动终端具有不同的计算资源和环境,仅考虑准确率高的模型难以在移动终端部署。

让算法解放算法工程师——NAS 综述

图 4 基于单目标 VS 多目标神经网络架构搜索算法对比

MONAS/ MnasNet/DPP-Net[12][13][14] 等模型提出基于移动端的多目标神经网络搜索算法,评价指标从准确率扩展到功耗、推断延时、计算强度、内存占用、FLOPs 等指标。如图 4 所示单目标和多目标神经网络架构搜索算法对比。

多目标神经网络架构搜索采用帕雷托最优寻找最佳解决方案。帕雷托最优来源于经济学的概念,指资源分配的一种理想状态。延伸到工程,解决方案在不降低其他目标的前提下,任何目标都能不能得到改善,则认为是帕雷托最优的。

多目标 NAS 可以分为两类:基于 RL 和基于 EA 的算法。MnasNet/ MONAS 是基于 RL 的多目标算法。本人在知乎写过一篇叫基于 MnasNet 的阅读笔记,详情可参阅: https://zhuanlan.zhihu.com/p/42474017

NAS 局限性:

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

2. AutoML概述

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

让算法解放算法工程师——NAS 综述

图 5 AutoML 开源框架全景图

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

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

让算法解放算法工程师——NAS 综述

图 6 AutoML 工作流程图

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

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

机器学习的平台化降低了 AI 产品的使用成本,最终会降低机器学习的准入门槛,但提高了个人的职业门槛。随着谷歌、亚马逊、微软、BAT 等大厂对 AI 的持续投入,调参效果和业务范围会越来越广。笔者所在的项目组经过 6 个月努力发版上线一个应用,降低了 60% 的人力成本,自动化效率提高到 80%。工业时间业务不止模型调参那么简单,需要结合很多图像数据的先验知识,随着 NAS 的发展,也许不能取代 100% 的人力成本,但是在项目团队中解放 50% 以上的算法工程师还是可行的。

以上仅为个人阅读论文后的理解、总结和思考。观点难免偏差,望读者以怀疑批判态度阅读,欢迎交流指正。

3. 参考文献

[1] Thomas. Elsken,Jan Hendrik.Metzen: Neural Architecture Search: A Survey .arXiv preprint arXiv: 1808.05377 (2018)

[2] Zhao Zhong, Zichen Yang, Boyang Deng:BlockQNN: Efficient Block-wise Neural Network Architecture Generation .arXiv preprint arXiv: 1808.05584 (2018)

[3] Zoph B, Vasudevan V, Shlens J, Le QV .Learning Transferable Architectures for Scalable Image Recognition.arXiv preprint arXiv: 1707.07012 (2017)

[4] Barret Zoph and Quoc V Le. Neural architecture search with reinforcement learning. ICLR’17,2016.

[5] Han Cai, Tianyao Chen, Weinan Zhang, Yong Yu, and Jun Wang. Efficient architecture search by network transformation. AAAI’18, 2017.

[6] Chenxi Liu, Barret Zoph, Jonathon Shlens, Wei Hua, Li-Jia Li, Li Fei-Fei, Alan Yuille, Jonathan Huang, and Kevin Murphy. Progressive neural architecture search. arXiv preprint arXiv:1712.00559, 2017.

[7] Esteban Real ,Sherry Moore,Andrew Selle , Saurabh Saxena .Large-Scale Evolution of Image Classifiers .arXiv preprint arXiv:1703.01041

[8] Yukang Chen, Qian Zhang, Chang Huang, Lisen Mu, Gaofeng Meng, and Xinggang Wang. Reinforced evolutionary neural architecture search. arXiv preprint arXiv:1808.00193, 2018.

[9] Chenxi Liu, Barret Zoph, Jonathon Shlens, Wei Hua, Li-Jia Li, Li Fei-Fei, Alan Yuille, Jonathan Huang, and Kevin Murphy. Progressive neural architecture search. arXiv preprint arXiv:1712.00559, 2017.

[10] Zhao Zhong, Junjie Yan, and Cheng-Lin Liu. Practical network blocks design with q-learning. AAAI’18, 2017.

[11] Andrew Brock, Theodore Lim, James M Ritchie, and Nick Weston. Smash: one-shot model architecture search through hypernetworks. ICLR’18, 2017.

[12] Chi-Hung Hsu, Shu-Huan Chang, Da-Cheng Juan, Jia-Yu Pan, Yu-Ting Chen, Wei Wei, and Shih-Chieh Chang. Monas: Multi-objective neural architecture search using reinforcement learning. arXiv preprint arXiv:1806.10332,2018.

[13] Jin-Dong Dong, An-Chieh Cheng, Da-Cheng Juan, Wei Wei, and Min Sun. Dpp-net: Device-aware progressive search for pareto-optimal neural architectures. arXiv preprint arXiv:1806.08198, 2018.

[14] Mingxing Tan, Bo Chen, Ruoming Pang, Vijay Vasudevan, and Quoc V Le. Mnasnet: Platform-aware neural architecture search for mobile. arXiv preprint arXiv:1807.11626, 2018.

雷锋网原创文章,未经授权禁止转载。详情见 转载须知

让算法解放算法工程师——NAS 综述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Uberland

Uberland

Alex Rosenblat / University of California Press / 2018-11-19 / GBP 21.00

Silicon Valley technology is transforming the way we work, and Uber is leading the charge. An American startup that promised to deliver entrepreneurship for the masses through its technology, Uber ins......一起来看看 《Uberland》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具