《Python深度学习:基于TensorFlow(第2版)》畅销书升级,TensorFlow领域公认标准著作,20余年研发经验AI专家撰写,详解TensorFlow深度学习全栈知识
定 价:99 元
丛书名:智能系统与技术丛书
- 作者:吴茂贵 王冬 李涛 杨本法 张利 著
- 出版时间:2022/10/1
- ISBN:9787111712244
- 出 版 社:机械工业出版社
- 中图法分类:TP311.561
- 页码:362
- 纸张:
- 版次:
- 开本:16
1.内容选择?:提供全栈式的解决方案
深度学习涉及范围比较广,既有对基础、原理的要求,也有对代码实现的要求。如何在较短时间内快速提高深度学习的水平?如何尽快把所学运用到实践中?这方面虽然没有捷径可言,但却有方法可循。本书基于这些考量,希望能给你提供一站式解决方案。具体内容包括?:机器学习与深度学习的三大基石(线性代数、概率与信息论及数值分析)?;机器学习与深度学习的基本理论和原理?;机器学习与深度学习的常用开发工具(Python、TensorFlow、Keras等)?;TensorFlow的高级封装及多个综合性实战项目等。
2.层次安排?:找准易撕口,快速实现由点到面的突破
我们打开塑料袋时,一般从易撕口开始,这样即使再牢固的袋子也很容易打开。面对深度学习这个“牢固袋子”,我们也可以采用类似方法,找准易撕口。如果没有,就创造一个易撕口,并通过这个易撕口,实现点到面的快速扩展。本书在面对很多抽象、深奥的算法时均采用了这种方法。我们知道BP算法、循环神经网络是深度学习中的两块“硬骨头”,所以我们在介绍BP算法时,先介绍单个神经如何实现BP算法这个易撕口,再延伸到一般情况?;在介绍循环神经网络时,我们也先以一个简单实例为易撕口,再延伸到一般情况。希望这种方式能帮助你把难题化易,把大事化小,把不可能转换为可能。
3.表达形式?:让图说话,一张好图胜过千言万语
机器学习、深度学习中有很多抽象的概念、复杂的算法、深奥的理论,如NumPy的广播机制、梯度下降对学习率敏感、神经网络中的共享参数、动量优化法、梯度消失或爆炸等,这些内容如果只用文字来描述,可能很难达到让人茅塞顿开的效果,但如果用一些图来展现,再加上适当的文字说明,往往能取得非常好的效果,正所谓一张好图胜过千言万语。
除了以上谈到的三个方面,为了帮助大家更好地理解,更快地掌握机器学习、深度学习这些人工智能的核心内容,本书还包含了其他方法,相信阅读本书的读者都能体会到。我们希望通过这些方法或方式带给你不一样的理解和体验,使你感到抽象数学不抽象、深度学习不深奥、复杂算法不复杂、难学的深度学习也易学,这也是我们写这本书的主要目的。
至于人工智能(AI)的重要性,想必就不用多说了。如果说2016年前属于摆事实论证阶段,那么2016年后已进入事实胜于雄辩阶段了,而2018年后应该撸起袖子加油干了。目前各行各业都忙于AI+,给人“忽如一夜春风来,千树万树梨花开”的感觉!
第2版前言
第1版前言
第一部分 TensorFlow基础
第1章 NumPy基础 2
1.1 把图像数字化 3
1.1.1 数组属性 4
1.1.2 从已有数据中生成数组 4
1.1.3 利用 random 模块生成
数组 5
1.1.4 利用 arange、linspace
函数生成数组 7
1.2 存取元素 8
1.3 NumPy的算术运算 9
1.3.1 对应元素相乘 10
1.3.2 点积运算 11
1.4 数据变形 12
1.4.1 更改数组的形状 12
1.4.2 合并数组 15
1.5 通用函数 18
1.6 广播机制 20
1.7 用NumPy实现回归实例 21
1.8 小结 24
第2章 TensorFlow基础知识 25
2.1 安装配置 25
2.1.1 安装Anaconda 26
2.1.2 安装TensorFlow
CPU版 26
2.1.3 安装TensorFlow
GPU版 27
2.2 层次架构 29
2.3 张量 30
2.3.1 张量的基本属性 30
2.3.2 张量切片 31
2.3.3 操作形状 32
2.4 变量 33
2.5 NumPy与tf.Tensor比较 35
2.6 计算图 36
2.6.1 静态计算图 36
2.6.2 动态计算图 37
2.7 自动图 38
2.8 自动微分 39
2.9 损失函数 42
2.10 优化器 43
2.11 使用TensorFlow 2.0实现回归
实例 43
2.12 GPU加速 48
2.13 小结 50
第3章 TensorFlow构建模型的方法 51
3.1 利用低阶API构建模型 51
3.1.1 项目背景 51
3.1.2 导入数据 52
3.1.3 预处理数据 53
3.1.4 构建模型 55
3.1.5 训练模型 56
3.1.6 测试模型 57
3.1.7 保存恢复模型 57
3.2 利用中阶API构建模型 58
3.2.1 构建模型 58
3.2.2 创建损失评估函数 59
3.2.3 训练模型 59
3.3 利用高阶API构建模型 61
3.3.1 构建模型 61
3.3.2 编译及训练模型 63
3.3.3 测试模型 64
3.3.4 保存恢复模型 64
3.4 小结 65
第4章 TensorFlow数据处理 66
4.1 tf.data简介 66
4.2 构建数据集的常用方法 67
4.2.1 从内存中读取数据 68
4.2.2 从文本中读取数据 68
4.2.3 读取TFRecord格式
文件 70
4.3 如何生成自己的TFRecord格式
数据 70
4.3.1 把数据转换为TFRecord
格式的一般步骤 70
4.3.2 加载TFRecord文件
流程 72
4.3.3 代码实现 72
4.4 数据增强方法 75
4.4.1 常用的数据增强方法 75
4.4.2 创建数据处理流水线 77
4.5 小结 78
第5章 可视化 79
5.1 matplotlib 79
5.1.1 matplotlib的基本概念 79
5.1.2 使用matplotlib绘制
图表 81
5.1.3 使用rcParams 83
5.2 pyecharts 85
5.2.1 pyecharts的安装 85
5.2.2 使用pyecharts绘制
图表 86
5.3 TensorBoard 89
5.4 小结 92
第二部分 深度学习基础
第6章 机器学习基础 94
6.1 机器学习的一般流程 94
6.1.1 明确目标 94
6.1.2 收集数据 95
6.1.3 数据探索与预处理 95
6.1.4 模型选择 96
6.1.5 模型评估 96
6.2 监督学习 98
6.2.1 线性回归 98
6.2.2 逻辑回归 100
6.2.3 树回归 102
6.2.4 支持向量机 102
6.2.5 朴素贝叶斯分类器 105
6.2.6 集成学习 107
6.3 无监督学习 110
6.3.1 主成分分析 110
6.3.2 k均值算法 110
6.4 数据预处理 111
6.4.1 处理缺失值 111
6.4.2 处理分类数据 112
6.5 机器学习实例 113
6.6 小结 119
第7章 神经网络基础 120
7.1 单层神经网络 121
7.2 多层神经网络 122
7.2.1 多层神经网络的结构 122
7.2.2 各层之间的信息传输 123
7.2.3 使用多层神经网络解决
XOR问题 123
7.2.4 使用TensorFlow解决XOR问题 125
7.3 激活函数 126
7.3.1 sigmoid函数 127
7.3.2 softmax函数 127
7.3.3 tanh函数 128
7.3.4 ReLU函数 129
7.3.5 Leaky-ReLU函数 129
7.3.6 softplus函数 130
7.3.7 Dropout函数 130
7.4 正向和反向传播算法 130
7.4.1 单个神经元的BP算法 131
7.4.2 多层神经网络的BP
算法 132
7.5 解决过拟合问题 135
7.5.1 权重正则化 135
7.5.2 Dropout正则化 136
7.5.3 批量正则化 138
7.5.4 权重初始化 139
7.5.5 残差网络 140
7.6 选择优化算法 141
7.6.1 传统梯度更新算法 141
7.6.2 动量算法 142
7.6.3 NAG算法 144
7.6.4 AdaGrad算法 145
7.6.5 RMSProp算法 146
7.6.6 Adam算法 146
7.6.7 如何选择优化算法 147
7.7 使用tf.keras构建神经网络 148
7.7.1 tf.keras概述 148
7.7.2 tf.keras的常用模块 148
7.7.3 构建模型的几种方法 149
7.7.4 使用Sequential API
构建神经网络实例 150
7.7.5 使用Functional API
构建神经网络实例 156
7.7.6 使用Subclassing API
构建神经网络实例 157
7.8 小结 158
第8章 视觉处理基础 159
8.1 从全连接层到卷积层 159
8.1.1 图像的两个特性 160
8.1.2 卷积神经网络概述 161
8.2 卷积层 162
8.2.1 卷积核 163
8.2.2 步幅 165
8.2.3 填充 166
8.2.4 多通道上的卷积 166
8.2.5 激活函数 168
8.2.6 卷积函数 168
8.2.7 转置卷积 169
8.2.8 特征图与感受野 171
8.2.9 全卷积网络 171
8.3 池化层 172
8.3.1 局部池化 173
8.3.2 全局池化 174
8.4 现代经典网络 175
8.4.1 LeNet-5模型 175
8.4.2 AlexNet模型 176
8.4.3 VGG模型 177
8.4.4 GoogLeNet模型 178
8.4.5 ResNet模型 179
8.4.6 DenseNet模型 179
8.5 卷积神经网络分类实例 181
8.5.1 使用Subclassing API
构建网络 181
8.5.2 卷积神经网络分类实例的
主要步骤 181
8.5.3 通过数据增强提升
性能 184
8.5.4 通过现代网络架构提升
网络性能 185
8.6 小结 187
第9章 自然语言处理基础 188
9.1 从语言模型到循环神经网络 188
9.1.1 链式法则 189
9.1.2 马尔可夫假设与N元
语法模型 189
9.1.3 从N元语法模型到隐含
状态表示 189
9.1.4 从神经网络到有隐含
状态的循环神经网络 190
9.1.5 使用循环神经网络构建
语言模型 192
9.1.6 多层循环神经网络 192
9.2 正向传播与随时间反向传播 193
9.3 现代循环神经网络 196
9.3.1 LSTM 196
9.3.2 GRU 197
9.3.3 Bi-RNN 197
9.4 几种特殊架构 198
9.4.1 编码器?-?解码器架构 198
9.4.2 Seq2Seq架构 200
9.5 循环神经网络的应用场景 201
9.6 循环神经网络实践 202
9.6.1 使用LSTM实现文本
分类 202
9.6.2 把CNN和RNN组合
在一起 203
9.7 小结 206
第10章 注意力机制 207
10.1 注意力机制概述 207
10.1.1 两种常见注意力
机制 208
10.1.2 来自生活的注意力 208
10.1.3 注意力机制的本质 208
10.2 带注意力机制的编码器?-?解码器架构 210
10.2.1 引入注意力机制 211
10.2.2 计算注意力分配值 212
10.3 可视化Transformer架构 215
10.3.1 Transformer的顶层
设计 215
10.3.2 编码器与解码器的
输入 216
10.3.3 自注意力 217
10.3.4 多头注意力 220
10.3.5 自注意力与卷积神经
网络、循环神经网络的
异同 222
10.3.6 为加深Transformer
网络层保驾护航的几种
方法 223
10.3.7 如何进行自监督
学习 224
10.3.8 Transformer在视觉
领域的应用 225
10.4 使用TensorFlow实现
Transformer 227
10.4.1 Transformer
架构图 227
10.4.2 架构说明 227
10.4.3 构建缩放的点积注意力
模块 228
10.4.4 构建多头注意力
模块 229
10.4.5 构建前馈神经网络
模块 230
10.4.6 构建EncoderLayer
模块 230
10.4.7 构建Encoder模块 231
10.4.8 构建DecoderLayer
模块 232
10.4.9 构建Decoder模块 233
10.4.10 构建Transformer
模型 234
10.4.11 定义掩码函数 235
10.5 小结 238
第11章 目标检测 239
11.1 目标检测及主要挑战 239
11.1.1 边界框的表示 240
11.1.2 手工标注图像的
真实值 241
11.1.3 主要挑战 244
11.1.4 选择性搜索 245
11.1.5 锚框 245
11.1.6 RPN算法 247
11.2 优化候选框的算法 248
11.2.1 交并比 248
11.2.2 非极大值抑制 248
11.2.3 边框回归 249
11.2.4 使候选框输出为固定
大小 251
11.3 典型的目标检测算法 253
11.3.1 R-CNN 253
11.3.2 Fast R-CNN 254
11.3.3 Faster R-CNN 255
11.3.4 Mask R-CNN 256
11.3.5 YOLO 257
11.3.6 Swin Transformer 257
11.3.7 各种算法的性能
比较 258
11.4 小结 258
第12章 生成式深度学习 259
12.1 用变分自编码器生成图像 259
12.1.1 自编码器 259
12.1.2 变分自编码器 260
12.1.3 用变分自编码器生成
图像实例 261
12.2 GAN简介 263
12.2.1 GAN的架构 264
12.2.2 GAN的损失函数 265
12.3 用GAN生成图像 266
12.3.1 判别器 266
12.3.2 生成器 266
12.3.3 训练模型 267
12.3.4 可视化结果 267
12.4 VAE与GAN的异同 267
12.5 CGAN 268
12.5.1 CGAN的架构 268
12.5.2 CGAN 判别器 269
12.5.3 CGAN生成器 269
12.5.4 训练模型 270
12.5.5 动态查看指定标签的
图像 270
12.6 提升GAN训练效果的一些
技巧 270
12.7 小结 271
第三部分 深度学习实践
第13章 实战生成式模型 274
13.1 Deep Dream模型 274
13.1.1 Deep Dream的
原理 274
13.1.2 Deep Dream算法的
流程 275
13.1.3 使用TensorFlow实现Deep Dream 275
13.2 风格迁移 277
13.2.1 内容损失 278
13.2.2 风格损失 279
13.2.3 训练模型 281
13.3 小结 282
第14章 目标检测实例 283
14.1 数据集简介 283
14.2 准备数据 284
14.3 训练模型 286
14.4 测试模型 292
14.5 小结 293
第15章 人脸检测与识别实例 294
15.1 人脸识别简介 294
15.2 项目概况 297
15.3 项目详细实施步骤 297
15.3.1 图像预处理 298
15.3.2 构建模型 299
15.3.3 测试模型 300
15.4 小结 302
第16章 文本检测与识别实例 303
16.1 项目架构说明 303
16.2 项目实施步骤 304
16.2.1 手工生成训练数据 304
16.2.2 数据预处理 306
16.2.3 构建模型 308
16.2.4 训练模型 309
16.3 小结 311
第17章 基于Transformer的
对话实例 312
17.1 数据预处理 312
17.2 构建注意力模块 315
17.3 构建Transformer架构 316
17.4 定义损失函数 320
17.5 初始化并编译模型 321
17.6 测试评估模型 321
17.7 小结 322
第18章 基于Transformer的
图像处理实例 323
18.1 导入数据 323
18.2 预处理数据 324
18.3 构建模型 326
18.4 编译、训练模型 329
18.5 可视化运行结果 330
18.6 小结 331
第四部分 强化学习
第19章 强化学习基础 334
19.1 强化学习基础概述 334
19.1.1 智能体与环境的
交互 335
19.1.2 回报 335
19.1.3 马尔可夫决策过程 336
19.1.4 贝尔曼方程 336
19.1.5 贝尔曼优方程 337
19.1.6 同步策略与异步
策略 337
19.1.7 有模型训练与无模型
训练 337
19.2 时序差分算法 338
19.3 Q-Learning算法 338
19.3.1 Q-Learning算法的
主要流程 339
19.3.2 Q函数 339
19.3.3 贪婪策略 340
19.4 SARSA 算法 340
19.5 DQN算法 340
19.5.1 Q-Learning算法的
局限性 341
19.5.2 用深度学习处理强化学习时需要解决的问题 341
19.5.3 用DQN解决问题的
方法 341
19.5.4 定义损失函数 342
19.5.5 DQN的经验回放
机制 342
19.5.6 目标网络 342
19.5.7 网络模型 342
19.5.8 DQN算法的实现 343
19.6 小结 344
第20章 强化学习实践 345
20.1 Q-Learning算法实例 345
20.2 SARSA算法实例 346
20.2.1 游戏场景 346
20.2.2 核心代码说明 347
20.3 用TensorFlow实现DQN算法 348
20.4 小结 352
附录A TensorFlow-GPU 2+
升级安装配置 353
附录B 从TensorFlow1.x升级到TensorFlow 2.x 360