社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【AutoML】自动机器学习求解三要素与发展趋势

产业智能官 • 5 年前 • 1335 次点击  

机器之心整理

演讲者:涂威威

在市北•GMIS 2019 全球数据智能峰会上,第四范式资深算法科学家涂威威发表主题演讲《自动机器学习技术回顾与展望》,在演讲中,他为听众详细介绍了自动化机器学习求解的三要素与发展趋势。

以下为涂威威在市北•GMIS 2019 全球数据智能峰会上的演讲内容,机器之心进行了不改变原意的编辑、整理:



大家好,非常感谢机器之心的邀请。今天来跟大家分享的主题是自动机器学习技术的回顾和展望。在介绍自动机器学习之前,先介绍下机器学习。机器学习的经典定义,是计算机程序利用经验(数据)来改善系统性能。目前,机器学习在推荐系统、在线广告、金融市场分析、计算机视觉、语言学、生物信息学等诸多领域都取得了成功,在这些成功的应用范例中,人类专家参与了绝大多数的工作。Google、Facebook、百度、阿里巴巴、腾讯等科技公司依靠其顶尖的机器学习专家团队来支撑机器学习在企业内部的各种应用。但是,并非所用公司在拥有数据之后,都可以像这些巨头公司一样应用 AI,并改善性能,实现数据驱动增长的新模式。


原因在于机器学习是一个非常复杂的技术,且应用的门槛非常高。机器学习的阶段包括了定义问题、收集数据、数据预处理、特征工程、模型训练,模型评估,模型应用等过程,搭建整套机器学习流程往往超出了非机器学习专家的能力范围。机器学习专家对机器学习技术的成功应用至关重要。机器学习的成功应用需要复合型的专家人才,他既需要了解机器学习理论知识,另外还需要对行业有深入了解,这样的人才培养周期特别长,且不具有可复制性。由于机器学习专家的缺口太大,人才短缺,人才抢夺激烈,专家团队的管理成本高昂和专家经验不可复制等原因,很多传统企业、中小型企业和一般的科研机构,就很难组建专业的机器学习专家团队,从而阻碍了机器学习在各行各业广泛落地。


解决这样的问题,我们要把机器学习这个技术变得平民化,让很多人可以用起来。这里面有一个关键的技术就是自动机器学习。这个技术背后的逻辑用机器替代人,替代原来机器学习专家做的事情,从而在应用 AI 的过程中降低对专家的依赖。


自动机器学习求解的三要素


自动机器学习的定义就是试图在有限的资源限制和没有人为辅助的情况下自动找到解决目标问题的尽可能优的机器学习配置。自动机器学习求解有三个要素,第一个是机器学习到底有哪些配置,它的配置空间是什么;第二个是有了配置之后,我们如何评估配置的性能;第三个是有了配置空间定义和配置性能评估方法之后,如何高效的找到这些任务。因此,总结自动机器学习三个核心的要求,就是配置空间、配置的性能评估、配置的优化策略。



首先是配置空间,以经典机器学习过程为例,大多有三个核心步骤:数据预处理、特征处理和模型训练。数据预处理囊括了数据清洗、类型推断、样本选择、样本增强等。特征处理主要分为特征生成、特征选择两块,其中有各自不同的多种多样的方法。在模型训练方面,需要选择各种各样的模型算法,每个模型算法还需要对相应的学习参数进行调整。所以对自动机器学习而言,需要解决所有这些配置问题。可以看到这是一个随着配置数目指数增长的超大搜索空间。有了配置之后,需要对这个配置进行评估。机器学习最重要的指标是泛化性,就是要关注未来模型被应用到的样本上的性能。目前一般的性能估计算法是把数据切成训练集和测试集,利用训练集构建完模型,在测试集上进行验证,评估模型的泛化性能,但整个流程是非常漫长的。对于评估配置而言,整个评估的代价非常高。



现在有一些加速版本,比如可以进行采样,或是提前停止以及利用参数共享的方式来提升配置性能评估的速度。也有一些方法是训练一个替代模型,给定数据和配置之后,利用诸如元学习等方法去预测该配置可能的性能,能够更进一步提升性能评估速度。有了性能评估方法之后,就需要找一些方法,能够快速地在配置空间寻找一个在性能度量下尽可能好的配置,就是配置优化的问题。这个优化问题相比传统的优化问题很不一样:它要优化的函数一般无法写出解析表达式,优化搜索空间巨大,函数计算代价也很大。


自动机器学习最经典的解法会尝试用基础搜索:网格搜索和随机搜索等方法去优化。这种方法非常简单,在实际应用中也很广泛,但是这类方法不会利用目标问题的特性,对于所有的问题都是一样的解法。还有一类更聪明的利用待解问题特性的方法:基于采样的方法。这类方法首先在配置空间里面采到一个点,然后进行评估并获得反馈,这个反馈慢慢地对要解的问题有更深的认识,可以利用问题特性更快地找到更适合的点。这里面有很多经典的方法,比如说像基于模型的零阶优化(比如贝叶斯优化、随机坐标收缩等)、局部搜索、启发式算法、强化学习等等。如果最终目标可以写出一个配置及其验证集效果之间解析表达式,那就可以利用基于梯度的方法更快速的进行优化,比如双层优化方法等,但是这类方法要求配置及验证集之间的关系可以写出解析表达式,这在实际应用中往往是不成立的,所以这类方法应用并不广泛。



我们结合自动机器学习技术的三个典型例子来看,每个例子里面这三要素是如何配合并优化的。


自动机器学习之——多保真度超参数优化


第一个是超参数搜索,它的配置空间是模型训练的超参数,配置的优化策略一般会采用基于采样优化,比如贝叶斯优化或者随机坐标收缩方法等。我们在前面提到,这里面比较关键的问题是每次做超参数(配置)性能评估的时候,需要把整个模型重新训练一遍,时间非常长。一种简单的加速做法是把这个数据进行采样,在很小的样本上面进行评估,或者采用提前停止的方法,虽然评估的很快(利用的资源很少),但是降低了准确性。就有学者提出了多保真度超参数搜索的方法,在效率和准确性之间做了较好的权衡



比如 SuccessiveHalving 和 Hyperband 方法。SuccessiveHalving 一开始是以非常小的资源给到所有可能的参数配置,经过评估之后,将比较好的半数配置保留,淘汰另一半较差的配置,然后把相同的资源用于剩下参数的评估,再淘汰一半,不断往复,直到就剩一组参数配置。


但该方法也存在缺陷,有些参数配置可能在给定更多资源的情况下才能表现更好。就有学者提出了 Hyperband 的方法,同时启动好几个 SH(SuccessiveHalving)方法,每个 SH 方法都以不同的资源配置(小、中、大等)作为起始点,所以就有一定概率可以找到那些给定更多资源才能表现更好的参数。SH 和 Hyperband 可以在效率和性能之间做一定的权衡,但是这类方法没有充分利用问题的特性,对于不同的问题,解法都是一致的。


又有学者提出了 Transfer Series Expansion(TSE)的做法,这种做法试图去学习低资源和高资源之间的性能误差模型,在给定低资源的性能情况下去预测高资源的效果。但是构建这样的模型需要的样本数据是非常难以获得的,因为要训练这样的模型,需要搜集很多给定同样配置高资源和低资源模型效果的样本对,需要大量高资源训练出来的模型,这样的代价非常大的。TSE 设计了一个巧妙的做法就是可以收集很多的低资源和中等资源(远远小于高资源)效果的样本对,构建一个预测低资源和中资源之间误差的模型,然后把这样的模型迁移到低资源和高资源之间,利用 fine-tune 以及集成学习的思想,只需要非常少的低资源和高资源的样本就可以构建非常准确的模型。这样的方法,在取得相同效果的情况下,资源消耗降低了一个量级。


自动机器学习之——自动特征工程


第二个例子是在机器学习环节中非常关键的特征工程。在很多实际业务的特征中,组合特征的重要性不言而喻。例如在新闻推荐中,若只有新闻类型、用户 ID 两类特征,模型只能分别预测不同新闻类型或不同用户 ID 对点击率的影响。通过加入新闻类型 x 用户 ID 组合特征,模型就可学习到一个用户对不同新闻的偏好。再加入时间等特征进行高阶组合,模型就可对一个用户在不同时间对不同新闻的偏好进行预测,提升模型个性化预测能力。一些知名的推荐系统通过探索出近半数的组合特征和少数高阶特征(high-order feature)而变得更为出色。但是如何找到这些隐含的特征使非常困难的,只有 20 个特征的特征组合搜索问题的搜索空间就远大于 AlphaGo 的搜索空间。



因此有学者提出了 AutoCross 方法,这类方法在搜索策略以及性能评估上做了专门的优化,比如利用 Beam Search 这样的贪心方法对特征组合空间进行探索,提出了 Successive Mini-batch GD, Field-Wise LR 可以并行的评估很多的特征组合,保证效果的同时,可以大幅提高评估效率。


此外,在实际的业务当中,会碰到各式各样的数据,这些数据是以多张表的形式呈现的,但是机器学习算法只能接收一张表,而且实际业务会存在大量的时序特性,对自动机器学习而言,如何构建有效的时序的特征、将多表拼接成一张表的问题更为复杂,搜索空间要比自动特征组合更为巨大,第四范式有学者提出了 AutoTemporal 的方法,同样在性能评估、优化策略上进行了更加深入优化,并在实际应用中获得了很好的落地,相比专家做出的方案,利用了更少的特征,获得了更好的准确率,并在实际预测耗时上数个量级低于专家设计的方案。



自动机器学习之——神经网络架构搜索(NAS)


得益于深度学习在各个领域的广泛研究,在自动机器学习中,大家比较熟知的研究是神经网络架构搜索。深度学习效果好很大程度上是得益于架构上的设计。如何针对目标问题自动地设计一个好的神经网络架构?其中包括很多方面,比如需要做多少层、什么样的层、用多少个节点,层与层之间如何连接、超参数如何配置等,设计难度巨大。



近期关于 NAS 的一些工作,是从 Google 的 2017 年的工作开始(其实几十年前也有类似的工作,具体可以参见第四范式的 AutoML 综述文章),当时 Google 的工作用 RNN 描述 CNN 的结构,利用强化学习去做超参数的探索,对探索出来的每个结构用完整训练的方式进行评估,效果已经逼近人当时设计的最好的结构,但这种方法消耗的时间和成本非常大。


之后,很多研究对 NAS 进行了改进,主要体现在自动机器学习求解的三要素上:在配置空间上,有一些工作将大的结构裁剪成重复的小单元,在小数据集合上搜索小的单元结构,迁移到大数据及上,然后再进行与之前一样的做法,可以看到相比原来的方法,效率提升了一个量级;



在网络架构(NAS 的配置)的性能评估上,在训练网络的时候,不同的网络配置之间可以参数共享,避免从头开始训练,通过这样的方式,效率提升了三个量级;最后,最新的一些方法将神经网络架构搜索的配置空间转换成连续化表达,就可以利用梯度下降的方法去优化,效率以及效果得到了进一步的提升。



自动机器学习三要素的发展趋势


接下来,我们展望一下自动机器学习技术的发展趋势。首先是配置空间、配置性能评估和优化策略等自动机器学习三要素的发展趋势。从配置空间上讲,以前搜索的空间中,很多是无关紧要的,因此我们需要在指数级爆炸的搜索空间中找到更紧致更精确的配置空间,尽可能的降低配置空间的复杂度。在性能评估上,要降低整个性能评估开销,提升整个评估的准确性。在优化策略上,则沿着尽可能减少迭代的次数,找到更好的局部解,获得更快的收敛速度及更好地鲁棒性的方向去发展。


其次是让自动机器学习寻求更广泛的求解范围。目前,自动机器学习解决的问题有限,对数据质量要求较高、可应用的任务有限、性能度量关注点有限。



在数据方面,实际业务场景的数据可能存在各种各样的问题,比如有的数据噪声严重,有的仅有少量有标记的样本数据及大量未标记的数据,甚至有的仅有少量正例和大量未标记的数据等等。对于弱标记数据的自动机器学习问题,其中的关键问题在于怎么评估配置的泛化性能,因为可靠的标记是非常有限的,需要解决配置的泛化性能评估不准确的问题。


在有学者提出的 AutoSSL(自动半监督学习)中,基本思想是大间隔假设,意思就是如果某个超参数较好,其在未标记数据上的模型预测结果分类间隔较大,利用分类间隔来估计配置的性能可能会取得更好的效果,实际实验也发现这样能够取得很优异的效果。此外,在只有少量有标记样本且只有正例的情况下,如果还采用大间隔的方法,使得间隔的估计不准确。一些学者在这方面也做了大量的研究工作,提出了无偏的间隔估计方法,并取得了优异的效果。



除了数据的问题外,目前自动机器学习应用的任务面也非常窄。刚才看到的很多神经网络架构搜索的工作基本上是在 CIFAR10 和 ImageNET 上评估的,并不足以代表自动机器学习的性能,需要在更多的任务以及更多的数据上进行评估才能有效证明自动机器学习系统的性能。未来自动机器学习技术拓展其他领域有更多的可能性。比如说知识图谱领域,比较常见的是通过人与公司、人与人的关系构建了一个知识图谱,我们希望这个知识图谱可以帮助及机器学习任务。


但机器学习算法只能接受向量化的表示,无法直接使用知识图谱,所以将知识图谱转化成向量化表示是关键,而知识图谱向量化表示的关键在于评分函数的设计,这些评分函数之前往往是人为根据不同的数据情况设计的。就有一些学者提出了 AutoKGE,将知识图谱的评分函数表示成 4×4 的矩阵这样一个配置空间,再经过一些巧妙的优化策略设计,获得了远超出人为设计的评分函数的效果。



自动机器学习还有可能可以被应用在自然文本的领域,比如垃圾邮件识别、情感分类、主题分类等文本任务,怎么构建一个自动文本分类系统使得每个业务都可以拿自己的数据训练出自己的文本分类系统也是一个极具挑战的事情。在今年的世界人工智能大会 WAIC 上,第四范式即将和 Google、ChaLearn 主办世界首个 AutoNLP 大赛,希望参赛选手设计开发全自动的自然语言文本分类系统,比赛将在 8 月 1 日至 22 日举办线上预赛,TOP10 的队伍将在 29 日到世界人工智能大会现场进行线下决赛,欢迎大家参加。


目前的自动机器学习只能针对某种可以确切量化的单一指标进行优化,然而实际应用中自动机器学习系统需要面对复杂的多目标优化、甚至是不可量化目标的问题,比如成本和效果的权衡问题,目前的自动机器学习系统可以为用户找出效果很好的模型,但是产生这个模型的代价,以及这个模型在线上推断代价都是实际需要考量的。如何在效果和成本上进行平衡,是未来自动机器学习需要进一步优化的问题。


交互式自动机器学习系统成为突破口


目前 AutoML 存在黑盒、效率以及适用性的问题。目前大部分的自动机器学习系统是一个黑盒,人是无法干预的。有时候自动机器学习系统可能在做一些无用功,导致效率非常低下。配置空间的复杂度随配置数目指数增长,目前的黑盒 AutoML 系统人的先验无法帮助。


另外,自动机器学习当前只能解决明确可量化的目标,比如准确率、AUC、MSE 等,但是比如刚才提到的效果和性能之间的权衡这样的多目标优化问题,人也很难写出准确的目标,还有一些优化目标是写不出来的,比如说像可解释性,诸如这类的需要人不断探索目标设定的问题,当前自动机器学习系统无能为力。



交互式的机器学习将有可能解决以上这些问题。目前的自动机器学习,所有的事情要么全部由人做,要么全部机器做。但这两者之间有一个中间状态,这个状态是人与机器做各自擅长的事情。人与机器之间需要有一个交互界面,就对应到我们刚才说的配置空间(Choice)和配置性能的目标(Objective)。


机器可以优化明确的量化目标,人可以做目标拆解,通过这种实时交互的方式,人能够获得即时的反馈,同时能够探索去设置适合最终问题的目标。同时,我们还需要新的一套描述机器学习的基础界面,在现在用诸如 Tensor 之类的浮点数矩阵来描述机器学习的基本元素,然而实际业务中很多数据并不是浮点数,诸如地址、性别、职业、类别等等,这类抽象知识描述可能更加适合的方式是 Ontology 这样的表达。基于 Ontology 的机器学习也是未来自动机器学习需要关注的。


未来,对于自动机器学习而言,最关键的一点是自动机器学习理论的问题。因为早就有了没有免费午餐(No Free Lunch)定理,不同能存在通用的算法去解决所有的问题。


对于这样的一个已经有这样一个假设之后,自动机器学习要做的事情就是希望用同一套系统能够解决更多的问题,也就是在「对抗」没有免费午餐的定理。 对于自动机器学习系统而言,在自动机器学习的适用边界、优化性能分析、算法的泛化性能等问题上的研究还很少,需要大家共同努力去探索。


第四范式也在 IEEE(模式分析与机器智能汇刊)旗下的学术性汇刊 PAMI 上开设了 AutoML 特刊,大家可在 PAMI 上选择「SI: AutoML」进行投稿,PAMI 将在 2019 年 10 月至 2020 年 3 月期间接受提交的报告,欢迎各位积极投稿,共同推动 AutoML 的发展。


PAMI 链接:https://mc.manuscriptcentral.com/tpami-cs




一文读懂目前大热的AutoML与NAS!

黄浴 我爱计算机视觉 



本文作者为奇点汽车美研中心首席科学家兼总裁黄浴先生,原载于知乎自动驾驶的挑战和发展专栏,原文链接:

自动机器学习AutoML和神经架构搜索NAS简介

https://zhuanlan.zhihu.com/p/75747814


文章有点长,建议收藏,绝对值得细读!


自动机器学习(AutoML, Automated Machine Learning)提供方法和流程使机器学习可用于非机器学习专家,提高机器学习的效率并加速机器学习的研究。

机器学习(ML)近年来取得了相当大的成功,并且越来越多的学科依赖它。但是,这一成功至关重要依赖于机器学习专家来执行以下任务:

  • 预处理数据;

  • 选择适当的特征;

  • 选择合适的模型族;

  • 优化模型超参数(hyperparameters);

  • 后处理机器学习模型;

  • 批判性地分析所获得的结果。

由于这些任务的复杂性通常超出非机器学习专家,因此机器学习应用程序的快速增长产生了现成(off-the-shelf)机器学习方法的需求,希望这些方法可以在没有专业知识的情况下轻松使用。有这样一个研究领域,让机器学习渐进地自动化,称为AutoML。作为机器学习的一个新的子领域,AutoML不仅在机器学习方面,而且在计算机视觉、自然语言处理和图形计算方面得到了更多的关注。

AutoML没有正式的定义。从大多数论文的描述中,AutoML的基本过程如下图所示:虚框是配置空间,包括特征、超参数和架构;左边训练数据进入,上面的优化器和它相连,定义的测度发现最佳配置,最后出来的是模型;测试数据在模型中运行,实现预测的目的。




AutoML方法已经足够成熟,可以与机器学习专家竞争,有时甚至超越这些专家。简而言之,AutoML可以提高性能,同时节省大量的时间和金钱,因为机器学习专家既难找又昂贵。因此,近年来对AutoML的商业兴趣急剧增长,几家主要的科技公司和初创公司正在开发自己的AutoML系统。

这是ML的框图:



而这是AutoML的框图:




虽然当前不同的AutoML工具和框架已经最小化了数据科学家在建模部分中的作用并节省了很多努力,但仍然有几个方面需要人为干预和解释,以便做出可以增强和影响建模步骤的正确决策。这些方面属于机器学习生产流程的两个主要构建块,即预建模和后建模(Pre-Modeling,Post-Modeling),如图ML产品流水线所示。



通常,预建模是机器学习管道的重要组成部分,可以显着影响自动算法选择和超参数优化过程的结果。预建模步骤包括许多步骤,包括数据理解、数据准备和数据验证。此外,后建模块还包括其他重要方面,包括对生成的机器学习模型如何管理和部署,该模型代表流水线中的一块石头,需要包装模型的再生性(reproducibility)。这两个构建块的各个方面可以帮助覆盖当前AutoML工具遗漏的内容,并帮助数据科学家以更加简单,有条理和信息丰富的方式完成工作。如图所示是能进一步自动化的工作:



这是ML产品开发的流水线:为了使用ML技术并获得良好的性能,人们通常需要参与数据收集,特征工程,模型和算法选择。这张图片显示了典型的ML应用程序流水线,以及AutoML如何参与流水线并最大限度地减少人类的参与。



从ML角度看AutoML:从这个角度来看,AutoML本身也可以看作是一种学习工具,它对输入数据(即E)和给定任务(即T)具有良好的泛化性能(即P)。然而,传统的ML研究更多地关注发明和分析学习工具,它并不关心这些工具的使用有多容易。一个这样的例子恰恰是从简单模型到深度模型的最新趋势,它可以提供更好的性能,但也很难配置。相比之下,AutoML强调了学习工具的易用性。



从自动化角度看AutoML:另一方面,自动化是使用各种控制系统在构建模块下运行。为了更好地预测性能,ML工具的配置应该通过输入数据适应任务,这通常是手动执行的。如图所示,从这个角度来看,AutoML的目标是在学习工具下构建高级控制方法,以便在没有人工帮助的情况下找到正确的配置。



Auto ML基本框架:控制器内部的虚线(反馈)取决于优化器使用的技术,不是必须的。



AutoML通过问题设置和技术来处理分类,这受到上图中提出的框架的启发。问题设置的分类取决于使用的学习工具,它阐明了想要自动化的“什么”; 技术分类取决于如何解决AutoML问题。具体来说,特征工程,通用机器学习应用的全部范围。




AutoML的设计流程图:接着上面的AutoML基本框架。



AutoML基本分以下几个方向:

  1. • 自动数据清理(Auto Clean)

  2. • 自动特征工程(AutoFE)

  3. • 超参数优化(HPO)

  4. • 元学习(meta learning)

  5. • 神经网络架构搜索(NAS)

HPO方法分类:原则上,自动化超参优化技术可分为两大类:黑盒优化技术和多保真优化技术。

元学习分类:这些技术通常可以分为三大类,即基于任务属性的学习,从先前的模型评估中学习以及从已经预训练的模型中学习。



基于启发式搜索框架:它是基于群体的搜索方法,从初始化过程开始。



基于模型的无导数优化框架:与启发式搜索不同,基于模型的优化中最重要的组件是基于先前样本的模型。



基于强化学习的框架:与启发式搜索和基于模型的无导数优化不同,因为不需要为接收配置立即返回反馈。



基于贪婪搜索的框架:它针对多步决策问题,在每步进行局部最优决策。



元学习一方面通过表征学习问题和工具来帮助AutoML。这些特性可以揭示关于问题和工具的重要信息,例如,数据中是否存在概念漂移(concept drift),或者模型是否与特定机器学习任务兼容。此外,利用这些特性,可以评估不同任务和工具之间的相似性,这使得不同问题之间的知识重用和转移(knowledge reuse and transfer)成为可能。一种简单但广泛使用的方法是在元特征空间(meta-feature space)中使用该任务的邻域经验最佳配置来推荐新任务的配置。另一方面,元学习者(meta-learner )编码过去的经验,并作为解决未来问题的指导。一旦经过训练,元学习者就可以快速评估学习工具的配置,免除计算昂贵的培训和模型评估。它们还可以生成有前途的配置,可以直接指定学习工具或作为搜索的良好初始化,或建议有效的搜索策略。因此,元学习可以极大地提高AutoML方法的效率。如图是基于元学习的框架。



转移学习通过使用来自源域和学习任务的知识,尝试改进对目标域和学习任务的学习。在AutoML的上下文,传输的源和目标是配置生成或配置评估,其中前一个设置在AutoML实践之间传递知识,后者在AutoML实践中传递知识。另一方面,迄今为止在AutoML中利用的可转移知识通常是源配置生成或评估的最终或中间结果,例如学习工具的配置或参数,或在超参训练期间训练的替代模型。

下图是基于转移学习的框架,说明了转移学习在AutoML中的工作原理。




为使机器学习技术获得良好的性能,通常需要专家参与数据收集、特征工程、模型和算法选择。那么,AutoML参与这个开发流水线,并最大限度地减少人的参与。

某种程度上,它们是快而“肮”(大家不愿意做的工作)的方式,可以让我们很少量工作就能在机器学习任务获得高精度。如此简单有效的模式,不就是需要AI的目的!

下面重点讲NAS。

开发神经网络模型通常需要大量的架构工程。有时可以通过转移学习(transfer learning)获得,但如果真的想要获得最优性能,通常最好设计网络。但这需要专业技能(从商业角度看是昂贵的)并且总的来说具有挑战性;甚至可能不知道当前(SOA)技术的局限性!这是一个需要很多试验和错误(trial and error)的工作,其实实验本身是耗时且昂贵的。这就是NAS有了用武之地。

下面是NAS的分类图:从广义上讲,NAS技术分为五大类,包括随机搜索,强化学习,基于梯度的方法,进化方法和贝叶斯优化。



在感知任务中深度学习的成功很大程度上归功于其特征工程的自动化:分层特征提取器以端到端的方式从数据中学习而不是手动设计。然而,这种成功伴随着对架构工程的的需求也不断增长,其中越来越复杂的神经网络架构仍然被手动设计。神经网络架构搜索(NAS)是架构自动化工程,是机器学习自动化合乎逻辑的下一步。

NAS看作AutoML的子域,并且与HPO和元学习有重叠。根据三个维度,可以对NAS的现有方法进行分类:搜索空间,搜索策略和性能评估策略:

  • 搜索空间(Search Space): 搜索空间原则上定义了可以代表哪些体系结构。结合适用于任务属性的先验知识可以减小搜索空间大小并简化搜索。然而,这也引入了人为偏见,可能会阻止找到超越当前人类知识的新颖架构构建块(building blocks)。

  • 搜索策略(Search strategy):搜索策略说明了如何做空间搜索。它包含了经典的探索-开发(exploration-exploitation)之间的权衡。一方面,需要快速找到性能良好的架构,另一方面,避免过早收敛到次优架构(suboptimal architecture)区域。

  • 性能评估策略(Performance estimation strategy):NAS的目标通常是找到在未知数据实现高预测性能的架构。性能评估是指评估此性能的过程:最简单的选择是对数据架构执行标准训练和验证,但遗憾的是,这种方法计算成本很高,限制了可以探索的体系结构量。因此,最近的研究大多集中在开发出方法去降低这些性能估计成本。

• 搜索空间

搜索空间定义了NAS原则上可以发现的神经架构。如下是神经结构搜索方法的抽象示意图:“搜索策略”从预定义的“搜索空间”A中选择体系结构A;该架构被传递到“性能估计策略”,该策略将A估计的性能返回到搜索策略。



如下是不同架构空间的示意图:每个节点对应于神经网络的层,例如卷积层或池化层。不同的层类型注以不同的颜色。从层Li到层Lj的边表示Li接收Lj的输出作为输入。左:链式结构空间的元素。右:具有另外的层类型、多个分支和跳连接的复杂搜索空间元素。比如残差网络(ResNet)和致密网络(DenseNet)。



通过以下方式搜索空间被参数化:(i)层数(可能无界); (ii)每层可以执行的操作类型,例如池化,卷积或更高级类型,像深度可分离卷积或扩张卷积; (iii)与操作相关的超参数,例如,滤波器数量,核尺寸和卷积层步幅等,或简单的全连接网络的单位数。

另外一种搜索方法,是寻找网络重复的motifs,称为细胞(cells),而不是整个架构。定义了两种不同类型的细胞:保持输入维度的正常(normal)细胞和减少空间维度的缩减(reduction)细胞。然后以预定义的方式堆叠这些细胞构建最终的体系结构,如下图所示:左边是两种不同的细胞,如正常细胞(顶部)和缩减细胞(底部);右边是通过串行堆叠细胞构建的结构。



与上面讨论的相比,该搜索空间具有两个主要优点:

  • 1. 搜索空间大小大大减少,因为细胞可以相当小。

  • 2. 通过调整模型使用的细胞数,可以更容易地将细胞转移到其他数据集。

• 搜索策略

各种不同的搜索策略可用于探索神经架构的空间,包括随机搜索,贝叶斯优化(BO),进化方法,强化学习(RL)和基于梯度的方法。自2013年以来,贝叶斯优化在NAS中取得了一些早期成功。但2017之后,NAS成为机器学习社区的主流研究课题。

为了将NAS定义为强化学习(RL)问题,可以认为神经网络结构的生成是代理(agent)的动作,动作空间与搜索空间相同。代理的奖励(award)基于训练架构对未见数据的性能估计。不同RL方法区别在代理的策略(policy)以及如何优化,比如用Q-学习来训练一个策略,该策略依次选择层的类型以及超参数。另一种观点是作为顺序决策过程(sequential decision processes),其中策略采样动作串行地生成架构,环境的“状态”包含采样动作的摘要,和最终行动之后才能获得的(未兑现)奖励。但是,由于在串行过程中没有发生与环境的交互(无观测的外部状态,也没有中间奖励),将架构采样过程解释为单个行动的序列生成更为直观;这将RL问题简化为一个无状态、多臂强盗问题(multi-armed bandit problem)。

另一种方法是使用进化算法优化神经网络结构的神经进化(neuro-evolutionary)方法。进化算法演化了一组模型,即一组(可能是训练过的)网络;在每个进化步骤中,至少有一个来自群体(population)的模型被采样并作为父母(parent)用突变(mutations)来产生后代(offsprings)。在NAS的上下文中,突变是局部操作,例如添加或移除层、改变层的超参数、添加跳连接以及改变训练超参数。对后代进行训练之后,评估它们的适应性(fitness)并将它们添加到群体中。神经进化法的不同体现在如何对父母抽样、更新群体和产生后代等。

与上面的无梯度优化方法相比,DART【4】是一个对搜索空间连续松弛以实现基于梯度优化(gradient-based optimization)的方法:不是固定单个操作oi(例如,卷积或池化)在一个特定的层中,而是从一组操作{o1,...,om}中计算出一个凸组合。更具体地,给定一个层输入x,层输出y被计算为



其中凸系数λi有效地参数化网络架构。然后,交替权重训练数据和架构参数(如λ)验证数据执行梯度下降,依此优化网络权重和网络架构。最终,为每个层选择i = argmaxi λi的操作i获得离散架构。

• 性能评估策略

为了指导搜索过程,各种搜索策略需要估计在给定架构A的性能。最简单的方法是在训练数据上训练架构A并评估其在验证数据上的表现。然而,从头开始训练和评估每个体系结构经常产生数千GPU天级别的计算需求。为了减少这种计算负担,可以在完全训练之后取实际性能的较低保真度来估计性能(代理度量)。虽然这些低保真近似值会降低计算成本,但也会在估算中引入偏差。只要搜索策略仅是对不同体系结构进行排名并且这种相对排名稳定,这可能不会成为问题,但实际情况还是不那么简单。估计架构性能的另一种可能方式建立在学习曲线外推(learning curve extrapolation)的基础上。

加速性能估计的另一种方法是基于已训练过的其他架构权重来初始化新架构的权重。实现这一目标的一种方法,称为网络态射(network morphism)。

一次性架构搜索(One-Shot Architecture Search)是另一种加速性能评估的方法,它将所有架构视为超级图(supergraph)的不同子图,在超图的边缘各架构之间共享权重。仅训练一次性模型(one-shot model)的权重来直接评估架构(一次性模型的子图)。这大大加快了架构的性能评估,因为不需要训练(仅评估验证数据的性能)。这种方法通常会产生很大的偏差,因为它严重低估了架构的实际性能;不管怎样,它允许排名架构可靠,因为估计的性能与实际性能强烈相关。不同的一次性(one shot)NAS方法在一次性模型的训练方式上有所不同:ENAS【5】学习了一个RNN控制器,从搜索空间中对架构进行采样,并根据通过REINFORCE获得的近似梯度训练一次性模型;DARTS【4】优化了一次性模型的所有权重,同时在一次性模型的每个边缘放置混合的候选操作,对搜索空间做连续松弛。权重共享和分布固定(精心选择)可能(可能令人惊讶地)是一次性NAS必需的。

与这些方法相关的是超网络(hypernetworks)的元学习,它为新架构生成权重,只需要训练超网络而不是那些架构本身。这里的主要区别在于,权重不是严格共享的,而是从取决于架构和超网络表示的分布中采样得到。

一般地,一次性NAS的限制是,超级图定义的先验条件限制搜索空间是它的子图。此外,在架构搜索期间要求整个超级图驻留在GPU存储器中的方法,相应地也受限于相对较小的超图和搜索空间,通常使用中只能与基于细胞的搜索空间结合。虽然基于权重共享的方法已经大大减少了NAS所需的计算资源(从数千GPU天到几个GPU天),但如果架构的采样分布和一次性模型一起优化的话,目前尚不清楚它们引入搜索的偏差。


先进制造业+工业互联网




产业智能官  AI-CPS


加入知识星球“产业智能研究院”:先进制造业OT(自动化+机器人+工艺+精益)和工业互联网IT(云计算+大数据+物联网+区块链+人工智能)产业智能化技术深度融合,在场景中构建“状态感知-实时分析-自主决策-精准执行-学习提升”的产业智能化平台;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链。


产业智能化平台作为第四次工业革命的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎;重构设计、生产、物流、服务等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态和新模式;引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。

产业智能化技术分支用来的今天,制造业者必须了解如何将“智能技术”全面渗入整个公司、产品、业务等商业场景中,利用工业互联网形成数字化、网络化和智能化力量,实现行业的重新布局、企业的重新构建和焕然新生。

版权声明产业智能官(ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源,涉权烦请联系协商解决,联系、投稿邮箱:erp_vip@hotmail.com。




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/36978
 
1335 次点击