目 录
第1章 引言 1
1.1 监督学习 1
1.1.1 回归和分类问题 2
1.1.2 输入 3
1.1.3 机器学习模型 4
1.1.4 深度神经网络 5
1.1.5 结构化输出 5
1.2 无监督学习 7
1.2.1 生成模型 7
1.2.2 潜变量 9
1.2.3 联系监督学习和无监督学习 10
1.3 强化学习 11
1.4 伦理学 12
1.5 本书编排方式 13
1.6 其他书籍 14
1.7 如何阅读本书 15
第2章 监督学习 16
2.1 监督学习概述 16
2.2 线性回归示例 17
2.2.1 一维(1D)线性回归模型 17
2.2.2 损失 18
2.2.3 训练 20
2.2.4 测试 21
2.3 本章小结 21
2.4 注释 22
2.5 问题 22
第3章 浅层神经网络 24
3.1 神经网络示例 24
3.1.1 神经网络的直观理解 25
3.1.2 描绘神经网络 27
3.2 通用逼近定理 28
3.3 多变量输入和输出 29
3.3.1 可视化多变量输出 29
3.3.2 可视化多变量输入 30
3.4 浅层神经网络:一般情形 33
3.5 术语 33
3.6 本章小结 34
3.7 注释 34
3.8 问题 37
第4章 深度神经网络 40
4.1 组合神经网络 40
4.2 从组合网络到深度网络 43
4.3 深度神经网络 43
4.4 矩阵表示法 46
4.5 浅层与深度神经网络 48
4.5.1 逼近不同函数的能力 48
4.5.2 每参数线性区域数量 48
4.5.3 深度效率 49
4.5.4 大型结构化输入 49
4.5.5 训练和泛化 49
4.6 本章小结 50
4.7 注释 50
4.8 问题 51
第5章 损失函数 54
5.1 最大似然 54
5.1.1 计算输出分布 56
5.1.2 最大似然准则 56
5.1.3 最大化对数似然 56
5.1.4 最小化负对数似然 57
5.1.5 模型推理 58
5.2 构建损失函数 58
5.3 示例1:单变量回归问题 58
5.3.1 最小二乘损失函数 59
5.3.2 模型推理 61
5.3.3 方差估计 61
5.3.4 异方差回归 62
5.4 示例2:二分类问题 63
5.5 示例3:多分类问题 65
5.6 多输出问题 67
5.7 交叉熵损失 68
5.8 本章小结 69
5.9 注释 70
5.10 问题 71
第6章 模型训练 74
6.1 梯度下降法 74
6.1.1 线性回归示例 75
6.1.2 Garbor模型示例 77
6.1.3 局部最小值和鞍点 77
6.2 随机梯度下降 79
6.2.1 批次和epoch 80
6.2.2 随机梯度下降的特性 82
6.3 动量 82
6.4 Adam 优化器 84
6.5 训练算法超参数 86
6.6 本章小结 87
6.7 注释 87
6.8 问题 90
第7章 梯度与参数初始化 93
7.1 问题定义 93
7.2 计算导数 95
7.3 简单示例 96
7.4 反向传播算法 99
7.4.1 反向传播算法总结 102
7.4.2 自动微分 103
7.4.3 扩展到任意计算图 103
7.5 参数初始化 103
7.5.1 正向传播的初始化 104
7.5.2 反向传播的初始化 106
7.5.3 正向和反向传播的初始化 106
7.6 训练代码示例 107
7.7 本章小结 108
7.8 注释 108
7.9 问题 110
第8章 性能评估 114
8.1 训练简单模型 114
8.2 误差来源 116
8.2.1 噪声、偏差和方差 117
8.2.2 测试误差的数学表达 118
8.3 降低误差 120
8.3.1 降低方差 120
8.3.2 降低偏差 122
8.3.3 偏差-方差权衡 122
8.4 选择超参数 127
8.5 本章小结 128
8.6 注释 128
8.7 问题 131
第9章 正则化 133
9.1 显式正则化 133
9.1.1 概率解释 134
9.1.2 L2正则化 134
9.2 隐式正则化 136
9.2.1 梯度下降法中的隐式正则化 136
9.2.2 随机梯度下降法中的隐式正则化 137
9.3 提高性能的启发式算法 139
9.3.1 提前停止 139
9.3.2 集成学习 140
9.3.3 随机丢弃 141
9.3.4 添加噪声 143
9.3.5 贝叶斯推理 144
9.3.6 迁移学习和多任务学习 145
9.3.7 自监督学习 146
9.3.8 数据增广 146
9.4 本章小结 147
9.5 注释 148
9.6 问题 154
第10章 卷积网络 155
10.1 不变性和等变性 156
10.2 用于一维输入的卷积网络 157
10.2.1 一维卷积操作 157
10.2.2 填充 157
10.2.3 步长、核大小和膨胀率 158
10.2.4 卷积层 159
10.2.5 通道 160
10.2.6 卷积网络和感受野 160
10.2.7 示例:MNIST-1D 161
10.3 二维输入的卷积网络 163
10.4 下采样和上采样 165
10.4.1 下采样 165
10.4.2 上采样 165
10.4.3 更改通道数量 166
10.5 应用 167
10.5.1 图像分类 167
10.5.2 目标检测 169
10.5.3 语义分割 170
10.6 本章小结 172
10.7 注释 172
10.8 问题 176
第11章 残差网络 178
11.1 顺序处理 178
11.2 残差连接和残差块 180
11.2.1 残差块中的操作顺序 182
11.2.2 带有残差连接的更深层网络 182
11.3 残差网络中的梯度爆炸 183
11.4 批量归一化 184
11.5 常见的残差架构 185
11.5.1 ResNet 185
11.5.2 DenseNet 187
11.5.3 U-Net和沙漏网络 188
11.6 为什么具有残差连接的网络表现如此出色? 190
11.7 本章小结 190
11.8 注释 191
11.9 问题 195
第12章 变换器 197
12.1 处理文本数据 197
12.2 点积自注意力 198
12.2.1 计算和加权值 199
12.2.2 计算注意力权重 200
12.2.3 自注意力总结 201
12.2.4 矩阵形式 202
12.3 点积自注意力的扩展 203
12.3.1 位置编码 203
12.3.2 缩放点积自注意力 204
12.3.3 多头 204
12.4 变换器 205
12.5 自然语言处理中的变换器 206
12.5.1 分词 206
12.5.2 嵌入 207
12.5.3 变换器模型 208
12.6 编码器模型示例:BERT 208
12.6.1 预训练 209
12.6.2 微调 209
12.7 解码器模型示例:GPT-3 211
12.7.1 语言建模 211
12.7.2 掩码自注意力 211
12.7.3 从解码器生成文本 212
12.7.4 GPT-3与少样本学习 213
12.8 编码器-解码器模型示例:机器翻译 214
12.9 用于长序列的变换器 216
12.10 图像的变换器 217
12.10.1 ImageGPT 218
12.10.2 视觉变换器(ViT) 219
12.10.3 多尺度视觉变换器 219
12.11 本章小结 220
12.12 注释 221
12.13 问题 228
第13章 图神经网络 230
13.1 什么是图 230
13.2 图的表示 233
13.2.1 邻接矩阵的属性 233
13.2.2 节点索引的排列 234
13.3 图神经网络、任务和损失函数 235
13.4 图卷积网络 237
13.4.1 等变性和不变性 238
13.4.2 参数共享 238
13.4.3 GCN层示例 239
13.5 示例:图分类 240
13.6 归纳模型与演绎模型 241
13.7 示例:节点分类 242
13.8 图卷积网络的层 245
13.8.1 结合当前节点和聚合邻居 245
13.8.2 残差连接 245
13.8.3 平均聚合 246
13.8.4 Kipf归一化 246
13.8.5 最大池化聚合 246
13.8.6 注意力聚合 246
13.9 边图 248
13.10 本章小结 249
13.11 注释 249
13.12 问题 254
第14章 无监督学习 257
14.1 无监督学习模型分类 257
14.2 什么是好的生成模型? 259
14.3 量化评估指标 260
14.4 本章小结 263
14.5 注释 263
第15章 生成式对抗网络 264
15.1 判别作为信号 264
15.1.1 GAN 损失函数 265
15.1.2 训练 GAN 266
15.1.3 DCGAN 267
15.1.4 GAN训练的难点 268
15.2 提高稳定性 269
15.2.1 GAN 损失函数分析 269
15.2.2 梯度消失 270
15.2.3 Wasserstein距离 271
15.2.4 离散分布的Wasserstein距离 271
15.2.5 连续分布的Wasserstein距离 273
15.2.6 Wasserstein GAN损失函数 273
15.3 提升生成图像质量的方法 274
15.4 条件生成 276
15.4.1 cGAN 276
15.4.2 ACGAN 277
15.4.3 InfoGAN 278
15.5 图像翻译 279
15.5.1 Pix2Pix 279
15.5.2 对抗性损失 279
15.5.3 CycleGAN 281
15.6 StyleGAN 282
15.7 本章小结 284
15.8 注释 285
15.9 问题 288
第16章 标准化流 290
16.1 一维示例 290
16.1.1 计算概率 291
16.1.2 正向和反向映射 292
16.1.3 学习 292
16.2 一般情况 293
16.2.1 基于深度神经网络的正向映射 293
16.2.2 对网络层的要求 294
16.3 可逆网络层 295
16.3.1 线性流 295
16.3.2 逐元素流 296
16.3.3 耦合流 297
16.3.4 自回归流 298
16.3.5 反向自回归流 299
16.3.6 残差流:iRevNet 300
16.3.7 残差流和收缩映射:iResNet 301
16.4 多尺度流 302
16.5 应用 303
16.5.1 密度建模 303
16.5.2 图像合成 304
16.5.3 近似其他密度模型 305
16.6 本章小结 306
16.7 注释 307
16.8 问题 310
第17章 变分自编码器 312
17.1 隐变量模型 312
17.2 非线性隐变量模型 314
17.3 训练 315
17.3.1 证据下界 (ELBO) 315
17.3.2 Jensen 不等式 316
17.3.3 推导下界 317
17.4 ELBO 的性质 318
17.4.1 下界的紧密性 318
17.4.2 ELBO的第三种表示方式 319
17.5 变分近似 320
17.6 变分自编码器 320
17.7 重参数化技巧 323
17.8 应用 323
17.8.1 估计样本概率 323
17.8.2 生成 324
17.8.3 重合成 325
17.8.4 解耦 326
17.9 本章小结 327
17.10 注释 328
17.11 问题 331
第18章 扩散模型 333
18.1 概述 333
18.2 编码器(前向过程) 334
18.2.1 扩散核 335
18.2.2 边缘分布 337
18.2.3 条件分布 338
18.2.4 条件扩散分布 338
18.3 解码器模型(反向过程) 340
18.4 训练 340
18.4.1 证据下界 (ELBO) 341
18.4.2 简化 ELBO 341
18.4.3 分析ELBO 342
18.4.4 扩散损失函数 343
18.4.5 训练过程 343
18.5 损失函数的重参数化 344
18.5.1 目标值的参数化 345
18.5.2 网络的重参数化 346
18.6 实现 347
18.6.1 应用于图像 347
18.6.2 提高生成速度 348
18.6.3 条件生成 349
18.6.4 提高生成质量 350
18.7 本章小结 352
18.8 注释 352
18.9 问题 355
第19章 强化学习 357
19.1 马尔可夫决策过程、回报和策略 357
19.1.1 马尔可夫过程 358
19.1.2 马尔可夫奖励过程 358
19.1.3 马尔可夫决策过程 359
19.1.4 部分可观测马尔可夫决策过程 359
19.1.5 策略 360
19.2 预期回报 361
19.2.1 状态和动作价值 362
19.2.2 最优策略 363
19.2.3 贝尔曼式 363
19.3 表格型强化学习 365
19.3.1 动态规划 365
19.3.2 蒙特卡罗方法 366
19.3.3 时间差分方法 367
19.4 拟合Q学习 368
19.4.1 用于玩ATARI游戏的深度Q网络 369
19.4.2 双Q学习和双深度Q网络 370
19.5 策略梯度方法 371
19.5.1 梯度更新的推导 372
19.5.2 REINFORCE算法 374
19.5.3 基线 374
19.5.4 状态依赖的基线 375
19.6 演员-评论家方法 376
19.7 离线强化学习 377
19.8 本章小结 378
19.9 注释 378
19.10 问题 382
第20章 为什么深度网络有效 385
20.1 质疑深度学习的案例 385
20.1.1 训练 385
20.1.2 泛化 386
20.1.3 看似不合理的有效性 386
20.2 影响拟合性能的因素 387
20.2.1 数据集 387
20.2.2 正则化 387
20.2.3 随机训练算法 388
20.2.4 过度参数化 388
20.2.5 激活函数 389
20.2.6 初始化 390
20.2.7 网络深度 390
20.3 损失函数的性质 391
20.3.1 多个全局最小值 391
20.3.2 到达最小值的路径 391
20.3.3 最小值之间的联系 392
20.3.4 损失面的曲率 393
20.4 决定泛化的因素 394
20.4.1 训练算法 394
20.4.2 最小值的平坦度 395
20.4.3 架构 396
20.4.4 权重的范数 396
20.4.5 过度参数化 397
20.4.6 离开数据流形 397
20.5 我们需要这么多参数吗 398
20.5.1 剪枝 399
20.5.2 知识蒸馏 400
20.5.3 讨论 400
20.6 网络必须很深吗? 401
20.6.1 建模函数的复杂性 401
20.6.2 训练的可行性 402
20.6.3 归纳偏差 402
20.7 本章小结 402
20.8 问题 403
第21章 深度学习和伦理 404
21.1 价值一致性 405
21.1.1 偏见与公平性 406
21.1.2 人工道德代理 408
21.1.3 透明度与不透明度 409
21.1.4 可解释性 409
21.2 故意滥用 410
21.2.1 面部识别和分析 410
21.2.2 军事化和政治干预 410
21.2.3 欺诈 411
21.2.4 数据隐私 411
21.3 其他社会、伦理和专业问题 412
21.3.1 知识产权 412
21.3.2 自动化偏见和道德技能退化 412
21.3.3 环境影响 413
21.3.4 就业和社会 413
21.3.5 权力集中 413
21.4 案例研究 414
21.5 科学的价值中立理想 414
21.6 负责任的人工智能研究作为集体行动问题 415
21.6.1 科学沟通 416
21.6.2 多样性和异质性 416
21.7 未来的方向 416
21.8 本章小结 417
21.9 问题 418
附录A 符号表示 420
附录B 数学 423
附录C 概率 432