让AI学习AI:自动化机器学习的概述、发展和研究意义

2019年10月21日 14:15
來源:大数据

作者:王健宗,大型金融集团科技公司深度学习平台和AutoML平台负责人,中国人工智能开源软件发展联盟副理事长,美国佛罗里达大学人工智能博士后,发表联邦学习、深度学习、云计算和大数据等领域国际论文30余篇,以及发明专利200余项。
瞿晓阳 ,华中科技大学计算机系统结构博士,美国中佛罗里达大学访问学者,大型金融集团科技公司资深算法工程师,一直从事机器学习、大数据、体系结构方面的研究工作,在AutoML平台、面向AI的云原生架构、高性能计算、高效能存储系统等方面经验丰富。
本文摘编自《深入理解AutoML和AutoDL:构建自动化机器学习与深度学习平台》,经出版方授权发布。

AutoML概述

传统的人工智能旨在使用机器帮助人类完成特定的任务,随着人工智能的发展,在计算机领域衍生出了机器学习。机器学习旨在通过计算机程序完成对数据的分析,从而得到对世界上某件事情的预测并做出决定。

随着机器学习的不断发展,其复杂程度也在不断增高,如果还完全依靠人为规定,使计算机按照设定的规则运行,会耗费大量的人力资源。如果让计算机自己去学习和训练规则,是否能达到更好的效果呢?

跟随这一意愿的提出,就出现了本文的核心思想——自动化人工智能,也就是所谓“AI的AI”。让AI去学习AI,从而减少人工的参与,让机器完成更复杂的工作,这掀起了下一代人工智能的浪潮。

1. 什么是自动化

在介绍自动化人工智能之前,先让我们了解一下什么是自动化。传统的自动化是指让机器等设备在没有人或者只有较少人参与的情况下,按照人的要求,完成一系列任务。自动化被广泛应用于各种行业,包括农业、工业、商业、医疗等领域。

从20世纪40年代中期电子数字计算机的发明开始,数字程序控制便成为了一个新的发展方向。20世纪50年代末期,微电子技术开始发展,1958年出现晶体管计算机,1965年出现集成电路计算机,1971年出现单片微处理器。

微处理器的出现对控制技术产生了重大影响,控制工程师可以很方便地利用微处理器来实现各种复杂的控制,使综合自动化成为现实。

自动化的概念跟随时代变化不断发展。以前,自动化被认为是让机器代替人工操作、完成复杂的特定工作任务。后来随着电子和信息技术的发展,特别是随着计算机的出现和广泛应用,自动化的概念被认为是用机器(包括计算机)不仅要代替人的体力劳动,还要代替或辅助脑力劳动,以自动地完成特定的任务。

随着自动化的发展,各行各业对于自动化的需求不断增加,且对人工智能的普及和应用的要求也越来越高,成本、精确度、效率等都影响着人工智能在现实生活中的应用。在人工智能应用的快速增长中,为了提高其水平,出现了对机器学习的需求。

那么如何将自动化的思想应用到机器学习中呢?

2. AutoML的起源与发展

AutoML(Automated Machine Learning,自动化机器学习),即一种将自动化和机器学习相结合的方式,是一个新的研究方向,它可以使计算机独立完成更复杂的任务,从而解放人类的双手。

在AutoML发展前,传统的机器学习需要经历数据预处理、特征选择、算法选择和配置等,而传统的深度学习则需要经历模型架构的设计和模型的训练。上述这些步骤都需要人工来操作,不仅耗时耗力,而且对专业人员的需求也比较大,结合现实生活中人们日益增长的需求,这限制了人工智能在其他领域的应用发展。

因此,出现了这样的想法:将机器学习中的数据预处理、特征选择、算法选择等步骤与深度学习中的模型架构设计和模型训练等步骤相结合,将其放在一个“黑箱”里,通过黑箱,我们只需要输入数据,就可以得到我们想要的预测结果。

中间这个“黑箱”的运行过程,不需要人工的干预便可以自动完成,而这个自动化的系统就是我们的研究重点——AutoML。

图2-1为AutoML的一个通用运行流程,也就是上面提到的,将所有运行流程都封装在一个“黑箱”中,我们只需要输入数据集,便可得到预测结果。


▲图2-1 AutoML通用流程

AutoML主要关注两个方面——数据的获取和预测。目前已经出现了很多AutoML平台,用户在使用这些平台时,可以使用自己带的数据集,识别标签,从而得到一个经过充分训练且优化过的模型,并用该模型进行预测。大多数平台都会提示用户上传数据集,然后标记类别。

在此之后,数据预处理、选择正确的算法、优化和超参数调整等步骤都是在服务器上自主进行的。最后,平台将公开一个可用于预测的REST端点。这种方法显著改变了训练机器学习模型中涉及的传统工作流。

一些AutoML平台还支持导出与运行Android或iOS的移动设备兼容的、经过充分训练的模型。开发人员可以快速地将模型与他们的移动应用程序整合在一起,而无须学习机器学习的基本知识。

许多公司将AutoML作为一种服务提供给用户。Google Cloud AutoML、Microsoft Custom Vision和Clarifai的图像识别服务都是早期的AutoML使用者。另外很多大公司内部也都有自己的平台,例如Uber、OpenAI、DeepMind等都在NAS任务上做研究。

从发展趋势来看,AutoML是未来人工智能发展的一个重要方向,但现阶段的研究成果成熟度和实际产品应用成熟度都存在巨大的提升空间。

AutoML完全适合于认知API和定制机器学习平台。它提供了适当的定制级别,而非强制开发人员执行复杂的工作流。与以往被视为“黑箱”的认知API相比,AutoML虽然公开了相同程度的灵活性,但是结合了自定义数据和可移植性。

随着每一个平台供应商都试图实现机器学习的大众化,AutoML正在成为人工智能的未来。

图2-2是基于AutoML平台所具有的功能,在AutoML平台上可以实现多个领域的融合,既可以完成语音领域的任务,如自动语音识别系统、聊天机器人、文本语音系统;也可以完成声纹领域的任务,如声纹识别系统;还可以完成图像领域的任务,如计算机视觉、图像识别、目标检测等。


▲图2-2 AutoML平台具备的功能

AutoML的研究意义

1. AutoML的研究动机

传统的机器学习在解决问题时,首先需要对问题进行定义,然后针对特定问题收集数据,由专家对数据特征进行标定、提取特征、选择特征,然后根据所选特征训练模型、对模型进行评估,最后部署到应用上,以解决最初提出的问题。

其中数据收集、特征提取、特征选择、模型训练和模型评估的过程,是一个迭代的过程,需要反复进行、不断优化才能得到较优的模型。这个过程非常耗时费力,那么AutoML呢?

AutoML可以将传统机器学习中的迭代过程综合在一起,构建一个自动化的过程,实现自动特征工程、自动管道匹配、自动参数调整、自动模型选择等功能,从而减少时间和人力等资源的浪费。图2-3所示是传统机器学习和自动化机器学习的对比。


▲图2-3 传统机器学习和自动化机器学习对比

(1)传统机器学习是一个烦琐且耗时的过程

传统的AI模型训练往往要经历特征分析、模型选择、调参、评估等步骤,这些步骤需要经历数月的时间,如果完全没经验,时间会更长。AutoML虽然也需要经历这些步骤,但是通过自动化的方式,可以减少这些步骤的时间。

选择怎样的参数,被选择的参数是否有价值或者模型有没有问题,如何优化模型,这些步骤在从前是需要依靠个人的经验、知识或者数学方法来判断的。

而AutoML可以完全不用依赖经验,而是靠数学方法,由完整的数学推理的方式来证明。通过数据的分布和模型的性能,AutoML会不断评估最优解的分布区间并对这个区间再次采样。所以可以在整个模型训练的过程中缩短时间,提升模型训练过程的效率。

(2)传统机器学习有一定难度,准入门槛高

模型训练的难度使得很多初学者望而却步,即使是数据专家也经常抱怨训练过程是多么令人沮丧和变化无常。没有经过一定时间的学习,用户很难掌握模型选择、参数调整等步骤。

AutoML可以降低使用机器学习的门槛,它作为一个新的AI研究方法,将机器学习封装成云端产品,用户只需提供数据,系统即可完成深度学习模型的自动构建,从而实现自动化机器学习。

AutoML将会成为机器学习发展的最终形态,即机器自己完成学习任务,这样基于计算机强大计算能力所获得的模型将优于人类对它定义的模型。从使用的角度来讲,必定会有更多非专业领域的人受益于AutoML的发展。

图2-4展示的是一个使用AutoML进行图片分类的简单问题。首先上传图片并对图片进行标注;接着被标注过的图片会输入到视觉处理系统中,由视觉处理系统根据上传的图片,对标注区域的特征进行提取,并进行特征的预处理,之后根据图片特征,自动构建神经网络结构并训练该模型;经过不断地评估和优化,最后得到一个预测模型。


▲图2-4 使用AutoML进行图片分类

2. AutoML的意义和作用

21世纪是一个信息的时代,各行各业都面临着一个同样的问题,那就是需要从大量的信息中筛选出有用的信息并将其转化为价值。随着机器学习2.0的提出,自动化成为了未来机器学习发展的一个方向。

如图2-5所示,各行各业都涉及机器学习,机器学习已经融入我们生活的方方面面,比如金融、教育、医疗、信息产业等领域。


▲图2-5 机器学习可赋能产业

对于一个机器学习的新人来说,如果他想使用机器学习,则会遇到很多的障碍,也会受到很多的限制,例如:该怎样处理数据、如何选择模型、使用怎样的参数、模型效果不好该如何优化等。

AutoML使得机器学习大众化,让这些连专业术语都不懂的人,也可以使用机器学习。他们只需要提供数据,AutoML便会自动得出最佳的解决方案。而对于有一定机器学习基础的人来说,则可以自己选择模型、参数,然后让AutoML帮助训练模型。

AutoML带来的不仅仅是自动化的算法选择、超参数优化和神经网络架构搜索,它还涉及机器学习过程的每一步。从数据预处理方面,如数据转换、数据校验、数据分割,到模型方面,如超参数优化、模型选择、集成学习、自动化特征工程等,都可以通过AutoML来完成,从而减少算法工程师的工作量,使他们的工作效率得到进一步提升。

图2-6所示为2018年各人工智能行业的资金投入量,其中机器学习领域的资金投入量最大,说明了机器学习对于现在的人工智能的重要性。在其他领域,自然语言处理、计算机视觉、智能机器人、语音识别等,资金投入量也不容小觑。


▲图2-6 2018年各人工智能行业资金投入量

AutoML可以融合上述方面,实现自动化。目前,人工智能领域也确实是朝着这个方向发展,将各个行业融合在一起,只需要一个AutoML的服务器,即可实现各个领域的融合,方便用户的使用,使其更快地融入我们的现实生活,方便我们的生活。

(1)AutoML解决了人工智能行业人才缺口的瓶颈

对于急速发展的人工智能领域来说,人才的培养显得有些不足。人工智能的发展时时刻刻都在变化,而培养一批该行业的专业人员通常需要几年的时间。

以青年人群为例,从上大学开始,学校才会根据专业对他们进行培养。如果选择计算机专业,本科教育通常只会让他们了解到计算机的基础知识,使其具备基本的编程能力;通常到研究生阶段,才会接触到机器学习等复杂的人工智能。这就需要至少6年的时间才能培养出一批机器学习领域的从业人员。

这样长的人才培养周期是无法跟上人工智能行业快速发展的脚步的,而AutoML就很好地解决了这一问题。

AutoML可以提供自动化的服务,对于曾经需要人工参与的数据处理、特征处理、特征选择、模型选择、模型参数的配置、模型训练和评估等方面,实现了全自动,仅凭机器就可以独立完成这一系列工作,不需要人工干预,从而减少了人力资源的浪费,解决了人才紧缺的问题。

但是,这就涉及另一个问题了,既然机器可以完成大部分的工作,是否会造成相关专业人员的失业问题呢?

其实,这个答案必然是否定的,AutoML可以解决人才紧缺的状况,但是并不代表它能取代专业人士。现有的AutoML平台虽然可以完成这些步骤的自动化处理,但是其中的规则仍然需要人工设定,也就是说,专业人士并不会面临失业的困境,而是要做更高端的工作。

(2)AutoML可以降低机器学习的门槛,使AI平民化

前文已经提到过很多次,机器学习的自动化可以降低机器学习的入门门槛。无论是机器学习新人、机器学习行业从业者,还是机器学习行业专家,都可以很好地适应AutoML,并使用它提供的服务。

对于机器学习新人来说,只需要提供数据集上传至AutoML服务器,即可得到预测结果;对于机器学习行业的从业者而言,可以自主选择其中的参数;对于机器学习行业专家来说,可以在AutoML平台设置更多的参数,或者进一步研发AutoML。

(3)AutoML可以扩大AI应用普及率,促进传统行业变革

AutoML可以涉及图像识别、翻译、自然语言处理等多种AI技术与产品。

以自然语言处理为例,比如一个小的电商网站想对收集到的大量用户评价进行分析,了解这些评价是正面的还是负面的,以及提到了哪方面的问题。从前需要人工进行标注,现在用AutoML自然语言处理,就可以很简单地训练一个属于自己的模型,自动化地做标注和分析。

如今,AI技术的普及和发展,使得各个行业都逐步意识到AI技术对于产业、产品方面的优化作用。但是,作为金融、制造、消费、医疗、教育等传统企业,从无到有应用AI的成本往往不低,使得很多企业虽然有着需求但对于应用AI望而却步。

AutoML作为这类问题的解决方案,使得越来越多的科技企业开始研发AutoML平台,目的就是为不懂技术的传统企业提供使用AutoML技术的捷径,从而达到人人皆可用AI的局面。

AutoML作为一个新的AI研究方法,扩展了AI研究能够到达的边界,然后又在其上构建了AutoML的应用平台及产品,让AI的应用得到了较为有效的扩展,让更多行业都可以用AI解决现实世界中的问题。