Marc-André Zöller、Marco F. Huber作者Panda参与

AutoML研究综述:让AI学习设计AI

自动机器学习(AutoML)是近年来的一个热门研究方向,比如机器之心曾报道过的谷歌的基于进化算法的神经网络架构搜索方法。近日,来自德国 USU Software AG 和斯图加特大学的两位研究者发布了一篇 AutoML 综述论文,总结了近年来 AutoML 方面的新进展。机器之心整理编译了文章的主体结构,并重点翻译介绍了各种方法的基本思想和未来研究方向,数学描述和实验评估等细节请参阅原论文。

顺便一提,这篇论文着重于经典机器学习,对神经网络着墨不多,对神经架构搜索感兴趣的读者请参阅机器之心的专栏文章《神经网络架构搜索(NAS)综述(附 AutoML 资料推荐)》

论文地址:https://arxiv.org/abs/1904.12054

机器学习已经成为我们日常生活中很多方面的重要组成部分。但是,构建表现优良的机器学习应用需要非常专业的数据科学家和领域专家。自动机器学习(AutoML)的目标是让领域专家即使没有统计学和机器学习方面的广泛知识也能自动构建机器学习应用,从而减少对数据科学家的需求。这篇综述论文总结了学术界和产业界的 AutoML 方面的近期进展。论文首先将对 AutoML 问题进行整体的阐述,然后会介绍用于解决 AutoML 的各种子问题的方法,最后还会呈现这些方法在合成数据和现实数据上的实验评估结果。

1 引言

机器学习(ML)近年来的重要性与日俱增:自动语音识别、自动驾驶汽车和「工业 4.0」的预测性维护都基于机器学习。现在的机器学习已经能够在曾被认为对计算机而言过于复杂的任务上击败人类,比如 AlphaGo(Silver et al., 2017)在围棋上击败了人类冠军。这些案例都是由非常专用和复杂的机器学习流程(ML pipeline)驱动的。

为了构建这样一个机器学习流程,必需一支训练有素的人类专家团队:有机器学习算法和统计学方面渊博知识的数据科学家;往往有特定领域的长期经验的领域专家。这些人类专家需要一起合作,才能构建起合理的机器学习流程,其中包含专门的数据预处理、领域驱动的有意义的特征工程和微调后的模型,这样才能得到出色的预测能力。通常而言,这个过程是一个非常复杂的任务,以一种不断试错的迭代方式执行。也因此,构建优良的机器学习流程需要漫长的时间和高昂的成本。

根据「没有免费的午餐定理(no free lunch theorem)」(Wolpert and Macready, 1997),单个优化算法不可能在所有方面都优于其它所有优化算法。这意味着对所有机器学习任务都普遍更优的机器学习流程是不存在的。因此,不可能将一个表现优良的机器学习流程迁移至新领域后还能表现出色。相反,为了得到最优的结果,必须为每个新数据集构建新的机器学习流程。但是,以人工方式为每个问题都构建一个专用机器学习流程非常耗时间,因此也有很高的成本。因此,实践者往往会使用次优的默认机器学习流程。

AutoML 的目标是通过自动化来改进当今的机器学习应用构建方法。通过自动化超参数优化(HPO)等繁琐的任务,AutoML 能助益机器学习专家实现更高的效率;也能让领域专家可以无需依赖数据科学家,靠自己构建机器学习流程。

AutoML 其实并非一个新趋势。这一趋势从 1990 年代就开始了,那时已有商业解决方案通过网格搜索为所选分类算法提供自动 HPO(Dinsmore, 2016)。2004 年,第一个有效的 HPO 策略问世。对于有限的设定(比如调整某个支持向量机的 C 和 γ (Chen et al., 2004)),研究证明引导式搜索策略能在更短的时间内得到比网格搜索更好的结果。2004 年还发表了首个用于自动特征选择的方法(Samanta, 2004)。

全模型选择(Escalante et al., 2009)是首次尝试自动构建完整的机器学习流程,其做法是同时选择一个预处理、特征选择和分类算法,并调整每个方法的超参数。经过在多种数据集上的测试,这种与领域无关的方法的潜力得到了证明(Guyon et al., 2008)。

自 2011 年开始,研究者们提出了很多应用贝叶斯优化来进行超参数调节(Bergstra et al., 2011; Snoek et al., 2012)和模型选择(Thornton et al., 2013)的不同方法。2015 年出现了首个无需领域知识进行自动特征工程的方法(Kanter and Veeramachaneni, 2015)。

自 2016 年以来,构建任意形状的流程已成为了可能(Olson and Moore, 2016)。2017 和 2018 年,随着多个全球玩家发布商用 AutoML 解决方案(Golovin et al., 2017; Clouder, 2018; Baidu, 2018),AutoML 主题在媒体上受到了很大的关注(Google, 2019)。

与此同时,AutoML 领域的研究得到了很大的推动,实现了很多性能提升。近期的方法能将 AutoML 流程的运行时间从数小时降低至几分钟(Hutter et al., 2018)。

这篇论文回顾和总结了涉及机器学习各方面自动化的研究:确定流程的形状、为流程中的每个阶段选择一个机器学习算法并调节每个算法。此外,文中还分析了最流行的开源 AutoML 框架。这份调查关注的是经典的机器学习,而没有考虑神经网络,尽管仍有很多思想可以迁移用于神经网络。对神经网络的全面概述,尤其是网络架构搜索方面的概述,请参阅 Baker et al. (2016) 和 Zoph and Le (2017)。

本论文的贡献如下:

  • 我们引入了一种数学形式描述,覆盖自动机器学习流程创建的整个过程。

  • 就我们所知,这篇论文是第一篇覆盖构建机器学习流程的每个步骤的 AutoML 技术的调查。

  • 我们在合成数据和现实数据上对所有给出的算法执行了广泛的实验评估。这些实验能在相同条件下为当前的前沿算法提供公平的比较。

这样做能让读者全面地了解当前前沿的 AutoML 算法。本文将介绍自动构建机器学习流程的所有重要阶段,并会评估已有的方法。这能揭示当前方法的局限以及提出新的有待解决的问题。

第 2 节将给出自动构建机器学习流程的数学上坚实可靠的描述。第 3 节将呈现用于确定流程结构的不同策略。第 4 节将介绍用于机器学习模型选择和 HPO 的多种方法,并会提供理论解释。接下来,第 5 和 6 节将分别介绍用于自动数据清理特征工程的方法。第 7 节将描述用于提升所生成的流程的性能以及降低优化运行时间的措施。第 8 节将简要描述已有的 AutoML 实现和框架。第 9 节将在多个不同数据集上评估这些框架。最后,第 10 节会阐述未来的研究机会,第 11 节是一个简短总结。

2 问题描述

机器学习流程是多种算法的顺序组合,这些算法可将特征向量转换成目标值,即分类问题的类别标签。我们可以不失一般性地将这些算法分为三个集合:数据清理特征工程和建模。

机器学习流程:流程的结构可被视为一个任意的有向无环图(DAG),其中每个节点都表示一个数据处理、特征工程或建模算法,边则表示输入数据集在不同算法间的流动。每个机器学习流程都可视为一个三元组,其中包含结构的 DAG、每个节点所选算法的向量、每个所选算法的超参数的向量。

流程性能:给定一个流程,可通过一个损失(loss)度量来计算流程的性能。

流程创建问题:给定一组算法且它们有可参考的超参数域。流程创建问题是指选出一套能够最小化损失的联合算法和超参数

3 流程结构创建

构建机器学习流程的首个任务是创建流程结构。这一主题也被称为架构搜索,已在设计神经网络方面备受关注,比如(Zoph and Le, 2017; Liu et al., 2017)。在经典的机器学习方面,这一主题针对自然语言处理等多种特定问题加以解决(Agerri et al., 2014)。让人惊讶的是,还没有人发表针对通用流程构建的文章。然而,常见的最佳实践表明存在一种基本的机器学习流程布局,如图 2 所示(Kégl, 2017; Ayria, 2018; Zhou, 2018)。

首先,通过多个不同步骤清理输入数据,比如插补缺失的数据和对类别输入进行 one-hot 编码。接下来,在特征工程阶段选择相关特征和创建新特征。这个阶段高度依赖于底层领域。最后,在之前选择的特征上训练单个模型。

图 2:机器学习流程原型。首先清理数据,然后提取特征,最后经过转换的输入通过一个机器学习模型以创建预测结果。

3.1 固定的形状

很多 AutoML 框架并不解决结构选择问题,因为它们被预设为了一种固定的流程形状,如图 3 所示,比如(Komer et al., 2014; Feurer et al., 2015a; Swearingen et al., 2017; Parry, 2019; McGushion, 2019)。这个流程很接近最佳实践的流程,是一个线性序列:包含多个数据清理步骤、一个特征选择步骤、一个变量与处理步骤和刚好一个建模步骤。预处理步骤会从已知的众多算法中最多选择一个算法,比如各种矩阵分解算法。在数据清理方面,流程形状各有不同,但通常会实现插补和缩放两个步骤。

图 3:大多数 AutoML 框架使用的固定机器学习流程。在实现数据清理步骤方面略有不同。

通过使用固定形状的流程,就完全消除了确定图结构的复杂性;流程创建问题就被简化为了选择预处理算法和建模算法的问题。尽管这种方式能极大简化流程创建问题,但在复杂数据集上会得到较差的流程表现。但是,对于很多有高质量训练数据的问题而言,简单的流程结构可能就足够了。

3.2 可变形状 

为了获得最好的结果,数据科学专家通常会为给定的机器学习任务构建高度专用的流程。固定形状的机器学习流程缺乏适应特定任务的灵活性。现有的几种自动构建灵活流程的方法全都基于同样的原理思想:包含一组机器学习原语(即基本算法)、一个克隆数据集的算子和一个组合多个数据集的算子(称为数据集复制器和特征联合)。数据集复制器(data set duplicator)的作用是在流程中创建并行的路径;并行路径可以通过特征联合(feature union)加入。图 4 展示了使用这三种算子的一个流程。下面要介绍的多种方法都是通过结合这些原语来完成一个流程。

图 4:针对特定机器学习任务的专用机器学习流程

3.2.1 遗传编程

自动构建灵活的机器学习流程的首个方法来自 Olson and Moore (2016)。Olson et al. (2016a) 基于遗传编程(Banzhaf et al., 1997)。遗传编程是一种迭代式的、与领域无关的优化方法,源自生物演化思想。给定一个问题的一组可能的解(称为一个「种群(population)」,使用一个适应度函数(fitness function)来进行评估。基于每个个体的表现,它们特定比例的遗传物质会被传递给下一代。表现差的个体会灭绝,而表现好的个体会产生后代。后代要么通过两个亲代交配来创建,要么通过单个亲代突变来创建。这一流程重复固定数代,并且每代都有固定数量的个体;第一代通常是随机生成的。最后,将表现最佳的个体用作最终解。图 5 给出了这一流程的图示。

图 5:遗传编程过程图示。初始种群是随机创建的。整个种群会根据一个目标函数进行评估,然后选出一些表现最佳的个体。然后使用这些亲代来生成一个新种群。

遗传编程已经在自动程序代码生成方面被使用了很长时间(Poli et al., 2008)。但是,在流程结构选择方面的应用近期才开始。首先,创建随机的流程结构并在训练数据集上进行评估。再选出表现最佳的流程以创建下一代。通过选择流程的子图可以将两个个体结合起来组成一个新图。通过向图添加随机节点、移除随机选择的节点或用新节点替换随机选择的节点,都可以实现突变。通过这种方式,可以生成任意形状的流程。但是,在目标函数评估的数量方面,遗传编程并不非常高效(Cooper and Hinde, 2003)。因为每次目标函数评估都有相对高的成本,所以这一方法需要相当长的优化周期。

3.2.2 分层规划

分层任务网络(HTN)(Ghallab et al., 2004)是一种更直接的方法。HTN 是一种源自自动规划的方法,会递归地将复杂问题划分为更简单的子问题。这些子问题会再次被分解,直到剩下基本的终端操作。这一流程可以表示为一个图结构。每个节点表示一个(可能不完整的)流程;每条边表示都一个将复杂步骤分解为子步骤的过程。当所有的复杂问题都被替换为机器学习原语时,就创建出了一个机器学习流程。使用这种抽象方法,寻找机器学习流程结构的问题就被简化为了寻找图中最佳叶节点的问题(Mohr et al., 2018)。

3.2.3 Self-Play

self-play(Lake et al., 2017)是一种强化学习策略,近来由于 AlphaZero(Silver et al., 2017)的成功而备受关注。这种算法不是从固定的数据集中学习,而是通过自我对抗来创建新的训练示例。流程结构搜索也可被视为一场博弈(Drori et al., 2018):机器学习流程和训练数据集是当前的盘面状态 s;每一步玩家都可从三个动作 a 中选择一个:添加、移除或替换流程中的单个元素。流程的损失被用作分数 ν(s)。

在一个迭代过程中,为了评估流程 s_i,使用一个神经网络来预测其分数 ν(s_i) 和在该状态选择某个动作的概率 P(s_i , a)。如果没有训练,这些预测基本都是随机的。因此,这些预测会被传递给一个蒙特卡洛树搜索(Browne et al., 2012)。在这个树中,每个节点表示一个流程结构,每条边都是一个可能的动作。基于状态和动作概率选择一个节点。如果之前没有访问过该节点,则在数据集上评估据此得到的流程,并使用其表现来更新神经网络。有最低预测损失的节点被选作下一个状态。这三个步骤不断重复,直到耗尽训练预算。self-play 方法的一个常见缺点是收敛速度慢(Brandt et al., 2010),这使得这一方法相当不适用于 AutoML。

4 算法选择和超参数优化

给定一个图的形状、一个损失函数、一个训练集和一个验证集。对于图中的每个节点,都必须选择一个算法,并通过超参数配置它。这一节将介绍各种用于算法选择和配置的方法。

Thornton et al. (2013) 首先引入了一个之后被其他很多人采用的概念,即:组合式算法选择与超参数优化(CASH)问题。这一概念是指不先后分别执行算法选择和超参数优化,而是两者同时执行。这一问题被构建为了一个黑盒优化问题,进而可得到相当类似于前述流程创建问题的最小化问题。

下面将介绍一些不同的优化策略。

4.1 网格搜索 

网格搜索是首个用于系统性探索配置空间的方法。顾名思义,网格搜索会创建一个配置网格并评估所有配置。

4.2 随机搜索 

随机搜索(Anderson, 1953)也是一种著名方法,即通过为每个超参数独立地随机选择值来生成候选配置。通过遍历分层的依赖图,可以隐式地处理条件超参数。这一过程重复 k 次。图 7 描述了通过随机选择为两个超参数选择的配置。

图 7:用于最小化 Branin 函数(见 9.2 节)的不同搜索策略的受测配置。网格搜索测试的是均匀分布在二维搜索空间上的配置。随机搜索随机选择配置。引导式搜索策略会利用表现良好区域的知识,会更多地测试接近局部最小值的配置。

4.3 序列式基于模型的优化 

CASH 问题可被视为一个回归问题:可基于被测试的超参数配置使用标准的回归方法近似损失函数。这一概念可通过算法 1 给出的序列式基于模型的优化(SMBO)(Bergstra et al., 2011; Hutter et al., 2011; Bergstra et al., 2013)体现。

算法 1:序列式基于模型的优化

图 8:SMBO 过程示意图。一组配置和分数元组会在初始化过程中创建。这些样本可用于创建目标函数的回归模型。接下来,选择一个新的配置并通过目标函数评估它。最后,将新元组加入到样本集中。

4.4 进化算法

SMBO 的一种替代方法是进化算法(Coello et al., 2007)。进化算法是多种受生物进化启发的基于种群的优化算法的集合。进化算法的所有实例都遵循图 5 给出的同样的抽象过程。首先,随机创建一个初始的种群。然后,使用一个目标函数评估当前一代中每个个体的表现,并选出表现最佳的个体。再基于这些亲代创建新一代。这三个步骤不断重复直到结束。

一般而言,进化算法适用于各种各样的优化问题,因为它不需要关于目标函数的假设。由于新一代的创建或多或少是随机的和未加引导的,所以相比于贝叶斯优化,进化算法在目标函数评估数量方面并不非常高效。但是,因为一代中的所有个体都是彼此独立地评估的,所以这一方法尤其适合在集群中分散计算负载。

产生新一代的方法取决于特定的算法实例。下面是两种常见的算法实例。

4.4.1 遗传编程

4.4.2 粒子群优化

4.5 多臂赌博机学习

「利用与探索」问题方面一个得到了广泛研究的模型是多臂赌博机问题(Robbins, 1952)。一个赌博者能够使用 K 台不同的老虎机,且每台机器都基于一个未知的分布提供奖励。这位赌博者可以操作任意他想使用的机器固定次数。为了最大化他的奖励,这位赌博者必须尽快找到有最高奖励概率的老虎机,并一直使用它。

4.6 梯度下降

梯度下降(Bottou, 2010)是一种非常强大的优化方法,是一种迭代式的最小化算法。该算法从一个随机点开始,沿最大梯度的相反方向移动以选择下一个点。这样,就会创造一个向局部最小值收敛的单调序列。如果目标函数是凸函数,则这个局部最小值即是全局最小值。

5 自动数据清理

数据清理是构建机器学习流程的一个重要方面。数据清理的目标是通过移除数据错误来提升数据集的质量。常见的错误类别是输入数据缺失值、无效值或多个数据集的项之间缺乏联系(Rahm and Do, 2000)。

6 自动特征工程

特征工程是指根据给定的数据集为后续的建模步骤生成和选择特征的过程。这个步骤对完整的机器学习流程而言至关重要,因为整体的模型表现非常依赖于可用的特征。通过构建优良的特征,机器学习流程的表现可以增加很多倍(Pyle, 1999)。但是,有太多无关特征会增加训练时间(维度灾难),还可能导致过拟合特征工程任务非常特定于领域,而且非常难以泛化。即使对于数据科学家,也很难了解一个特征的影响,因为领域知识是必需的。由此导致的后果是,特征工程主要是由试错驱动的人工的且耗时的任务。

7 性能提升 

这一节将介绍不同的性能提升。这些提升覆盖多种技术,有加速优化流程的技术,也有提升所生成的机器学习流程的整体性能的技术。

7.1 多保真近似

7.2 早停

7.3 可扩展性

7.4 集成学习

7.5 元学习

8 已有框架

这一节将介绍最流行的开源 AutoML 框架。首先会给出 CASH 算法的实现和分析,接下来会讨论用于创建完整机器学习流程的框架。

8.1 CASH 算法

表 1:不同 CASH 算法的比较。报告了使用过的求解器,并且涉及是否考虑了搜索空间的结构(Λ)、是否实现了并行化以及是否存在单次估计的超时。

8.2 AutoML 框架

表 2:不同 AutoML 框架的比较。报告了使用过的 CASH 求解器和流程结构。此外,还列出了是否是集成学习(Ensem.)、元学习(Meta)、流程的并行评估或是否支持单次评估的超时。

9 实验

这一节提供了不同 CASH 算法和流程构建算法的实验评估。下面展示了部分结果,更多结果请参阅原论文。

表 5:所有被测 CASH 求解器在 OpenML100 基准套件上的结果。本表格给出了平均误分类率、运行时间(小时)和每个 CASH 算法的失败评估的百分比。

表 6:几种 AutoML 框架在所选的 OpenML 数据集上的误分类百分率。标注有 * 的数据集的平均误分类率大于 30%。标注有 – 的项始终不能生成一个机器学习流程。

10 讨论和未来研究机会

目前而言,AutoML 完全聚焦于监督学习。尽管某些方法可能也适用于无监督学习强化学习,但研究者总是会针对监督学习测试他们提出的方法。此外,所有已有的高级 AutoML 框架都只支持分类和回归任务。针对无监督学习强化学习的专门研究可以助力 AutoML 框架的发展,进而解决当前还未显露的学习问题。此外,专门的方法也能提升这些任务的性能表现。

当前的大多数文献在处理 CASH 问题时,要么通过引入新的求解器,要么是提升已有方法的表现。可能的解释是 CASH 完全与领域无关,因此相对而言更容易自动化。但是,CASH 仅仅是自动构建机器学习流程方面的一小部分。数据科学家通常会把 60–80% 的时间用在清理数据集和特征工程上(Pyle, 1999),用于微调算法的时间只有 4%(Press, 2016)。这样的分布却与当前的研究努力不匹配。我们没能找到任何覆盖先进数据清理方法的文献。在特征创建方面,所有的方法都基于深度特征合成。在构建灵活的流程方面,目前被提出的不同方法仅有三种。这三个领域中任意方向的进一步研究都有望高度提升自动创建的机器学习流程的整体表现。

目前而言,研究者关注的都是流程创建过程中的单个点。如果将动态形状的流程与自动特征工程和复杂精细的 CASH 方法相结合,有望超越当前已有的框架。但是,研究空间的复杂度也会提升到一个全新层面,这可能需要实现高效搜索的新方法。尽管如此,长期目标应该是自动构建完整流程,且其中每个单个组件都是经过优化的。

AutoML 的目标是完全自动化机器学习流程的创建,以让领域专家能使用机器学习。除了少数一些文献(如 Friedman and Markovitch, 2015; Smith et al., 2017),当前的 AutoML 算法都是以黑箱形式设计的。尽管这对经验不足的使用者而言很方便,但这种方法也有两个重大缺陷:

  • 领域专家有关于数据集的深度知识。使用这些知识,搜索空间可以大幅缩减。

  • 近些年来,机器学习的可解释性日益重要(Doshi-Velez and Kim, 2017)。用户想要能够理解获得模型的方式。使用人工设计的机器学习模型,模型的推理方式往往已经对用户而言未知了。通过自动化创建模型,用户基本上将没有机会理解选择特定流程的原因。

人类引导式机器学习(Langevin et al., 2018; Gil et al., 2019)的目标是向领域专家提出简单的问题以引导对搜索空间的探索。领域专家可以通过自己的经验引导模型创建。这一领域的进一步研究有望得到更深刻的模型,从而更接近真实地刻画现实世界的依赖关系。同时,领域专家可能有机会更好地理解机器学习模型的推理。这能促进对所提出的流程的接纳认可。

AutoML 框架通常有可被用户调节的超参数。但是,这基本上正是 AutoML 一开始就试图解决的同一问题。研究自动设计超参数更少的框架是可行的(Feurer and Hutter, 2018)。

11 总结

自 1990 年代以来,AutoML 主题已行过千里之路。但是,自动生成的流程还不能超越人类专家水平(Guyon et al., 2016)。AutoML 很可能将继续作为一个热门研究主题,并在不远的将来创造更好的整体 AutoML 框架。

理论机器学习神经架构搜索AutoML
51
相关数据
自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

网格搜索技术

网格搜索是一项模型超参数优化技术,常用于优化三个或者更少数量的超参数,本质是一种穷举法。对于每个超参数,使用者选择一个较小的有限集去探索。然后,这些超参数笛卡尔乘积得到若干组超参数。网格搜索使用每组超参数训练模型,挑选验证集误差最小的超参数作为最好的超参数。

分层任务网络技术

在人工智能中,分层任务网络(HTN)规划是自动规划的一种方法,其中动作之间的依赖关系可以以分层结构化网络的形式给出。

AlphaZero技术

DeepMind 提出的 AlphaZero 不仅征服了围棋,也在将棋、国际象棋等复杂游戏中实现了超越人类的表现。DeepMind 推出的 AlphaGo 曾在围棋项目中取得了超越人类的表现,其研究曾经两次登上 Nature。2018 年 12 月,AlphaGo 的「完全自我博弈加强版」AlphaZero 的论文又登上另一大顶级期刊 Science 的封面。在论文中,AlphaZero 不仅征服了围棋,也在将棋、国际象棋等复杂游戏中实现了超越人类的表现。

机器学习技术

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

粒子群优化技术

粒子群优化(Particle Swarm Optimization, PSO),又称微粒群算法,是由J. Kennedy和R. C. Eberhart等于1995年开发的一种演化计算技术,来源于对一个简化社会模型的模拟。其中“群(swarm)”来源于微粒群符合M. M. Millonas在开发应用于人工生命(artificial life)的模型时所提出的群体智能的5个基本原则。“粒子(particle)”是一个折衷的选择,因为既需要将群体中的成员描述为没有质量、没有体积的,同时也需要描述它的速度和加速状态。

超参数优化技术

集成学习技术

集成学习是指使用多种兼容的学习算法/模型来执行单个任务的技术,目的是为了得到更佳的预测表现。集成学习的主要方法可归类为三大类: 堆叠(Stacking)、提升(Boosting) 和 装袋(Bagging/bootstrapaggregating)。其中最流行的方法包括随机森林、梯度提升、AdaBoost、梯度提升决策树(GBDT)和XGBoost。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

遗传编程技术

遗传编程或称基因编程,简称GP,是一种从生物演化过程得到灵感的自动化生成和选择计算机程序来完成用户定义的任务的技术。从理论上讲,人类用遗传编程只需要告诉计算机“需要完成什么”,而不用告诉它“如何去完成”,最终可能实现真正意义上的人工智能:自动化的发明机器。

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

有向无环图技术

在图论中,如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。 因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。

自动驾驶汽车技术

自动驾驶汽车,又称为无人驾驶汽车、电脑驾驶汽车或轮式移动机器人,是自动化载具的一种,具有传统汽车的运输能力。作为自动化载具,自动驾驶汽车不需要人为操作即能感测其环境及导航。

规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

数据清理技术

数据清理(data cleansing)指删除、更正数据库中错误、不完整、格式有误或多余的数据。数据清理不仅仅更正错误,同样加强来自各个单独信息系统不同数据间的一致性。专门的数据清理软件能够自动检测数据文件,更正错误数据,并用全企业一致的格式整合数据。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

元学习技术

元学习是机器学习的一个子领域,是将自动学习算法应用于机器学习实验的元数据上。现在的 AI 系统可以通过大量时间和经验从头学习一项复杂技能。但是,我们如果想使智能体掌握多种技能、适应多种环境,则不应该从头开始在每一个环境中训练每一项技能,而是需要智能体通过对以往经验的再利用来学习如何学习多项新任务,因此我们不应该独立地训练每一个新任务。这种学习如何学习的方法,又叫元学习(meta-learning),是通往可持续学习多项新任务的多面智能体的必经之路。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

梯度下降技术

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

特征工程技术

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

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

支持向量机技术

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

随机搜索技术

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

特征选择技术

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

强化学习技术

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

自动化机器学习技术

机器学习最近在许多应用领域取得了长足的进步,这促成了对机器学习系统的不断增长的需求,并希望机器学习系统可以被新手快速地熟悉并使用。相应地,越来越多的商业企业推出产品旨在满足这种需求。这些服务需要解决的核心问题是:在给定数据集上使用哪种机器学习算法、是否以及如何预处理其特征以及如何设置所有超参数。这即是自动化学习(AutoML)企图解决的问题。

矩阵分解技术

矩阵分解是一种将矩阵简化为其组成部分的方法。这种方法可以简化更复杂的矩阵运算,这些运算可以在分解的矩阵上执行,而不是在原始矩阵本身上执行。它的衍生Non-negative matrix factorization也被用于降维等操作上。

/:strong