| 作者 |
| [瑞士] 翁贝托·米凯卢奇(Umberto Michelucci)王健宗 瞿晓阳 |
| 丛书名 |
| 智能系统与技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9781910141204 |
| 简要 |
| 简介 |
| 这是一部从基础理论、核心原理、前沿算法等多个维度系统、全面讲解AutoML、AutoDL、AutoNAS和元学习的著作。 作者是资深的人工智能专家,平安科技深度学习平台和AutoML平台负责人。本书得到了IEEE Fellow/ACM杰出科学家/香港科技大学教授杨强教授、腾讯AI Lab副主任俞栋、美国佛罗里达大学教授李晓林等8位来自企业界、学术界和媒体界的资深专家的一致好评。它既能让新人理清AutoML的脉络,快速上手机器学习,又能让有经验的读者全面掌握AutoML的知识体系,工作变得更高效。 全书共14章,逻辑上分为四部分: 第一部分(第1~2章) 人工智能基础 对人工智能、自动化人工智能的重要概念、发展历程及现状、适用场景、主要的工具和技术等做了全面的介绍,并引出了人工智能技术未来的发展方向——AutoML,这部分是阅读本书的基础。 第二部分(第3~6章) AutoML . 主要讲解机器学习和自动化机器学习,核心是AutoML,包含自动化特征工程、自动化模型选择和自动化超参优化3个方面的内容。 第三部分(第7~13章) AutoDL 主要讲解深度学习和自动化深度学习,重点讲解了AutoDL的原理、基于强化学习的AutoDL、基于进化算法的AutoDL、AtuoDL的高阶知识、自动化模型压缩与加速,以及各种核心算法和前沿算法。 第四部分(第14章) 元学习 元学习是人工智能的理想目标,这部分对元学习的概念、流程和各种主流的学习方法都进行了详尽的介绍。 |
| 目录 |
---------------------------深度学习:基于案例理解深度神经网络--------------------------- 译者序 前言 审校者简介 致谢 第1章 计算图和TensorFlow1 1.1 如何构建Python环境1 1.1.1 创建环境3 1.1.2 安装TensorFlow7 1.1.3 Jupyter记事本8 1.2 TensorFlow基本介绍10 1.2.1 计算图10 1.2.2 张量12 1.2.3 创建和运行计算图13 1.2.4 包含tf.constant的计算图13 1.2.5 包含tf.Variable的计算图14 1.2.6 包含tf. placeholder的计算图15 1.2.7 运行和计算的区别18 1.2.8 节点之间的依赖关系18 1.2.9 创建和关闭会话的技巧19 第2章 单一神经元21 2.1 神经元结构21 2.1.1 矩阵表示法23 2.1.2 Python实现技巧:循环和NumPy24 2.1.3 激活函数25 2.1.4 代价函数和梯度下降:学习率的特点32 2.1.5 学习率的应用示例34 2.1.6 TensorFlow中的线性回归示例38 2.2 逻辑回归示例47 2.2.1 代价函数47 2.2.2 激活函数48 2.2.3 数据集48 2.2.4 TensorFlow实现51 2.3 参考文献54 第3章 前馈神经网络56 3.1 网络架构57 3.1.1 神经元的输出59 3.1.2 矩阵维度小结59 3.1.3 示例:三层网络的方程59 3.1.4 全连接网络中的超参数60 3.2 用于多元分类的softmax函数60 3.3 过拟合简要介绍61 3.3.1 过拟合示例61 3.3.2 基本误差分析66 3.4 Zalando数据集68 3.5 使用TensorFlow构建模型71 3.5.1 网络架构71 3.5.2 softmax函数的标签转换:独热编码73 3.5.3 TensorFlow模型74 3.6 梯度下降变体77 3.6.1 批量梯度下降77 3.6.2 随机梯度下降78 3.6.3 小批量梯度下降79 3.6.4 各种变体比较80 3.7 错误预测示例84 3.8 权重初始化84 3.9 有效添加多个层87 3.10 增加隐藏层的优点89 3.11 比较不同网络89 3.12 选择正确网络的技巧92 第4章 训练神经网络93 4.1 动态学习率衰减93 4.1.1 迭代还是周期94 4.1.2 阶梯式衰减95 4.1.3 步长衰减96 4.1.4 逆时衰减98 4.1.5 指数衰减100 4.1.6 自然指数衰减101 4.1.7 TensorFlow实现105 4.1.8 将方法应用于Zalando数据集108 4.2 常用优化器109 4.2.1 指数加权平均109 4.2.2 Momentum112 4.2.3 RMSProp115 4.2.4 Adam117 4.2.5 应该使用哪种优化器117 4.3 自己开发的优化器示例118 第5章 正则化123 5.1 复杂网络和过拟合123 5.2 什么是正则化127 5.3 p范数128 5.4 2正则化128 5.4.1 2正则化原理128 5.4.2 TensorFlow实现129 5.5 1正则化136 5.5.1 1正则化原理与TensorFlow实现137 5.5.2 权重真的趋于零吗137 5.6 Dropout140 5.7 Early Stopping143 5.8 其他方法144 第6章 指标分析145 6.1 人工水平表现和贝叶斯误差146 6.2 关于人工水平表现的故事148 6.3 MNIST中的人工水平表现149 6.4 偏差150 6.5 指标分析图151 6.6 训练集过拟合151 6.7 测试集152 6.8 如何拆分数据集153 6.9 不平衡类分布:会发生什么157 6.10 精确率、召回率和F1指标161 6.11 不同分布的数据集164 6.12 k折交叉验证170 6.13 手动指标分析示例177 第7章 超参数调优183 7.1 黑盒优化183 7.2 黑盒函数注意事项184 7.3 超参数调优问题185 7.4 黑盒问题示例186 7.5 网格搜索186 7.6 随机搜索190 7.7 粗到细优化192 7.8 贝叶斯优化195 7.8.1 Nadaraya-Watson回归195 7.8.2 高斯过程195 7.8.3 平稳过程196 7.8.4 用高斯过程预测196 7.8.5 采集函数200 7.8.6 上置信界(UCB)201 7.8.7 示例201 7.9 对数尺度采样207 7.10 使用Zalando数据集的超参数调优208 7.11 径向基函数注意事项214 第8章 卷积神经网络和循环神经网络216 8.1 卷积核和过滤器216 8.2 卷积217 8.3 卷积运算示例223 8.4 池化227 8.5 构建CNN块230 8.5.1 卷积层230 8.5.2 池化层231 8.5.3 各层的叠加231 8.5.4 CNN示例232 8.6 RNN介绍237 8.6.1 符号237 8.6.2 RNN的基本原理238 8.6.3 循环神经网络名称的由来239 8.6.4 学会统计239 第9章 研究项目244 9.1 问题描述244 9.2 数学模型246 9.3 回归问题246 9.4 数据准备250 9.5 模型训练258 第10章 从零开始进行逻辑回归261 10.1 逻辑回归的数学背景262 10.2 Python实现264 10.3 模型测试266 10.3.1 数据集准备267 10.3.2 运行测试268 10.4 结论268 ---------------------------深入理解AutoML和AutoDL:构建自动化机器学习与深度学习平台--------------------------- 赞誉 前言 第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 |