王晋东作者

自动机器学习(AutoML)最新综述

作者:王晋东;学校:中国科学院计算技术研究所博士生;研究方向:迁移学习和机器学习。

这是一篇来自第四范式(4Paradigm)公司的关于 AutoML 的综述文章。第四范式是目前国内关于 AutoML 研究较早较深入的公司之一。AutoML 全称是 Automated Machine Learning,是 2014 年以来,机器学习深度学习领域最炙手可热的领域之一。

本篇综述文章系统地对 AutoML 领域给出了综述,从出现原因、问题定义、问题构成、基本策略、高级策略、应用、及总结等方面进行了全面的介绍。下面是一些简要的笔记。

AutoML出现原因

机器学习的应用需要大量的人工干预,这些人工干预表现在:特征提取、模型选择、参数调节等机器学习的各个方面。AutoML 试图将这些与特征、模型、优化、评价有关的重要步骤进行自动化地学习,使得机器学习模型无需人工干预即可被应用。

AutoML问题定义

作者从机器学习和自动化两个角度给出了定义:

1. 从机器学习角度讲,AutoML 可以看作是一个在给定数据和任务上学习和泛化能力非常强大的系统。但是它强调必须非常容易使用;

2. 从自动化角度讲,AutoML 则可以看作是设计一系列高级的控制系统去操作机器学习模型,使得模型可以自动化地学习到合适的参数和配置而无需人工干预。 

一个通用的 AutoML 定义如下:

AutoML的核心任务: 

  • Better performance 

  • No human assistance 

  • Lower computation budgets

AutoML问题构成

AutoML 的主要问题可以由三部分构成:特征工程、模型选择、算法选择。

特征工程

特征工程机器学习中有着举足轻重的作用。在 AutoML 中,自动特征工程的目的是自动地发掘并构造相关的特征,使得模型可以有最优的表现。除此之外,还包含一些特定的特征增强方法,例如特征选择、特征降维、特征生成、以及特征编码等。这些步骤目前来说都没有达到自动化的阶段。

上述这些步骤也伴随着一定的参数搜索空间。第一种搜索空间是方法自带的,例如PCA自带降维参数需要调整。第二种是特征生成时会将搜索空间扩大。

模型选择

模型选择包括两个步骤:选择一个模型,设定它的参数相应地,AutoML的目的就是自动选择出一个最合适的模型,并且能够设定好它的最优参数

算法选择

对于算法选择,AutoML 的目的是自动地选择出一个优化算法,以便能够达到效率和精度的平衡。常用的优化方法有 SGD、L-BFGS、GD 等。使用哪个优化算法、对应优化算法的配置,也需要一组搜索空间。

从全局看 

将以上三个关键步骤整合起来看,一个完整的 AutoML 过程可以分成这么两类:一类是将以上的三个步骤整合成一个完整的 pipeline;另一类则是 Network Architecture Search,能够自动地学习到最优的网络结构。在学习的过程中,对以上三个问题都进行一些优化。

基本的优化策略

一旦搜索空间确定,我们便可以实用优化器(optimizer)进行优化。这里,AutoML 主要回答三个问题: 

  • 选择的优化器可以作用在哪个搜索空间上?

  • 它需要什么样的反馈?

  • 为了取得一个好的效果,它需要怎样的配置? 

简单的优化搜索方式包括 Grid Search 和 Random Search。其中 Grid Search 被广泛使用。 

从样本中进行优化的方法主要包括启发式搜索、derivative-free 优化、以及强化学习方法。梯度下降法是一种重要的优化策略。

评价策略

基本评价策略 

在设计评价策略时,AutoML 主要回答三个问题: 

  • 这种策略能能够快速进行评价吗?

  • 这种策略能够提供准确的评价吗?

  • 这种策略需要怎样的反馈? 

基本的评价策略包括: 

1. 直接评价:直接在目标数据上进行评价,这是被使用最多的策略;

2. 采样:当数据样本量非常大时,采样一些样本进行评价; 

3. Early Stop:当遇到一些极端情况使得网络表现效果不好时,可以考虑进行 early stop;

4. 参数重用:将之前学习过的参数重复利用在新任务上,这在两种任务配置差不多时可用;

5. 共轭评价:对于一些可量化的配置,可以用共轭评价法进行。

高级评价策略 

高级评价策略主要包括两种:Meta-learning 和 Transfer Learning。 

1. Meta-learning 法:从先前的学习经验中提炼出基本的参数和结构配置;

2. Transfer learning 法:从先前的学习经验中提炼出可以重用的一些知识。

应用

  • 使用 Auto-sklearn 进行模型选择;

  • 使用强化学习进行 Neural Architecture Search;

  • 使用 ExploreKit 进行自动特征构建。

展望

未来可能的研究方向:

  • 提高AutoML的效率;

  • 更明确的问题定义;

  • 发展基本和高级的搜索策略;

  • 找到更适合的应用。

PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

入门机器学习算法模型特征工程AutoML
10
相关数据
第四范式机构

第四范式成立于2015年初,是国际领先的人工智能技术与服务提供商,已服务20多个行业完成上千个AI落地案例。目前国内重要的国有银行和全国性股份制银行,超过一半都是第四范式的客户,此外,公司在互联网、医疗、政府、能源、零售、媒体等行业均有涉猎,诸多案例取得百分之一百以上的效果提升。

https://www.4paradigm.com/
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

特征工程技术

特征工程是利用数据所在领域的相关知识来构建特征,使得机器学习算法发挥其最佳的过程。它是机器学习中的一个基本应用,实现难度大且代价高。采用自动特征工程方法可以省去采用人工特征工程的需求。Andrew Ng 说“挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。”

启发式搜索技术

计算机科学的两大基础目标,就是发现可证明其运行效率良好且可得最佳解或次佳解的算法。而启发式算法则试图一次提供一个或全部目标。例如它常能发现很不错的解,但也没办法证明它不会得到较坏的解;它通常可在合理时间解出答案,但也没办法知道它是否每次都可以这样的速度求解。

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

特征选择技术

在机器学习和统计学中,特征选择(英语:feature selection)也被称为变量选择、属性选择或变量子集选择。 它是指:为了构建模型而选择相关特征(即属性、指标)子集的过程。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

自动化机器学习技术

推荐文章
暂无评论
暂无评论~