《Python深度学习》
内容简介
深度学习名著重磅升级,涵盖Transformer架构等开创性进展
流行深度学习框架Keras之父执笔,文字生动、见解深刻
不用一个数学公式,利用直觉自然入门深度学习
近年来,深度学习在自然语言处理、计算机视觉等领域取得了非凡的进展。从机器翻译和文本生成到自动驾驶和虚拟助手,我们受益于深度学习技术的逐渐普及。然而,深度学习还远未发挥全部潜力。欢迎来到深度学习的世界!在这个规模呈爆发式增长的领域,仍有许多“宝藏”等待你去发掘。
本书由流行深度学习框架Keras之父弗朗索瓦·肖莱执笔,不用数学公式,而用Python代码帮助你直观理解深度学习的核心思想。本书在第1版的基础上进行了大幅更新和增补,以体现深度学习领域的快速发展。
作者简介
【作者简介】
弗朗索瓦·肖莱(François Chollet)
谷歌公司深度学习科学家,流行深度学习框架Keras之父。Keras的GitHub星标数近6万,用户数量已超100万。此外,他也是TensorFlow框架的贡献者,个人Kaggle竞赛全球排名曾获第17名。利用Keras,他致力于普及深度学习技术和实现通用人工智能。
【译者简介】
张亮(hysic)
毕业于北京大学物理学院,核安全高级工程师,深谙机器学习和数据分析,译有《Python机器学习基础教程》《Python数据处理》等。
目录
第1章 什么是深度学习 1
1.1 人工智能、机器学习和深度学习 1
1.1.1 人工智能 2
1.1.2 机器学习 2
1.1.3 从数据中学习规则与表示 3
1.1.4 深度学习之“深度” 5
1.1.5 用三张图理解深度学习的工作原理 7
1.1.6 深度学习已取得的进展 8
1.1.7 不要相信短期炒作 9
1.1.8 人工智能的未来 10
1.2 深度学习之前:机器学习简史 10
1.2.1 概率建模 11
1.2.2 早期神经网络 11
1.2.3 核方法 11
1.2.4 决策树、随机森林和梯度提升机 12
1.2.5 回到神经网络 13
1.2.6 深度学习有何不同 14
1.2.7 机器学习现状 14
1.3 为什么要用深度学习,为什么是现在 16
1.3.1 硬件 17
1.3.2 数据 17
1.3.3 算法 18
1.3.4 新一轮投资热潮 18
1.3.5 深度学习的普及 19
1.3.6 这种趋势会持续下去吗 20
第2章 神经网络的数学基础 21
2.1 初识神经网络 21
2.2 神经网络的数据表示 25
2.2.1 标量(0阶张量) 25
2.2.2 向量(1阶张量) 25
2.2.3 矩阵(2阶张量) 26
2.2.4 3阶张量与更高阶的张量 26
2.2.5 关键属性 26
2.2.6 在NumPy中操作张量 28
2.2.7 数据批量的概念 28
2.2.8 现实世界中的数据张量实例 29
2.2.9 向量数据 29
2.2.10 时间序列数据或序列数据 29
2.2.11 图像数据 30
2.2.12 视频数据 31
2.3 神经网络的“齿轮”:张量运算 31
2.3.1 逐元素运算 32
2.3.2 广播 33
2.3.3 张量积 34
2.3.4 张量变形 36
2.3.5 张量运算的几何解释 37
2.3.6 深度学习的几何解释 40
2.4 神经网络的“引擎”:基于梯度的优化 40
2.4.1 什么是导数 41
2.4.2 张量运算的导数:梯度 42
2.4.3 随机梯度下降 44
2.4.4 链式求导:反向传播算法 46
2.5 回顾第一个例子 51
2.5.1 用TensorFlow 从头开始重新实现第一个例子 52
2.5.2 完成一次训练步骤 54
2.5.3 完整的训练循环 55
2.5.4 评估模型 55
2.6 本章总结 56
第3章 Keras 和TensorFlow 入门 57
3.1 TensorFlow 简介 57
3.2 Keras 简介 58
3.3 Keras 和TensorFlow 简史 59
3.4 建立深度学习工作区 60
3.4.1 Jupyter笔记本:运行深度学习实验的首选方法 60
3.4.2 使用Colaboratory 61
3.5 TensorFlow入门 63
3.5.1 常数张量和变量 64
3.5.2 张量运算:用TensorFlow进行数学运算 66
3.5.3 重温GradientTape API 66
3.5.4 一个端到端的例子:用TensorFlow编写线性分类器 67
3.6 神经网络剖析:了解核心Keras API 71
3.6.1 层:深度学习的基础模块 71
3.6.2 从层到模型 74
3.6.3 编译步骤:配置学习过程 75
3.6.4 选择损失函数 77
3.6.5 理解fit()方法 77
3.6.6 监控验证数据上的损失和指标 78
3.6.7 推断:在训练后使用模型 79
3.7 本章总结 80
第4章 神经网络入门:分类与回归 81
4.1 影评分类:二分类问题示例 82
4.1.1 IMDB 数据集 82
4.1.2 准备数据 83
4.1.3 构建模型 84
4.1.4 验证你的方法 87
4.1.5 利用训练好的模型对新数据进行预测 90
4.1.6 进一步实验 90
4.1.7 小结 90
4.2 新闻分类:多分类问题示例 91
4.2.1 路透社数据集 91
4.2.2 准备数据 92
4.2.3 构建模型 92
4.2.4 验证你的方法 93
4.2.5 对新数据进行预测 96
4.2.6 处理标签和损失的另一种方法 96
4.2.7 拥有足够大的中间层的重要性 96
4.2.8 进一步实验 97
4.2.9 小结 97
4.3 预测房价:标量回归问题示例 97
4.3.1 波士顿房价数据集 98
4.3.2 准备数据 98
4.3.3 构建模型 99
4.3.4 利用K折交叉验证来验证你的方法 99
4.3.5 对新数据进行预测 103
4.3.6 小结 103
4.4 本章总结 104
第5章 机器学习基础 105
5.1 泛化:机器学习的目标 105
5.1.1 欠拟合与过拟合 105
5.1.2 深度学习泛化的本质 110
5.2 评估机器学习模型 115
5.2.1 训练集、验证集和测试集 115
5.2.2 超越基于常识的基准 118
5.2.3 模型评估的注意事项 119
5.3 改进模型拟合 119
5.3.1 调节关键的梯度下降参数 119
5.3.2 利用更好的架构预设 121
5.3.3 提高模型容量 121
5.4 提高泛化能力 123
5.4.1 数据集管理 123
5.4.2 特征工程 124
5.4.3 提前终止 125
5.4.4 模型正则化 125
5.5 本章总结 132
第6章 机器学习的通用工作流程 133
6.1 定义任务 134
6.1.1 定义问题 134
6.1.2 收集数据集 135
6.1.3 理解数据 138
6.1.4 选择衡量成功的指标 139
6.2 开发模型 139
6.2.1 准备数据 139
6.2.2 选择评估方法 140
6.2.3 超越基准 141
6.2.4 扩大模型规模:开发一个过拟合的模型 142
6.2.5 模型正则化与调节超参数 142
6.3 部署模型 143
6.3.1 向利益相关者解释你的工作并设定预期 143
6.3.2 部署推断模型 143
6.3.3 监控模型在真实环境中的性能 146
6.3.4 维护模型 146
6.4 本章总结 147
第7章 深入Keras 148
7.1 Keras 工作流程 148
7.2 构建Keras 模型的不同方法 149
7.2.1 序贯模型 149
7.2.2 函数式API 152
7.2.3 模型子类化 157
7.2.4 混合使用不同的组件 159
7.2.5 用正确的工具完成工作 160
7.3 使用内置的训练循环和评估循环 160
7.3.1 编写自定义指标 161
7.3.2 使用回调函数 162
7.3.3 编写自定义回调函数 164
7.3.4 利用TensorBoard进行监控和可视化 165
7.4 编写自定义的训练循环和评估循环 167
7.4.1 训练与推断 168
7.4.2 指标的低阶用法 169
7.4.3 完整的训练循环和评估循环 169
7.4.4 利用tf.function加快运行速度 171
7.4.5 在fit()中使用自定义训练循环 172
7.5 本章总结 174
第8章 计算机视觉深度学习入门 175
8.1 卷积神经网络入门 176
8.1.1 卷积运算 178
8.1.2 最大汇聚运算 182
8.2 在小型数据集上从头开始训练一个卷积神经网络 184
8.2.1 深度学习对数据量很小的问题的适用性 184
8.2.2 下载数据 185
8.2.3 构建模型 . 187
8.2.4 数据预处理 189
8.2.5 使用数据增强 193
8.3 使用预训练模型 196
8.3.1 使用预训练模型做特征提取 197
8.3.2 微调预训练模型 204
8.4 本章总结 208
第9章 计算机视觉深度学习进阶 209
9.1 三项基本的计算机视觉任务 209
9.2 图像分割示例 210
9.3 现代卷积神经网络架构模式 218
9.3.1 模块化、层次结构和复用 218
9.3.2 残差连接 221
9.3.3 批量规范化 224
9.3.4 深度可分离卷积 226
9.3.5 综合示例:一个类似Xception的迷你模型 227
9.4 解释卷积神经网络学到的内容 229
9.4.1 中间激活值的可视化 230
9.4.2 卷积神经网络滤波器的可视化 235
9.4.3 类激活热力图的可视化 241
9.5 本章总结 246
第10章 深度学习处理时间序列 247
10.1 不同类型的时间序列任务 247
10.2 温度预测示例 248
10.2.1 准备数据 251
10.2.2 基于常识、不使用机器学习的基准 254
10.2.3 基本的机器学习模型 254
10.2.4 一维卷积模型 256
10.2.5 第一个RNN 基准 258
10.3 理解RNN 259
10.4 RNN 的高级用法 265
10.4.1 利用循环dropout 降低过拟合 265
10.4.2 循环层堆叠 268
10.4.3 使用双向RNN 269
10.4.4 进一步实验 271
10.5 本章总结 272
第11章 深度学习处理文本 273
11.1 自然语言处理概述 273
11.2 准备文本数据 274
11.2.1 文本标准化 275
11.2.2 文本拆分(词元化) 276
11.2.3 建立词表索引 277
11.2.4 使用TextVectorization层 278
11.3 表示单词组的两种方法:集合和序列 282
11.3.1 准备IMDB 影评数据 282
11.3.2 将单词作为集合处理:词袋方法 284
11.3.3 将单词作为序列处理:序列模型方法 289
11.4 Transformer架构 298
11.4.1 理解自注意力 298
11.4.2 多头注意力 302
11.4.3 Transformer编码器 303
11.4.4 何时使用序列模型而不是词袋模型 309
11.5 超越文本分类:序列到序列学习 310
11.5.1 机器翻译示例 312
11.5.2 RNN 的序列到序列学习 314
11.5.3 使用Transformer 进行序列到序列学习 318
11.6 本章总结 323
第12章 生成式深度学习 324
12.1 文本生成 325
12.1.1 生成式深度学习用于序列生成的简史 325
12.1.2 如何生成序列数据 326
12.1.3 采样策略的重要性 327
12.1.4 用Keras 实现文本生成 328
12.1.5 带有可变温度采样的文本生成回调函数 331
12.1.6 小结 334
12.2 DeepDream 334
12.2.1 用Keras 实现DeepDream 335
12.2.2 小结 341
12.3 神经风格迁移 341
12.3.1 内容损失 342
12.3.2 风格损失 342
12.3.3 用Keras 实现神经风格迁移 343
12.3.4 小结 348
12.4 用变分自编码器生成图像 348
12.4.1 从图像潜在空间中采样 348
12.4.2 图像编辑的概念向量 350
12.4.3 变分自编码器 350
12.4.4 用Keras 实现变分自编码器 352
12.4.5 小结 357
12.5 生成式对抗网络入门 358
12.5.1 简要实现流程 359
12.5.2 诸多技巧 360
12.5.3 CelebA 数据集 360
12.5.4 判别器 361
12.5.5 生成器 362
12.5.6 对抗网络 364
12.5.7 小结 366
12.6 本章总结 367
第13章 适合现实世界的最佳实践 368
13.1 将模型性能发挥到极致 368
13.1.1 超参数优化 368
13.1.2 模型集成 375
13.2 加速模型训练 376
13.2.1 使用混合精度加快GPU上的训练速度 377
13.2.2 多GPU训练 380
13.2.3 TPU训练 382
13.3 本章总结 384
第14章 总结 385
14.1 重点概念回顾 385
14.1.1 人工智能的多种方法 385
14.1.2 深度学习在机器学习领域中的特殊之处 386
14.1.3 如何看待深度学习 386
14.1.4 关键的推动技术 387
14.1.5 机器学习的通用工作流程 388
14.1.6 关键网络架构 388
14.1.7 可能性空间 392
14.2 深度学习的局限性 394
14.2.1 将机器学习模型拟人化的风险 394
14.2.2 自动机与智能体 396
14.2.3 局部泛化与极端泛化 397
14.2.4 智能的目的 399
14.2.5 逐步提高泛化能力 400
14.3 如何实现更加通用的人工智能 401
14.3.1 设定正确目标的重要性:捷径法则 401
14.3.2 新目标 402
14.4 实现智能:缺失的内容 403
14.4.1 智能是对抽象类比的敏感性 404
14.4.2 两种抽象 405
14.4.3 深度学习所缺失的那一半 407
14.5 深度学习的未来 408
14.5.1 模型即程序 408
14.5.2 将深度学习与程序合成融合 409
14.5.3 终身学习和模块化子程序复用 411
14.5.4 长期愿景 412
14.6 了解快速发展的领域的最新进展 413
14.6.1 在Kaggle 上练习解决现实世界的问题 413
14.6.2 在arXiv上了解最新进展 414
14.6.3 探索Keras 生态系统 414
14.7 结束语 414
Python深度学习 PDF 下载
链接:https://pan.baidu.com/s/1s-_D2JezwDyEbrHPY5i2yQ?pwd=15bd
提取码:15bd
复制这段内容后打开百度网盘手机App,操作更方便哦