DRAFT深度学习
2017 年 7 月 27 日
ii
DRAFT
目录
致谢
网站
数学符号
xvi
xxii
xxiii
DRAFT
1
1.1 本书面向的读者 . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2 深度学习的历史趋势 . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1 神经网络的众多名称和命运变迁 . . . . . . . . . . . 12
1.2.2 与日俱增的数据量 . . . . . . . . . . . . . . . . . . . 17
1.2.3 与日俱增的模型规模 . . . . . . . . . . . . . . . . . . 19
1.2.4 与日俱增的精度、复杂度和对现实世界的冲击 . . . . 22
27
2.1 标量、向量、矩阵和张量 . . . . . . . . . . . . . . . . . . . . 27
2.2 矩阵和向量相乘 . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3 单位矩阵和逆矩阵 . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4 线性相关和生成子空间 . . . . . . . . . . . . . . . . . . . . . . 32
2.5 范数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.6 特殊类型的矩阵和向量 . . . . . . . . . . . . . . . . . . . . . . 36
2.7 特征分解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
25
第一章 引言
第一部分 应用数学与机器学习基础
第二章 线性代数
iii
iv
目录
第三章 概率与信息论
2.8 奇异值分解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.9 Moore-Penrose 伪逆 . . . . . . . . . . . . . . . . . . . . . . . 40
2.10 迹运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.11 行列式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.12 实例:主成分分析 . . . . . . . . . . . . . . . . . . . . . . . . 42
DRAFT
47
3.1 为什么要使用概率? . . . . . . . . . . . . . . . . . . . . . . . 47
3.2 随机变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3 概率分布 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.1 离散型变量和概率质量函数 . . . . . . . . . . . . . . 50
3.3.2 连续型变量和概率密度函数 . . . . . . . . . . . . . . 51
3.4 边缘概率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.5 条件概率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.6 条件概率的链式法则 . . . . . . . . . . . . . . . . . . . . . . . 53
3.7 独立性和条件独立性 . . . . . . . . . . . . . . . . . . . . . . . 53
3.8 期望、方差和协方差 . . . . . . . . . . . . . . . . . . . . . . . 54
3.9 常用概率分布 . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Bernoulli 分布 . . . . . . . . . . . . . . . . . . . . . 56
3.9.1
Multinoulli 分布 . . . . . . . . . . . . . . . . . . . . 56
3.9.2
3.9.3 高斯分布 . . . . . . . . . . . . . . . . . . . . . . . . 57
3.9.4 指数分布和 Laplace 分布 . . . . . . . . . . . . . . . 58
3.9.5
Dirac 分布和经验分布 . . . . . . . . . . . . . . . . . 59
3.9.6 分布的混合 . . . . . . . . . . . . . . . . . . . . . . . 59
3.10 常用函数的有用性质 . . . . . . . . . . . . . . . . . . . . . . . 61
3.11 贝叶斯规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.12 连续型变量的技术细节 . . . . . . . . . . . . . . . . . . . . . . 64
3.13 信息论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.14 结构化概率模型 . . . . . . . . . . . . . . . . . . . . . . . . . . 69
第四章 数值计算
72
4.1 上溢和下溢 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.2 病态条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
目录
v
4.3 基于梯度的优化方法 . . . . . . . . . . . . . . . . . . . . . . . 74
4.3.1 梯度之上:Jacobian 和 Hessian 矩阵 . . . . . . . . . 77
4.4 约束优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.5 实例:线性最小二乘 . . . . . . . . . . . . . . . . . . . . . . . 85
第五章 机器学习基础
DRAFT
87
5.1 学习算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.1.1 任务 T . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.1.2 性能度量 P . . . . . . . . . . . . . . . . . . . . . . . 91
5.1.3 经验 E . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.1.4 示例:线性回归 . . . . . . . . . . . . . . . . . . . . 94
5.2 容量、过拟合和欠拟合 . . . . . . . . . . . . . . . . . . . . . . 97
5.2.1 没有免费午餐定理 . . . . . . . . . . . . . . . . . . . 102
5.2.2 正则化 . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.3 超参数和验证集 . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.3.1 交叉验证 . . . . . . . . . . . . . . . . . . . . . . . . 106
5.4 估计、偏差和方差 . . . . . . . . . . . . . . . . . . . . . . . . 108
5.4.1 点估计 . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.4.2 偏差 . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.4.3 方差和标准差 . . . . . . . . . . . . . . . . . . . . . . 111
5.4.4 权衡偏差和方差以最小化均方误差 . . . . . . . . . . 113
5.4.5 一致性 . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.5 最大似然估计 . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.5.1 条件对数似然和均方误差 . . . . . . . . . . . . . . . 116
5.5.2 最大似然的性质 . . . . . . . . . . . . . . . . . . . . 117
5.6 贝叶斯统计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.6.1 最大后验 (MAP) 估计 . . . . . . . . . . . . . . . . . 121
5.7 监督学习算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.7.1 概率监督学习 . . . . . . . . . . . . . . . . . . . . . . 122
5.7.2 支持向量机 . . . . . . . . . . . . . . . . . . . . . . . 123
5.7.3 其他简单的监督学习算法 . . . . . . . . . . . . . . . 125
5.8 无监督学习算法 . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.8.1 主成分分析 . . . . . . . . . . . . . . . . . . . . . . . 128
vi
目录
第二部分 深度网络:现代实践
第六章 深度前馈网络
5.8.2
k-均值聚类 . . . . . . . . . . . . . . . . . . . . . . . 131
5.9 随机梯度下降 . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
5.10 构建机器学习算法 . . . . . . . . . . . . . . . . . . . . . . . . 133
5.11 促使深度学习发展的挑战 . . . . . . . . . . . . . . . . . . . . 134
5.11.1 维数灾难 . . . . . . . . . . . . . . . . . . . . . . . . 135
5.11.2 局部不变性和平滑正则化 . . . . . . . . . . . . . . . 135
5.11.3 流形学习 . . . . . . . . . . . . . . . . . . . . . . . . 139
143
DRAFT
145
6.1 实例:学习 XOR . . . . . . . . . . . . . . . . . . . . . . . . . 148
6.2 基于梯度的学习 . . . . . . . . . . . . . . . . . . . . . . . . . . 152
6.2.1 代价函数 . . . . . . . . . . . . . . . . . . . . . . . . 153
6.2.1.1 使用最大似然学习条件分布 . . . . . . . . . . . . . 154
6.2.1.2 学习条件统计量 . . . . . . . . . . . . . . . . . . . . 155
6.2.2 输出单元 . . . . . . . . . . . . . . . . . . . . . . . . 156
6.2.2.1 用于高斯输出分布的线性单元 . . . . . . . . . . . . 156
6.2.2.2 用于 Bernoulli 输出分布的 sigmoid 单元 . . . . . . 157
6.2.2.3 用于 Multinoulli 输出分布的 softmax 单元 . . . . . 159
6.2.2.4 其他的输出类型 . . . . . . . . . . . . . . . . . . . . 162
6.3 隐藏单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
6.3.1 整流线性单元及其扩展 . . . . . . . . . . . . . . . . . 166
6.3.2
logistic sigmoid 与双曲正切函数 . . . . . . . . . . . 168
6.3.3 其他隐藏单元 . . . . . . . . . . . . . . . . . . . . . . 169
6.4 架构设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
6.4.1 万能近似性质和深度 . . . . . . . . . . . . . . . . . . 171
6.4.2 其他架构上的考虑 . . . . . . . . . . . . . . . . . . . 174
6.5 反向传播和其他的微分算法 . . . . . . . . . . . . . . . . . . . 175
6.5.1 计算图 . . . . . . . . . . . . . . . . . . . . . . . . . . 176
6.5.2 微积分中的链式法则 . . . . . . . . . . . . . . . . . . 178
6.5.3 递归地使用链式法则来实现反向传播 . . . . . . . . . 179
目录
vii
第七章 深度学习中的正则化
7.1.1
7.1.2
6.5.4 全连接 MLP 中的反向传播计算 . . . . . . . . . . . . 181
6.5.5 符号到符号的导数 . . . . . . . . . . . . . . . . . . . 182
6.5.6 一般化的反向传播 . . . . . . . . . . . . . . . . . . . 185
6.5.7 实例:用于 MLP 训练的反向传播 . . . . . . . . . . 188
6.5.8 复杂化 . . . . . . . . . . . . . . . . . . . . . . . . . . 190
6.5.9 深度学习界以外的微分 . . . . . . . . . . . . . . . . . 191
6.5.10 高阶微分 . . . . . . . . . . . . . . . . . . . . . . . . 193
6.6 历史小记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
DRAFT
197
7.1 参数范数惩罚 . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
L2 参数正则化 . . . . . . . . . . . . . . . . . . . . . 199
L1 参数正则化 . . . . . . . . . . . . . . . . . . . . . 202
7.2 作为约束的范数惩罚 . . . . . . . . . . . . . . . . . . . . . . . 204
7.3 正则化和欠约束问题 . . . . . . . . . . . . . . . . . . . . . . . 206
7.4 数据集增强 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
7.5 噪声鲁棒性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
7.5.1 向输出目标注入噪声 . . . . . . . . . . . . . . . . . . 209
7.6 半监督学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
7.7 多任务学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
7.8 提前终止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
7.9 参数绑定和参数共享 . . . . . . . . . . . . . . . . . . . . . . . 217
7.9.1 卷积神经网络 . . . . . . . . . . . . . . . . . . . . . . 218
7.10 稀疏表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
7.11 Bagging 和其他集成方法 . . . . . . . . . . . . . . . . . . . . . 220
7.12 Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
7.13 对抗训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
7.14 切面距离、正切传播和流形正切分类器 . . . . . . . . . . . . . 232
第八章 深度模型中的优化
235
8.1 学习和纯优化有什么不同 . . . . . . . . . . . . . . . . . . . . 235
8.1.1 经验风险最小化 . . . . . . . . . . . . . . . . . . . . 236
8.1.2 代理损失函数和提前终止 . . . . . . . . . . . . . . . 237
viii
目录
DRAFT
8.1.3 批量算法和小批量算法 . . . . . . . . . . . . . . . . . 237
8.2 神经网络优化中的挑战 . . . . . . . . . . . . . . . . . . . . . . 241
8.2.1 病态 . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
8.2.2 局部极小值 . . . . . . . . . . . . . . . . . . . . . . . 243
8.2.3 高原、鞍点和其他平坦区域 . . . . . . . . . . . . . . 244
8.2.4 悬崖和梯度爆炸 . . . . . . . . . . . . . . . . . . . . 246
8.2.5 长期依赖 . . . . . . . . . . . . . . . . . . . . . . . . 247
8.2.6 非精确梯度 . . . . . . . . . . . . . . . . . . . . . . . 248
8.2.7 局部和全局结构间的弱对应 . . . . . . . . . . . . . . 248
8.2.8 优化的理论限制 . . . . . . . . . . . . . . . . . . . . 250
8.3 基本算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
8.3.1 随机梯度下降 . . . . . . . . . . . . . . . . . . . . . . 251
8.3.2 动量 . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Nesterov 动量 . . . . . . . . . . . . . . . . . . . . . 256
8.3.3
8.4 参数初始化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . 256
8.5 自适应学习率算法 . . . . . . . . . . . . . . . . . . . . . . . . 261
AdaGrad . . . . . . . . . . . . . . . . . . . . . . . . 261
8.5.1
RMSProp . . . . . . . . . . . . . . . . . . . . . . . . 262
8.5.2
Adam . . . . . . . . . . . . . . . . . . . . . . . . . . 262
8.5.3
8.5.4 选择正确的优化算法 . . . . . . . . . . . . . . . . . . 263
8.6 二阶近似方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
8.6.1 牛顿法 . . . . . . . . . . . . . . . . . . . . . . . . . . 266
8.6.2 共轭梯度 . . . . . . . . . . . . . . . . . . . . . . . . 267
8.6.3
BFGS . . . . . . . . . . . . . . . . . . . . . . . . . . 270
8.7 优化策略和元算法 . . . . . . . . . . . . . . . . . . . . . . . . 271
8.7.1 批标准化 . . . . . . . . . . . . . . . . . . . . . . . . 271
8.7.2 坐标下降 . . . . . . . . . . . . . . . . . . . . . . . . 274
8.7.3
Polyak 平均 . . . . . . . . . . . . . . . . . . . . . . . 274
8.7.4 监督预训练 . . . . . . . . . . . . . . . . . . . . . . . 275
8.7.5 设计有助于优化的模型 . . . . . . . . . . . . . . . . . 277
8.7.6 延拓法和课程学习 . . . . . . . . . . . . . . . . . . . 278