《神经网络与深度学习》简介:
复旦大学邱锡鹏老师在 Github 上开放的深度学习书籍
https://nndl.github.io/
https://github.com/nndl/nndl.github.io
《神经网络与深度学习》目录:
前言 1
第一部分 入门篇 3
第 1 章 绪论 5
1.1 人工智能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.1 人工智能的发展历史 . . . . . . . . . . . . . . . . . . . . 7
1.1.2 人工智能的流派 . . . . . . . . . . . . . . . . . . . . . . 9
1.2 神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.1 大脑神经网络 . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.2 人工神经网络 . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.3 神经网络的发展历史 . . . . . . . . . . . . . . . . . . . . 12
1.3 机器学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 表示学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.1 局部表示和分布式表示 . . . . . . . . . . . . . . . . . . . 15
1.4.2 表示学习 . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5 深度学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5.1 端到端学习 . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.5.2 常用的深度学习框架 . . . . . . . . . . . . . . . . . . . . 19
1.6 本书的组织结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.7 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
第 2 章 机器学习概述 25
2.1 基本概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2 机器学习的三个基本要素 . . . . . . . . . . . . . . . . . . . . . 28
2.2.1 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.2 学习准则 . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.3 优化算法 . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3 机器学习的简单示例:线性回归 . . . . . . . . . . . . . . . . . . 36
2.3.1 参数学习 . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4 偏差-方差分解 . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.5 机器学习算法的类型 . . . . . . . . . . . . . . . . . . . . . . . . 44
2.6 数据的特征表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.6.1 传统的特征学习 . . . . . . . . . . . . . . . . . . . . . . 47
2.6.2 深度学习方法 . . . . . . . . . . . . . . . . . . . . . . . . 48
2.7 评价指标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.8 理论和定理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.8.1 PAC学习理论 . . . . . . . . . . . . . . . . . . . . . . . . 51
2.8.2 没有免费午餐定理 . . . . . . . . . . . . . . . . . . . . . 52
2.8.3 丑小鸭定理 . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.8.4 奥卡姆剃刀 . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.8.5 归纳偏置 . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.9 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
第 3 章 线性模型 57
3.1 线性判别函数和决策边界 . . . . . . . . . . . . . . . . . . . . . 58
3.1.1 两类分类 . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.1.2 多类分类 . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.2 Logistic回归 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.2.1 参数学习 . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.3 Softmax回归 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.3.1 参数学习 . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.4 感知器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.4.1 参数学习 . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.4.2 感知器的收敛性 . . . . . . . . . . . . . . . . . . . . . . 67
3.4.3 参数平均感知器 . . . . . . . . . . . . . . . . . . . . . . 69
3.4.4 扩展到多类分类 . . . . . . . . . . . . . . . . . . . . . . 70
3.5 支持向量机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.5.1 参数学习 . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.5.2 核函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.5.3 软间隔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.6 损失函数对比 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.7 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
第二部分 基础模型 83
第 4 章 前馈神经网络 85
4.1 神经元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.1.1 Sigmoid型激活函数 . . . . . . . . . . . . . . . . . . . . 87
4.1.2 修正线性单元 . . . . . . . . . . . . . . . . . . . . . . . . 90
4.1.3 Swish函数 . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.1.4 Maxout单元 . . . . . . . . . . . . . . . . . . . . . . . . 93
4.2 网络结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.2.1 前馈网络 . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.2.2 反馈网络 . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.2.3 图网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.3 前馈神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.3.1 通用近似定理 . . . . . . . . . . . . . . . . . . . . . . . . 97
4.3.2 应用到机器学习 . . . . . . . . . . . . . . . . . . . . . . 98
4.3.3 参数学习 . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.4 反向传播算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.5 自动梯度计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.5.1 数值微分 . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.5.2 符号微分 . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.5.3 自动微分 . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.6 优化问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.6.1 非凸优化问题 . . . . . . . . . . . . . . . . . . . . . . . . 107
4.6.2 梯度消失问题 . . . . . . . . . . . . . . . . . . . . . . . . 107
4.7 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
第 5 章 卷积神经网络 113
5.1 卷积 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.1.1 互相关 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.1.2 卷积的变种 . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.1.3 卷积的数学性质 . . . . . . . . . . . . . . . . . . . . . . 118
5.2 卷积神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.2.1 用卷积来代替全连接 . . . . . . . . . . . . . . . . . . . . 119
5.2.2 卷积层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.2.3 汇聚层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.2.4 典型的卷积网络结构 . . . . . . . . . . . . . . . . . . . . 123
5.3 参数学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.3.1 误差项的计算 . . . . . . . . . . . . . . . . . . . . . . . . 125
5.4 几种典型的卷积神经网络 . . . . . . . . . . . . . . . . . . . . . 126
5.4.1 LeNet-5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.4.2 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.4.3 Inception网络 . . . . . . . . . . . . . . . . . . . . . . . 129
5.4.4 残差网络 . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.5 其它卷积方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.5.1 转置卷积 . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.5.2 空洞卷积 . . . . . . . . . . . . . . . . . . . . . . . . . . 134
5.6 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
第 6 章 循环神经网络 139
6.1 给网络增加记忆能力 . . . . . . . . . . . . . . . . . . . . . . . . 140
6.1.1 延时神经网络 . . . . . . . . . . . . . . . . . . . . . . . . 140
6.1.2 有外部输入的非线性自回归模型 . . . . . . . . . . . . . 140
6.1.3 循环神经网络 . . . . . . . . . . . . . . . . . . . . . . . . 141
6.2 简单循环网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
6.2.1 循环神经网络的计算能力 . . . . . . . . . . . . . . . . . 142
6.3 应用到机器学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.3.1 序列到类别模式 . . . . . . . . . . . . . . . . . . . . . . 144
6.3.2 同步的序列到序列模式 . . . . . . . . . . . . . . . . . . . 145
6.3.3 异步的序列到序列模式 . . . . . . . . . . . . . . . . . . . 145
6.4 参数学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
6.4.1 随时间反向传播算法 . . . . . . . . . . . . . . . . . . . . 147
6.4.2 实时循环学习算法 . . . . . . . . . . . . . . . . . . . . . 148
6.5 长期依赖问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
6.5.1 改进方案 . . . . . . . . . . . . . . . . . . . . . . . . . . 150
6.6 基于门控的循环神经网络 . . . . . . . . . . . . . . . . . . . . . 151
6.6.1 长短期记忆网络 . . . . . . . . . . . . . . . . . . . . . . 151
6.6.2 LSTM网络的各种变体 . . . . . . . . . . . . . . . . . . . 154
6.6.3 门控循环单元网络 . . . . . . . . . . . . . . . . . . . . . 154
6.7 深层循环神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . 156
6.7.1 堆叠循环神经网络 . . . . . . . . . . . . . . . . . . . . . 156
6.7.2 双向循环神经网络 . . . . . . . . . . . . . . . . . . . . . 157
6.8 扩展到图结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
6.8.1 递归神经网络 . . . . . . . . . . . . . . . . . . . . . . . . 158
6.8.2 图网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
6.9 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
第 7 章 网络优化与正则化 165
7.1 网络优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
7.1.1 网络优化的难点 . . . . . . . . . . . . . . . . . . . . . . 165
7.2 优化算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
7.2.1 小批量梯度下降 . . . . . . . . . . . . . . . . . . . . . . 167
7.2.2 学习率衰减 . . . . . . . . . . . . . . . . . . . . . . . . . 169
7.2.3 梯度方向优化 . . . . . . . . . . . . . . . . . . . . . . . . 171
7.2.4 优化算法小结 . . . . . . . . . . . . . . . . . . . . . . . . 174
7.3 参数初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
7.4 数据预处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
7.5 逐层归一化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
7.5.1 批量归一化 . . . . . . . . . . . . . . . . . . . . . . . . . 180
7.5.2 层归一化 . . . . . . . . . . . . . . . . . . . . . . . . . . 182
7.5.3 其它归一化方法 . . . . . . . . . . . . . . . . . . . . . . 183
7.6 超参数优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
7.6.1 网格搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . 185
7.6.2 随机搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . 185
7.6.3 贝叶斯优化 . . . . . . . . . . . . . . . . . . . . . . . . . 185
7.6.4 动态资源分配 . . . . . . . . . . . . . . . . . . . . . . . . 186
7.7 网络正则化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
7.7.1 ℓ1 和ℓ2 正则化 . . . . . . . . . . . . . . . . . . . . . . . . 188
7.7.2 权重衰减 . . . . . . . . . . . . . . . . . . . . . . . . . . 189
7.7.3 提前停止 . . . . . . . . . . . . . . . . . . . . . . . . . . 189
7.7.4 丢弃法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
7.7.5 数据增强 . . . . . . . . . . . . . . . . . . . . . . . . . . 192
7.7.6 标签平滑 . . . . . . . . . . . . . . . . . . . . . . . . . . 193
7.8 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
第 8 章 注意力机制与外部记忆 199
8.1 注意力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
8.1.1 认知神经学中的注意力 . . . . . . . . . . . . . . . . . . . 200
8.1.2 人工神经网络中的注意力机制 . . . . . . . . . . . . . . . 201
8.1.3 注意力机制的变体 . . . . . . . . . . . . . . . . . . . . . 202
8.2 注意力机制的应用 . . . . . . . . . . . . . . . . . . . . . . . . . 204
8.2.1 指针网络 . . . . . . . . . . . . . . . . . . . . . . . . . . 204
8.2.2 自注意力模型 . . . . . . . . . . . . . . . . . . . . . . . . 205
8.3 外部记忆 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
8.3.1 人脑中的记忆 . . . . . . . . . . . . . . . . . . . . . . . . 207
8.3.2 结构化的外部记忆 . . . . . . . . . . . . . . . . . . . . . 208
8.3.3 典型的记忆网络 . . . . . . . . . . . . . . . . . . . . . . 210
8.3.4 基于神经动力学的联想记忆 . . . . . . . . . . . . . . . . 213
8.4 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
第 9 章 无监督学习 219
9.1 无监督特征学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
9.1.1 主成分分析 . . . . . . . . . . . . . . . . . . . . . . . . . 220
9.1.2 稀疏编码 . . . . . . . . . . . . . . . . . . . . . . . . . . 222
9.1.3 自编码器 . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9.1.4 稀疏自编码器 . . . . . . . . . . . . . . . . . . . . . . . . 225
9.1.5 堆叠自编码器 . . . . . . . . . . . . . . . . . . . . . . . . 226
9.1.6 降噪自编码器 . . . . . . . . . . . . . . . . . . . . . . . . 226
9.2 概率密度估计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
9.2.1 参数密度估计 . . . . . . . . . . . . . . . . . . . . . . . . 227
9.2.2 非参数密度估计 . . . . . . . . . . . . . . . . . . . . . . 229
9.3 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
第 10 章 模型独立的学习方式 235
10.1 集成学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
10.1.1 AdaBoost算法 . . . . . . . . . . . . . . . . . . . . . . . 237
10.2 自训练和协同训练 . . . . . . . . . . . . . . . . . . . . . . . . . 239
10.2.1 自训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
10.2.2 协同训练 . . . . . . . . . . . . . . . . . . . . . . . . . . 240
10.3 多任务学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
10.4 迁移学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
10.5 终生学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
10.6 元学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
10.6.1 基于优化器的元学习 . . . . . . . . . . . . . . . . . . . . 252
10.6.2 模型无关的元学习 . . . . . . . . . . . . . . . . . . . . . 254
10.7 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
第三部分 进阶模型 259
第 11 章 概率图模型 261
11.1 模型表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
11.1.1 有向图模型 . . . . . . . . . . . . . . . . . . . . . . . . . 263
11.1.2 常见的有向图模型 . . . . . . . . . . . . . . . . . . . . . 265
11.1.3 无向图模型 . . . . . . . . . . . . . . . . . . . . . . . . . 267
11.1.4 无向图模型的概率分解 . . . . . . . . . . . . . . . . . . . 268
11.1.5 常见的无向图模型 . . . . . . . . . . . . . . . . . . . . . 269
11.1.6 有向图和无向图之间的转换 . . . . . . . . . . . . . . . . 270
11.2 推断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
11.2.1 变量消除法 . . . . . . . . . . . . . . . . . . . . . . . . . 271
11.2.2 信念传播算法 . . . . . . . . . . . . . . . . . . . . . . . . 272
11.3 近似推断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
11.3.1 蒙特卡罗方法 . . . . . . . . . . . . . . . . . . . . . . . . 275
11.3.2 拒绝采样 . . . . . . . . . . . . . . . . . . . . . . . . . . 276
11.3.3 重要性采样 . . . . . . . . . . . . . . . . . . . . . . . . . 277
11.3.4 马尔可夫链蒙特卡罗方法 . . . . . . . . . . . . . . . . . 278
11.4 学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
11.4.1 不含隐变量的参数估计 . . . . . . . . . . . . . . . . . . . 282
11.4.2 含隐变量的参数估计 . . . . . . . . . . . . . . . . . . . . 284
11.5 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
第 12 章 深度信念网络 293
12.1 玻尔兹曼机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
12.1.1 生成模型 . . . . . . . . . . . . . . . . . . . . . . . . . . 295
12.1.2 能量最小化与模拟退火 . . . . . . . . . . . . . . . . . . . 297
12.1.3 参数学习 . . . . . . . . . . . . . . . . . . . . . . . . . . 298
12.2 受限玻尔兹曼机 . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
12.2.1 生成模型 . . . . . . . . . . . . . . . . . . . . . . . . . . 301
12.2.2 参数学习 . . . . . . . . . . . . . . . . . . . . . . . . . . 304
12.2.3 受限玻尔兹曼机的类型 . . . . . . . . . . . . . . . . . . . 305
12.3 深度信念网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
12.3.1 生成模型 . . . . . . . . . . . . . . . . . . . . . . . . . . 307
12.3.2 参数学习 . . . . . . . . . . . . . . . . . . . . . . . . . . 307
12.4 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
第 13 章 深度生成模型 315
13.1 概率生成模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
13.1.1 密度估计 . . . . . . . . . . . . . . . . . . . . . . . . . . 316
13.1.2 生成样本 . . . . . . . . . . . . . . . . . . . . . . . . . . 316
13.2 变分自编码器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
13.2.1 含隐变量的生成模型 . . . . . . . . . . . . . . . . . . . . 317
13.2.2 推断网络 . . . . . . . . . . . . . . . . . . . . . . . . . . 319
13.2.3 生成网络 . . . . . . . . . . . . . . . . . . . . . . . . . . 320
13.2.4 模型汇总 . . . . . . . . . . . . . . . . . . . . . . . . . . 321
13.2.5 训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
13.3 生成对抗网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
13.3.1 显式密度模型和隐式密度模型 . . . . . . . . . . . . . . . 324
13.3.2 网络分解 . . . . . . . . . . . . . . . . . . . . . . . . . . 325
13.3.3 训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
13.3.4 一个生成对抗网络的具体实现:DCGAN . . . . . . . . . 326
13.3.5 模型分析 . . . . . . . . . . . . . . . . . . . . . . . . . . 327
13.3.6 改进模型 . . . . . . . . . . . . . . . . . . . . . . . . . . 330
13.4 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
第 14 章 深度强化学习 335
14.1 强化学习问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
14.1.1 典型例子 . . . . . . . . . . . . . . . . . . . . . . . . . . 336
14.1.2 强化学习定义 . . . . . . . . . . . . . . . . . . . . . . . . 336
14.1.3 马尔可夫决策过程 . . . . . . . . . . . . . . . . . . . . . 337
14.1.4 强化学习的目标函数 . . . . . . . . . . . . . . . . . . . . 339
14.1.5 值函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
14.1.6 深度强化学习 . . . . . . . . . . . . . . . . . . . . . . . . 341
14.2 基于值函数的学习方法 . . . . . . . . . . . . . . . . . . . . . . . 342
14.2.1 动态规划算法 . . . . . . . . . . . . . . . . . . . . . . . . 342
14.2.2 蒙特卡罗方法 . . . . . . . . . . . . . . . . . . . . . . . . 345
14.2.3 时序差分学习方法 . . . . . . . . . . . . . . . . . . . . . 346
14.2.4 深度Q网络 . . . . . . . . . . . . . . . . . . . . . . . . . 349
14.3 基于策略函数的学习方法 . . . . . . . . . . . . . . . . . . . . . 351
14.3.1 REINFORCE算法 . . . . . . . . . . . . . . . . . . . . . 352
14.3.2 带基准线的REINFORCE算法 . . . . . . . . . . . . . . 353
14.4 Actor-Critic算法 . . . . . . . . . . . . . . . . . . . . . . . . . . 354
14.5 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
第 15 章 序列生成模型 361
15.1 序列概率模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
15.1.1 序列生成 . . . . . . . . . . . . . . . . . . . . . . . . . . 362
15.2 N元统计模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
15.3 深度序列模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
15.3.1 参数学习 . . . . . . . . . . . . . . . . . . . . . . . . . . 369
15.4 评价方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
15.4.1 困惑度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
15.4.2 BLEU . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
15.4.3 ROUGE . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
15.5 序列生成模型中的学习问题 . . . . . . . . . . . . . . . . . . . . 372
15.5.1 曝光偏差问题 . . . . . . . . . . . . . . . . . . . . . . . . 372
15.5.2 训练目标不一致问题 . . . . . . . . . . . . . . . . . . . . 373
15.5.3 计算效率问题 . . . . . . . . . . . . . . . . . . . . . . . . 373
15.6 序列到序列模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
15.6.1 基于循环神经网络的序列到序列模型 . . . . . . . . . . . 382
15.6.2 基于注意力的序列到序列模型 . . . . . . . . . . . . . . . 383
15.6.3 基于自注意力的序列到序列模型 . . . . . . . . . . . . . 383
15.7 总结和深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
附录 A 线性代数 389
A.1 向量和向量空间 . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
A.1.1 向量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
A.1.2 向量空间 . . . . . . . . . . . . . . . . . . . . . . . . . . 389
A.1.3 范数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
A.1.4 常见的向量 . . . . . . . . . . . . . . . . . . . . . . . . . 392
A.2 矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
A.2.1 线性映射 . . . . . . . . . . . . . . . . . . . . . . . . . . 392
A.2.2 矩阵操作 . . . . . . . . . . . . . . . . . . . . . . . . . . 393
A.2.3 矩阵类型 . . . . . . . . . . . . . . . . . . . . . . . . . . 394
A.2.4 特征值与特征矢量 . . . . . . . . . . . . . . . . . . . . . 396
A.2.5 矩阵分解 . . . . . . . . . . . . . . . . . . . . . . . . . . 396
附录 B 微积分 397
B.1 导数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
B.1.1 导数法则 . . . . . . . . . . . . . . . . . . . . . . . . . . 399
B.2 常见函数的导数 . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
B.2.1 向量函数及其导数 . . . . . . . . . . . . . . . . . . . . . 400
B.2.2 按位计算的向量函数及其导数 . . . . . . . . . . . . . . . 400
B.2.3 Logistic函数 . . . . . . . . . . . . . . . . . . . . . . . . 400
B.2.4 softmax函数 . . . . . . . . . . . . . . . . . . . . . . . . 401
附录 C 数学优化 403
C.1 数学优化的类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
C.1.1 离散优化和连续优化 . . . . . . . . . . . . . . . . . . . . 403
C.1.2 无约束优化和约束优化 . . . . . . . . . . . . . . . . . . . 404
C.1.3 线性优化和非线性优化 . . . . . . . . . . . . . . . . . . . 404
C.2 优化算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
C.3 拉格朗日乘数法与KKT条件 . . . . . . . . . . . . . . . . . . . 407
C.3.1 等式约束优化问题 . . . . . . . . . . . . . . . . . . . . . 408
C.3.2 不等式约束优化问题 . . . . . . . . . . . . . . . . . . . . 408
附录 D 概率论 410
D.1 样本空间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
D.2 事件和概率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
D.2.1 随机变量 . . . . . . . . . . . . . . . . . . . . . . . . . . 411
D.2.2 随机向量 . . . . . . . . . . . . . . . . . . . . . . . . . . 415
D.2.3 边际分布 . . . . . . . . . . . . . . . . . . . . . . . . . . 416
D.2.4 条件概率分布 . . . . . . . . . . . . . . . . . . . . . . . . 417
D.2.5 独立与条件独立 . . . . . . . . . . . . . . . . . . . . . . 418
D.2.6 期望和方差 . . . . . . . . . . . . . . . . . . . . . . . . . 418
D.3 随机过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
D.3.1 马尔可夫过程 . . . . . . . . . . . . . . . . . . . . . . . . 420
D.3.2 高斯过程 . . . . . . . . . . . . . . . . . . . . . . . . . . 421
附录 E 信息论 423
E.1 熵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
E.1.1 自信息和熵 . . . . . . . . . . . . . . . . . . . . . . . . . 423
E.1.2 联合熵和条件熵 . . . . . . . . . . . . . . . . . . . . . . 424
E.2 互信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
E.3 交叉熵和散度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
E.3.1 交叉熵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
E.3.2 KL散度 . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
E.3.3 JS散度 . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
E.3.4 Wasserstein距离 . . . . . . . . . . . . . . . . . . . . . . 426
· · · · · ·