《深入理解AutoML和AutoDL:构建自动化机器学习与深度学习平台》

华章计算机 发表于 2019/11/15 14:57:13 2019/11/15
【摘要】 本节书摘来自华章计算机《深入理解AutoML和AutoDL:构建自动化机器学习与深度学习平台》一作者是王健宗 瞿晓阳  。

智能系统与技术丛书

深入理解AutoML和AutoDL:构建自动化机器

学习与深度学习平台

 

1573800946446056.jpg

王健宗 瞿晓阳 著

 

 

 

 


 

 

 

 

Praise

赞  誉

 

自动化机器学习是未来人工智能的一个重要发展方向,值得我们关注和学习。本书作者王健宗博士是机器学习方面的资深研究者和实践者,在本书中,他不仅讲解了AutoML的基础理论知识,还详细分析了近几年AutoDL方面最前沿的算法和技术,提供了很好的方法与思路参考。想要系统研究AutoML并把握其最新技术趋势的读者,本书不容错过。

—杨强 IEEE Fellow/IAPR Fellow/AAAS Fellow/ACM杰出科学家/

微众银行首席人工智能官/香港科技大学计算机与工程系教授

 

人工智能技术将会重塑很多行业,而人工智能的自动化将极大地加速这一进程。本书作者王健宗博士是人工智能领域的知名专家,兼具深厚的理论功底和丰富的实践经验,一直致力于让AI无处不在。他的这本专著深入浅出地总结了人工智能自动化的基本理论、框架和技术,对研究和应用人工智能自动化的专业人士和初学者来说都是一本不可多得的参考书。

—俞栋 腾讯AI Lab副主任/西雅图人工智能实验室负责人

 

AutoML可以使机器学习的调参建模流程实现自动化,大大降低机器学习的门槛,让用户在没有丰富机器学习经验的情况下也能开发机器学习模型,大大缩短创建模型的时间。王健宗博士的这本书不仅非常系统、深入地讲解了AutoML和AutoDL的理论知识和核心技术,而且给出了具体的工程实践方法。对于想学习AutoML和AutoDL技术或搭建自动化机器学习平台的读者来讲,本书有很大的参考价值。

—李晓林 美国佛罗里达大学教授/

同盾科技副总裁兼人工智能研究院院长

自动化机器学习探索一种“学习的学习”模式,既是国际学术界热点研究问题,也是工业界急需的核心技术。本书是国内顶尖AI专家王健宗博士在实践中摸索出的自动化机器学习理论、方法与系统框架,具有极高的学术和应用价值。

—陈为 教授/博导/浙江大学计算机学院副院长

 

AutoML在机器学习的发展过程中一直是研究者的梦想,让模型的超参数甚至模型结构本身就可以通过学习过程自动探索到最优解。王健宗等著的这本AutoML专著涵盖自动化特征工程、自动化超参优化,以及神经网络架构搜索等前沿技术方法。从理论和实践双重维度,对自动化机器学习做了全面介绍,对工程实践也有很好的指导意义。

—李磊 字节跳动人工智能实验室总监

 

AutoML的概念于2012年由学术界提出,当时的目的是解决编程时人工调校参数的问题。在谷歌、微软等公司的大力推动下,目前AutoML的研究越来越深入,应用越来越广泛。AutoML可以帮助选择模型并选择超参数,成为机器学习和AI自动化和平民化的重要方向。王博士的这本书填补了AutoML中文图书的空白,从理论与实践的双重维度,对AutoML和AutoDL的入门知识和进阶知识做了全面介绍,值得一读!

—陈继东 蚂蚁金服ZOLOZ全球可信身份平台负责人/资深数据专家

 

AutoML是当前AI领域的前沿方向之一,由谷歌等巨头引领,让深度学习的使用更趋自动化、民主化,是降低机器学习门槛的一大利器。王健宗博士查阅并解读了近百篇论文,详尽介绍了最前沿的AutoML算法和技术,本书堪称打开AutoML和AutoDL深入学习之门的神奇钥匙。

—杨静 新智元创始人兼CEO

 

如今,自动化机器学习技术已经风靡全球。模型选择、特征工程、调参等工作自动化之后,普通民众学习AI以及专业人士运用AI的效率得到了极大提升。王博士既是奋斗在科研一线的AI专家,又是平安科技的大型AI项目负责人,理论与实践能力均炉火纯青,写这本书再适合不过。相信很多人能从本书中受益。

—周磊(July) 七月在线创始人兼CEO

 

 

 

 

 

Preface

前  言

为什么要写这本书

“人工智能”“机器学习”“深度学习”“联邦学习”“自动化”等已经成为互联网行业使用最频繁的词汇,在人工智能发展日益成熟的今天,越来越多的研究者将目标聚焦于“自动化”。出于对AutoML技术出现的振奋和对人工智能的热情与投入,我们逐渐萌生了撰写这本书的想法,我们想让更多的人了解AutoML,了解我们身边最前沿的技术和知识,最终能够让天下没有难的AI,实现普惠AI。如果一定要问我们写这本书的原因,我觉得可以归结为如下三点:

首先,已经有多家互联网公司发布了AutoML平台,毫无疑问AutoML已经成为目前各大公司的“护城河”,我们希望通过本书来揭开AutoML平台的神秘面纱。基于AutoML平台,专业编程人员和非专业人员均可快速创建项目并训练模型,但是,由于国内至今还没有一本关于AutoML算法介绍的书籍,平台用户只知其然却不知其所以然。

其次,我们想要通过本书建立一套完整的AutoML知识体系。很多AutoML从业者懂技术,但是缺少一套完整的知识体系来支撑自己的核心技术,有鉴于此,我们在开始撰写本书前做的第一件事就是建立知识体系,包括自动化机器学习、神经架构搜索的核心算法、自动化模型压缩、模型调参、深度学习的垂直领域应用以及元学习等。这套知识体系可以帮助很多从业者认清技术方向,也可以帮助初期从业者选择研究领域。我们期望有更多人来为AutoML这个诞生仅仅一年半的新技术添砖加瓦,共建AutoML生态。

最后,我们希望这本书能为更多非专业人员带来价值。本书的初期定位是AutoML入门书籍,换句话说,我们撰写的初衷是想为更多不懂算法但是热爱AI技术的爱好者提供一些思路和理解角度。因此,我们在本书中尽量使用白话来解释算法思想,从人工智能的初期发展到AutoML技术的成熟,可以让每一个非技术人员快速理解AutoML。

对于本书,我们倾注了很多热情和心血,从2017年年底AutoML技术开始出现就开始深入探索,接着起草最初书稿框架到成型历时一年多,其中经过了多次章节结构调整和修改,查阅并解读近百篇AI前沿论文,才有了今天大家看到了这本书。在本书中,我们从0到1介绍了AutoML技术的方方面面,希望这本书能带给你惊喜。

读者对象

本书适用于非计算机专业研究人员、期望转型AI领域的技术爱好者,同样也适用于初级、中级和高级的人工智能算法工程师、项目经理和产品经理等。

本书特色

AutoML技术的发展日新月异,诸多科学家和研究者会在论文中发表自己的研究成果,但是目前国内还没有一本讲解AutoML发展和技术的书籍。本书聚焦于AutoML,从无到有地介绍了AutoML的发展过程以及相关的算法。本书涉及AutoML技术的多个方面,从AutoML到AutoDL,最后延伸到元学习,为读者提供了一套完整的知识体系。

如何阅读这本书

本书是关于自动化人工智能的一本入门级书籍,书中涵盖了大部分基础知识,因此非专业人士也可以读懂。自动化人工智能的最重要的两个分支是自动化机器学习和自动化深度学习,因此,本书的核心和聚焦在这两大研究领域,旨在为专业人士和刚入门的学者提供一些研究方向和思路。

从逻辑上,全书一共分为四个部分。

第一部分(第1~2章)是关于人工智能的基础概述,并介绍了现有的AutoML平台。

第二部分(第3~6章)是自动化机器学习,这里的机器学习是指统计机器学习,这一部分主要介绍了基本的机器学习知识以及自动化特征工程、自动化模型选择和自动化超参优化。

第三部分(第7~13章)是自动化深度学习,众所周知,近年来深度学习的研究开展得如火如荼,为了拓展读者的知识领域和研究思路,我们在这一部分花费了大量的篇幅来介绍近几年最前沿的算法和技术,这也是全书最核心的章节。

第四部分(第14章)是关于元学习的内容,我们认为元学习应该是独立于统计机器学习和深度学习的一个研究领域,因为元学习跳出了学习“结果”的这种思想,学习的是“学习过程”,这也是自动化人工智能的理想目标。因此,我们将元学习单独作为一个部分,作为全书内容的升华,读者可以在本书的引导下展开更深入的研究。

我们将本书的重点内容罗列为以下几点:

1)自动化特征工程生成方法,分别是深度特征合成算法、Featuretools自动特征提取以及基于时序特征的自动化特征工程。

2)自动化模型选择方法,包括贝叶斯优化算法、进化算法、分布式优化等。

3)自动化超参优化,主要有序列超参优化、进化算法的运用以及迁移学习方法。

4)神经架构搜索,主要搜索算法有强化学习和进化算法。

5)神经架构搜索加速方案,包括权值共享法、超网络、网络态射法、代理评估模型以及可微分神经架构搜索。

6)模型压缩和加速方案,包括量化、修剪法、稀疏化以及轻量级模型设计。

专业读者或具体从业者可根据自己的研究领域以及感兴趣情况选择以上部分内容重点阅读。对于非专业读者,本书中也有最基本的算法入门介绍,可以将本书作为一本AutoML入门书籍进行全书通读。

勘误和支持

本书并没有涵盖AutoML研究领域的全部知识,因为这个领域的知识体系之庞大,不是一本书就可以介绍完的。譬如我们书中所涉及的图计算网络、超网络、蒙特卡洛树搜索以及元学习都可以成为一个独立的研究课题。在AutoML技术的发展过程中,很多前沿算法会不断被提出和更新,因此书中的内容会存在一定的局限性。

本书的很多思想和知识体系都是作者基于自己的理解建立的,难免会出现理解不当或者不准确的地方,恳请读者批评指正。如果你有更多的宝贵意见,欢迎发送邮件至邮箱

yfc@hzbook.com,我们会认真采纳你的意见和建议。这本书的结束并不意味着我们的研究就此结束,我们还需要不断挖掘其中的精华与奥妙,期待能够得到你们的真挚反馈和支持。

致谢

在本书的撰写和研究期间,感谢多名AutoML技术爱好者(赵淑贞、尚迪雅、曾昱为、吴文启、唐彦玺、张君婷、贺凡等)的参与支持。

感谢出版社对本书的耐心修订和整理,没有他们,就没有今天这本书的出版。

最后,我要感谢读者,感谢读者对我们的信任。我们尽最大努力想要给大家呈现一本逻辑清晰、技术易懂的入门书籍,感谢读者选择了这本书,选择就是对我们最大的信任。

谨以此书献给AutoML的技术爱好者和研究者们!

 

王健宗

2019年8月于深圳

 

 

 

 

 

CONTENTS

目录

赞誉

前言

第1章 人工智能概述1

1.1 全面了解人工智能1

1.1.1 人工智能定义1

1.1.2 弱人工智能、强人工智能与超人工智能2

1.1.3 人工智能三大主义3

1.1.4 机器学习与深度学习4

1.2 人工智能发展历程5

1.3 深度学习的崛起之路7

1.3.1 人脸识别的起源7

1.3.2 自动驾驶的福音7

1.3.3 超越人类的AI智能体8

1.3.4 懂你的AI8

1.3.5 奔跑、飞行以及玩游戏的AI8

1.3.6 人人都可以创造属于自己的AI8

1.4 深度学习的发展9

1.4.1 计算机视觉9

1.4.2 自然语言处理10

1.4.3 语音识别11

1.5 下一代人工智能11

1.6 参考文献13

第2章 自动化人工智能14

2.1 AutoML概述14

2.1.1 什么是自动化14

2.1.2 AutoML的起源与发展15

2.2 AutoML的研究意义17

2.2.1 AutoML的研究动机17

2.2.2 AutoML的意义和作用18

2.3 现有AutoML平台产品21

2.3.1 谷歌Cloud AutoML21

2.3.2 百度EasyDL23

2.3.3 阿里云PAI24

2.3.4 探智立方DarwinML28

2.3.5 第四范式AI ProphetAutoML29

2.3.6 智易科技30

2.4 参考文献31

第3章 机器学习概述32

3.1 机器学习的发展32

3.1.1 “机器学习”名字的由来32

3.1.2 “机器学习”的前世今生33

3.1.3 “机器学习”的理论基础34

3.2 机器学习的实现方法36

3.2.1 分类问题36

3.2.2 回归问题38

3.2.3 聚类问题39

3.3 自动化机器学习40

3.3.1 机器学习面临的问题40

3.3.2 为什么会产生AutoML41

3.4 参考文献41

第4章 自动化特征工程43

4.1 特征工程43

4.1.1 什么是特征43

4.1.2 什么是特征工程44

4.2 特征工程处理方法45

4.2.1 特征选择45

4.2.2 数据预处理47

4.2.3 特征压缩48

4.3 手工特征工程存在的问题49

4.4 自动化特征工程50

4.4.1 什么是自动化特征工程50

4.4.2 机器学习和深度学习的特征工程51

4.5 自动化特征工程生成方法52

4.5.1 深度特征合成算法52

4.5.2 Featuretools自动特征提取52

4.5.3 基于时序数据的自动化特征工程56

4.6 自动化特征工程工具67

4.6.1 自动化特征工程系统67

4.6.2 自动化特征工程平台71

4.7 参考文献75

第5章 自动化模型选择76

5.1 模型选择76

5.2 自动化模型选择77

5.2.1 基于贝叶斯优化的自动化模型选择78

5.2.2 基于进化算法的自动化模型选择84

5.2.3 分布式自动化模型选择86

5.2.4 自动化模型选择的相关平台92

5.3 自动集成学习94

5.3.1 集成学习基础94

5.3.2 集成学习之结合策略97

5.3.3 自动化模型集成98

5.4 参考文献99

第6章 自动化超参优化101

6.1 概述101

6.1.1 问题定义103

6.1.2 搜索空间103

6.1.3 搜索策略103

6.1.4 评价预估104

6.1.5 经验迁移加速105

6.2 基本方法105

6.2.1 网格搜索105

6.2.2 随机搜索105

6.3 基于模型的序列超参优化106

6.3.1 代理模型的选择108

6.3.2 代理模型的更新108

6.3.3 新超参组的选择109

6.3.4 基于高斯过程回归的序列超参优化111

6.3.5 基于随机森林算法代理的序列超参优化112

6.3.6 基于TPE算法的序列超参优化114

6.3.7 SMBO的进阶技巧114

6.4 基于进化算法的自动化超参优化115

6.4.1 基于进化策略的自动化超参优化115

6.4.2 基于粒子群算法的自动化超参优化116

6.5 基于迁移学习的超参优化加速方法117

6.5.1 经验迁移机制117

6.5.2 经验迁移衰退机制117

6.5.3 经验迁移权重机制117

6.5.4 优化过程的试点机制118

6.6 参考文献118

第7章 深度学习基础120

7.1 深度学习简介120

7.1.1 什么是神经元120

7.1.2 人工神经网络的发展历程121

7.1.3 深度学习方法123

7.2 卷积神经网络简介123

7.2.1 卷积层123

7.2.2 池化层125

7.2.3 全连接层126

7.3 CNN经典模型126

7.3.1 LeNet126

7.3.2 AlexNet127

7.3.3 VGGNet128

7.3.4 GoogLeNet129

7.3.5 ResNet130

7.3.6 DenseNet131

7.4 循环神经网络132

7.4.1 基本循环神经模型132

7.4.2 LSTM模型133

7.4.3 GRU模型134

7.5 参考文献134

第8章 自动化深度学习概述136

8.1 深度学习vs自动化深度学习136

8.2 什么是NAS136

8.2.1 问题定义137

8.2.2 搜索策略139

8.2.3 加速方案140

8.3 NAS方法分类140

第9章 基于强化学习的AutoDL142

9.1 强化学习基础142

9.1.1 强化学习简介142

9.1.2 基本要素及问题定义144

9.1.3 发展历史144

9.1.4 基本方法146

9.2 两类基本模型147

9.2.1 TD经典算法148

9.2.2 DQN系列算法149

9.2.3 策略梯度算法152

9.3 强化学习之Actor-Critic系列154

9.3.1 Actor-Critic算法154

9.3.2 确定性策略梯度155

9.3.3 深度确定性策略梯度157

9.3.4 异步优势Actor-Critic算法158

9.3.5 近端策略优化160

9.3.6 分布式近端策略优化164

9.4 基于强化学习的自动搜索166

9.5 基本搜索方法166

9.5.1 基于层的搜索166

9.5.2 基于块的搜索169

9.5.3 基于连接的搜索171

9.6 进阶搜索方法173

9.6.1 逆强化学习173

9.6.2 图超网络174

9.6.3 蒙特卡洛树搜索175

9.6.4 知识提炼(教师网络)177

9.7 参考文献179

第10章 基于进化算法的AutoDL181

10.1 启发式算法181

10.1.1 随机搜索182

10.1.2 近邻搜索183

10.1.3 进化计算187

10.1.4 启发式算法的局限性189

10.2 初代进化算法190

10.2.1 基本术语190

10.2.2 基础算子191

10.2.3 遗传算法196

10.2.4 进化策略198

10.2.5 进化规划199

10.3 其他近代进化算法200

10.3.1 遗传编程算法簇200

10.3.2 群体算法—以PSO为例205

10.3.3 文化基因算法207

10.3.4 差分进化算法208

10.3.5 分布估计算法208

10.4 进化神经网络209

10.4.1 简介209

10.4.2 神经网络编码方式210

10.4.3 竞争约定211

10.4.4 网络结构的创新性212

10.4.5 NAS之进化算法212

10.5 细粒度的神经进化(NEAT算法)213

10.5.1 基因编码214

10.5.2 基因的可追溯性216

10.5.3 通过物种形成保护创新结构216

10.6 粗粒度的神经进化(CoDeep-NEAT算法)218

10.6.1 DeepNEAT算法218

10.6.2 CoDeepNEAT算法219

10.7 block-level的进化220

10.7.1 Genetic CNN算法220

10.7.2 CGP-CNN方法222

10.8 基于node-level的网络架构进化224

10.8.1 思想简介224

10.8.2 基本算法设计225

10.8.3 信息复用与加速226

10.9 基于NAS搜索空间的网络架构进化227

10.9.1 思想简介227

10.9.2 基本算法设计227

10.9.3 信息复用与加速228

10.10 基于层次拓扑表示的网络进化方法228

10.10.1 思想简介228

10.10.2 分级表示229

10.10.3 随机的层次分级进化230

10.11 参考文献230

第11章 AutoDL高阶233

11.1 搜索加速之权值共享法233

11.1.1 ENAS233

11.1.2 基于稀疏优化的NAS235

11.2 基于one-shot模型的架构搜索236

11.2.1 超网络的应用236

11.2.2 基于one-shot的搜索237

11.2.3 实例级架构搜索238

11.2.4 单路径超网络240

11.3 搜索加速之代理评估模型241

11.3.1 代理模型241

11.3.2 PNAS中的LSTM代理242

11.4 基于网络态射法的神经架构搜索244

11.4.1 网络态射的提出244

11.4.2 什么是网络态射244

11.4.3 网络态射+迂回爬山法246

11.5 可微分神经架构搜索247

11.5.1 可微分神经架构搜索的来源247

11.5.2 可微分神经架构搜索的方法248

11.6 参考文献250

第12章 垂直领域的AutoDL252

12.1 AutoCV252

12.1.1 Auto-DeepLab(图像语义分割)252

12.1.2 随机连线神经网络257

12.2 AutoVoice261

12.2.1 关键词定位问题定义261

12.2.2 随机自适应架构搜索原理262

12.2.3 SANAS模型262

12.3 AutoNLP263

12.3.1 什么是自注意力机制263

12.3.2 初识Transformer模型265

12.3.3 Evolved Transformer结构266

12.4 参考文献270

第13章 自动化模型压缩与加速271

13.1 从生物角度看模型压缩的重要性271

13.1.1 人脑神经元的修剪271

13.1.2 大脑的冗余性272

13.1.3 修剪的意义273

13.2 模型压缩发展概述274

13.3 入门级方法:量化技术275

13.3.1 量化技术275

13.3.2 二值化网络276

13.3.3 TensorRT277

13.4 初级方法:修剪法278

13.4.1 修剪法278

13.4.2 修剪与修复279

13.5 中级方法:稀疏化技术281

13.5.1 正则化281

13.5.2 知识精炼281

13.5.3 张量分解281

13.6 高级方法:轻量级模型设计284

13.6.1 简化卷积操作284

13.6.2 深度可分离卷积285

13.6.3 改进的Inception287

13.7 自动化模型压缩技术289

13.7.1 AMC算法289

13.7.2 PocketFlow框架291

13.8 基于AutoDL的轻量级模型292

13.8.1 问题定义292

13.8.2 帕累托最优问题293

13.8.3 进化算法的应用294

13.8.4 强化学习的应用296

13.8.5 可微分架构搜索298

13.9 参考文献300

第14章 元学习302

14.1 什么是元学习302

14.1.1 基本介绍302

14.1.2 经典案例303

14.1.3 深入了解元学习304

14.1.4 元学习应用的发展306

14.2 元学习的通用流程306

14.2.1 基本定义306

14.2.2 流程框架306

14.3 从模型评估中学习307

14.3.1 任务无关推荐308

14.3.2 参数空间设计308

14.3.3 参数转换309

14.3.4 学习曲线310

14.4 从任务属性中学习310

14.4.1 元特征310

14.4.2 学习元特征311

14.4.3 相似任务的热启动优化311

14.4.4 元模型311

14.4.5 管道合成312

14.4.6 是否调整312

14.5 从先前模型中学习312

14.5.1 迁移学习313

14.5.2 神经网络中的元学习313

14.5.3 小样本学习314

14.5.4 监督学习之外的方法315

14.6 基于模型的方法316

14.6.1 记忆增强神经网络316

14.6.2 元网络317

14.6.3 模型无关的元学习方法317

14.6.4 利用注意力机制的方法319

14.6.5 基于时间卷积的方法320

14.6.6 基于损失预测的方法321

14.6.7 元强化学习321

14.7 基于度量的方法322

14.7.1 Siamese网络322

14.7.2 匹配网络324

14.7.3 关系网络324

14.7.4 原型网络325

14.8 基于优化的方法326

14.8.1 基于LSTM网络的元学习者326

14.8.2 未知模型的元学习326

14.8.3 Reptile:可扩展元学习方法327

14.8.4 基于梯度预测的方法327

14.9 参考文献329

结束语332


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。