在市北•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简介
https://zhuanlan.zhihu.com/p/75747814
文章有点长,建议收藏,绝对值得细读!
自动机器学习(AutoML, Automated Machine Learning)提供方法和流程使机器学习可用于非机器学习专家,提高机器学习的效率并加速机器学习的研究。
机器学习(ML)近年来取得了相当大的成功,并且越来越多的学科依赖它。但是,这一成功至关重要依赖于机器学习专家来执行以下任务:
由于这些任务的复杂性通常超出非机器学习专家,因此机器学习应用程序的快速增长产生了现成(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基本分以下几个方向:
• 自动数据清理(Auto Clean)
• 自动特征工程(AutoFE)
• 超参数优化(HPO)
• 元学习(meta learning)
• 神经网络架构搜索(NAS)
HPO方法分类:原则上,自动化超参优化技术可分为两大类:黑盒优化技术和多保真优化技术。
元学习分类:这些技术通常可以分为三大类,即基于任务属性的学习,从先前的模型评估中学习以及从已经预训练的模型中学习。
基于启发式搜索框架:它是基于群体的搜索方法,从初始化过程开始。
基于模型的无导数优化框架:与启发式搜索不同,基于模型的优化中最重要的组件是基于先前样本的模型。
基于强化学习的框架:与启发式搜索和基于模型的无导数优化不同,因为不需要为接收配置立即返回反馈。
基于贪婪搜索的框架:它针对多步决策问题,在每步进行局部最优决策。
元学习一方面通过表征学习问题和工具来帮助AutoML。这些特性可以揭示关于问题和工具的重要信息,例如,数据中是否存在概念漂移(concept drift),或者模型是否与特定机器学习任务兼容。此外,利用这些特性,可以评估不同任务和工具之间的相似性,这使得不同问题之间的知识重用和转移(knowledge reuse and transfer)成为可能。一种简单但广泛使用的方法是在元特征空间(meta-feature space)中使用该任务的邻域经验最佳配置来推荐新任务的配置。另一方面,元学习者(meta-learner )编码过去的经验,并作为解决未来问题的指导。一旦经过训练,元学习者就可以快速评估学习工具的配置,免除计算昂贵的培训和模型评估。它们还可以生成有前途的配置,可以直接指定学习工具或作为搜索的良好初始化,或建议有效的搜索策略。因此,元学习可以极大地提高AutoML方法的效率。如图是基于元学习的框架。