1、深度学习2017 年 9 月 4 日ii目录致谢xvi网站xxii数学符号xxiii第一章引言11.1本书面向的读者 . . . . . . . . . . . . . . . . . . . . . . . . . .101.2深度学习的历史趋势 . . . . . . . . . . . . . . . . . . . . . . .111.2.1神经网络的众多名称和命运变迁. . . . . . . . . . .121.2.2与日俱增的数据量 . . . . . . . . . . . . . . . . . . .171.2.3与日俱增的模型规模 . . . . . . . . .
2、. . . . . . . . .191.2.4与日俱增的精度、复杂度和对现实世界的冲击 . . . .22第一部分应用数学与机器学习基础25第二章线性代数272.1标量、向量、矩阵和张量. . . . . . . . . . . . . . . . . . . .272.2矩阵和向量相乘 . . . . . . . . . . . . . . . . . . . . . . . . . .292.3单位矩阵和逆矩阵. . . . . . . . . . . . . . . . . . . . . . . .312.4线性相关和生成子空间 . . . . . . . . . . . . . .
3、 . . . . . . . .322.5范数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342.6特殊类型的矩阵和向量 . . . . . . . . . . . . . . . . . . . . . .362.7特征分解. . . . . . . . . . . . . . . . . . . . . . . . . . . . .37iiiiv目录2.8奇异值分解 . . . . . . . . . . . . . . . . . . . . . . . . . . . .392.9Moore-Penr
4、ose 伪逆. . . . . . . . . . . . . . . . . . . . . . .402.10迹运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .412.11行列式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .422.12实例:主成分分析. . . . . . . . . . . . . . . . . . . . . . . .42第三章概率与信息论473.1为什么要使用概率? . . . . . . . . . .
5、. . . . . . . . . . . . .473.2随机变量. . . . . . . . . . . . . . . . . . . . . . . . . . . . .493.3概率分布. . . . . . . . . . . . . . . . . . . . . . . . . . . . .503.3.1离散型变量和概率质量函数 . . . . . . . . . . . . . .503.3.2连续型变量和概率密度函数 . . . . . . . . . . . . . .513.4边缘概率. . . . . . . . . . . . . . . . . . . .
6、. . . . . . . . .523.5条件概率. . . . . . . . . . . . . . . . . . . . . . . . . . . . .523.6条件概率的链式法则 . . . . . . . . . . . . . . . . . . . . . . .533.7独立性和条件独立性 . . . . . . . . . . . . . . . . . . . . . . .533.8期望、方差和协方差 . . . . . . . . . . . . . . . . . . . . . . .543.9常用概率分布 . . . . . . . . . . . . .
7、 . . . . . . . . . . . . . .553.9.1Bernoulli 分布. . . . . . . . . . . . . . . . . . . . .563.9.2Multinoulli 分布 . . . . . . . . . . . . . . . . . . . .563.9.3高斯分布. . . . . . . . . . . . . . . . . . . . . . . .573.9.4指数分布和 Laplace 分布. . . . . . . . . . . . . . .583.9.5Dirac 分布和经验分布 . . . . . . . . . .
8、. . . . . . .593.9.6分布的混合 . . . . . . . . . . . . . . . . . . . . . . .593.10常用函数的有用性质 . . . . . . . . . . . . . . . . . . . . . . .613.11贝叶斯规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . .633.12连续型变量的技术细节 . . . . . . . . . . . . . . . . . . . . . .643.13信息论 . . . . . . . . . . . . . . . .
9、 . . . . . . . . . . . . . . .653.14结构化概率模型 . . . . . . . . . . . . . . . . . . . . . . . . . .69第四章数值计算724.1上溢和下溢 . . . . . . . . . . . . . . . . . . . . . . . . . . . .724.2病态条件. . . . . . . . . . . . . . . . . . . . . . . . . . . . .73目录v4.3基于梯度的优化方法 . . . . . . . . . . . . . . . . . . . . . . .7
10、44.3.1梯度之上:Jacobian 和 Hessian 矩阵 . . . . . . . . .774.4约束优化. . . . . . . . . . . . . . . . . . . . . . . . . . . . .824.5实例:线性最小二乘 . . . . . . . . . . . . . . . . . . . . . . .85第五章机器学习基础875.1学习算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . .875.1.1任务 T. . . . . . . . . . . . . . . . . .
11、. . . . . . .885.1.2性能度量 P . . . . . . . . . . . . . . . . . . . . . . .915.1.3经验 E. . . . . . . . . . . . . . . . . . . . . . . . .925.1.4示例:线性回归. . . . . . . . . . . . . . . . . . . .945.2容量、过拟合和欠拟合 . . . . . . . . . . . . . . . . . . . . . .975.2.1没有免费午餐定理 . . . . . . . . . . . . . . . . . . . 10
12、25.2.2正则化 . . . . . . . . . . . . . . . . . . . . . . . . . . 1045.3超参数和验证集 . . . . . . . . . . . . . . . . . . . . . . . . . . 1055.3.1交叉验证. . . . . . . . . . . . . . . . . . . . . . . . 1065.4估计、偏差和方差. . . . . . . . . . . . . . . . . . . . . . . . 1085.4.1点估计 . . . . . . . . . . . . . . . . . . .
13、. . . . . . . 1085.4.2偏差 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095.4.3方差和标准差 . . . . . . . . . . . . . . . . . . . . . . 1115.4.4权衡偏差和方差以最小化均方误差 . . . . . . . . . . 1135.4.5一致性 . . . . . . . . . . . . . . . . . . . . . . . . . . 1145.5最大似然估计 . . . . . . . . . . . . . . . . . . . . .
14、 . . . . . . 1155.5.1条件对数似然和均方误差. . . . . . . . . . . . . . . 1165.5.2最大似然的性质. . . . . . . . . . . . . . . . . . . . 1175.6贝叶斯统计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185.6.1最大后验 (MAP) 估计 . . . . . . . . . . . . . . . . . 1215.7监督学习算法 . . . . . . . . . . . . . . . . . . . . . . .
15、. . . . 1225.7.1概率监督学习 . . . . . . . . . . . . . . . . . . . . . . 1225.7.2支持向量机 . . . . . . . . . . . . . . . . . . . . . . . 1235.7.3其他简单的监督学习算法. . . . . . . . . . . . . . . 1255.8无监督学习算法 . . . . . . . . . . . . . . . . . . . . . . . . . . 1285.8.1主成分分析 . . . . . . . . . . . . . . . . . . . . . .
16、. 128欢迎加入非盈利Py t h o n 编程学习交流QQ群783462347,群里免费提供500+本Py t h o n 书籍!vi目录5.8.2k-均值聚类 . . . . . . . . . . . . . . . . . . . . . . . 1315.9随机梯度下降 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1325.10构建机器学习算法. . . . . . . . . . . . . . . . . . . . . . . . 1335.11促使深度学习发展的挑战. . . . . . . . . . . .
17、 . . . . . . . . 1345.11.1维数灾难. . . . . . . . . . . . . . . . . . . . . . . . 1355.11.2局部不变性和平滑正则化. . . . . . . . . . . . . . . 1355.11.3流形学习. . . . . . . . . . . . . . . . . . . . . . . . 139第二部分深度网络:现代实践143第六章深度前馈网络1456.1实例:学习 XOR . . . . . . . . . . . . . . . . . . . . . . . . . 1486.2基于梯度的学习 . .
18、 . . . . . . . . . . . . . . . . . . . . . . . . 1526.2.1代价函数. . . . . . . . . . . . . . . . . . . . . . . . 1536.2.1.1使用最大似然学习条件分布. . . . . . . . . . . . . 1546.2.1.2学习条件统计量 . . . . . . . . . . . . . . . . . . . . 1556.2.2输出单元. . . . . . . . . . . . . . . . . . . . . . . . 1566.2.2.1用于高斯输出分布的线性单元 .
19、 . . . . . . . . . . . 1566.2.2.2用于 Bernoulli 输出分布的 sigmoid 单元 . . . . . . 1576.2.2.3用于 Multinoulli 输出分布的 softmax 单元 . . . . . 1596.2.2.4其他的输出类型 . . . . . . . . . . . . . . . . . . . . 1626.3隐藏单元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1656.3.1整流线性单元及其扩展 . . . . . . . . . . . . . .
20、. . . 1666.3.2logistic sigmoid 与双曲正切函数. . . . . . . . . . . 1686.3.3其他隐藏单元 . . . . . . . . . . . . . . . . . . . . . . 1696.4架构设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1706.4.1万能近似性质和深度 . . . . . . . . . . . . . . . . . . 1716.4.2其他架构上的考虑 . . . . . . . . . . . . . . . . . . . 1746
21、.5反向传播和其他的微分算法 . . . . . . . . . . . . . . . . . . . 1756.5.1计算图 . . . . . . . . . . . . . . . . . . . . . . . . . . 1766.5.2微积分中的链式法则 . . . . . . . . . . . . . . . . . . 1786.5.3递归地使用链式法则来实现反向传播 . . . . . . . . . 179欢迎加入非盈利Py t h o n 编程学习交流QQ群783462347,群里免费提供500+本Py t h o n 书籍!目录vii6.5.4全连接 MLP 中的反
22、向传播计算 . . . . . . . . . . . . 1816.5.5符号到符号的导数 . . . . . . . . . . . . . . . . . . . 1826.5.6一般化的反向传播 . . . . . . . . . . . . . . . . . . . 1856.5.7实例:用于 MLP 训练的反向传播. . . . . . . . . . 1886.5.8复杂化 . . . . . . . . . . . . . . . . . . . . . . . . . . 1906.5.9深度学习界以外的微分 . . . . . . . . . . . . . . . .
23、. 1916.5.10高阶微分. . . . . . . . . . . . . . . . . . . . . . . . 1936.6历史小记. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193第七章深度学习中的正则化1977.1参数范数惩罚 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1987.1.1L2参数正则化 . . . . . . . . . . . . . . . . . . . . . 1997.1.2L1参数正则化 . . . . . . .
24、 . . . . . . . . . . . . . . 2027.2作为约束的范数惩罚 . . . . . . . . . . . . . . . . . . . . . . . 2047.3正则化和欠约束问题 . . . . . . . . . . . . . . . . . . . . . . . 2067.4数据集增强 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2077.5噪声鲁棒性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087.5.1向输出
25、目标注入噪声 . . . . . . . . . . . . . . . . . . 2097.6半监督学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097.7多任务学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2107.8提前终止. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2117.9参数绑定和参数共享 . . . . . . . . . . . . . . . . . . .
26、 . . . . 2177.9.1卷积神经网络 . . . . . . . . . . . . . . . . . . . . . . 2187.10稀疏表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2187.11Bagging 和其他集成方法 . . . . . . . . . . . . . . . . . . . . . 2207.12Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2227.13对抗训练. . . . . .
27、. . . . . . . . . . . . . . . . . . . . . . . 2307.14切面距离、正切传播和流形正切分类器 . . . . . . . . . . . . . 232第八章深度模型中的优化2358.1学习和纯优化有什么不同. . . . . . . . . . . . . . . . . . . . 2358.1.1经验风险最小化. . . . . . . . . . . . . . . . . . . . 2368.1.2代理损失函数和提前终止. . . . . . . . . . . . . . . 237欢迎加入非盈利Py t h o n 编程学习交流Q
28、Q群783462347,群里免费提供500+本Py t h o n 书籍!viii目录8.1.3批量算法和小批量算法 . . . . . . . . . . . . . . . . . 2378.2神经网络优化中的挑战 . . . . . . . . . . . . . . . . . . . . . . 2418.2.1病态 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2428.2.2局部极小值 . . . . . . . . . . . . . . . . . . . . . . . 2438.2.3高原、鞍点和其他平坦区域
29、. . . . . . . . . . . . . . 2448.2.4悬崖和梯度爆炸. . . . . . . . . . . . . . . . . . . . 2468.2.5长期依赖. . . . . . . . . . . . . . . . . . . . . . . . 2478.2.6非精确梯度 . . . . . . . . . . . . . . . . . . . . . . . 2488.2.7局部和全局结构间的弱对应 . . . . . . . . . . . . . . 2488.2.8优化的理论限制. . . . . . . . . . . . . . . . .
30、 . . . 2508.3基本算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2518.3.1随机梯度下降 . . . . . . . . . . . . . . . . . . . . . . 2518.3.2动量 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2538.3.3Nesterov 动量. . . . . . . . . . . . . . . . . . . . . 2568.4参数初始化策略 . . . . . . . . . . . . .
31、. . . . . . . . . . . . . 2568.5自适应学习率算法. . . . . . . . . . . . . . . . . . . . . . . . 2618.5.1AdaGrad. . . . . . . . . . . . . . . . . . . . . . . . 2618.5.2RMSProp . . . . . . . . . . . . . . . . . . . . . . . . 2628.5.3Adam . . . . . . . . . . . . . . . . . . . . . . . . . . 2628.5.4选择正确的优化算法 .
32、. . . . . . . . . . . . . . . . . 2638.6二阶近似方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2658.6.1牛顿法 . . . . . . . . . . . . . . . . . . . . . . . . . . 2668.6.2共轭梯度. . . . . . . . . . . . . . . . . . . . . . . . 2678.6.3BFGS . . . . . . . . . . . . . . . . . . . . . . . . . . 2708.7优化策略
33、和元算法. . . . . . . . . . . . . . . . . . . . . . . . 2718.7.1批标准化. . . . . . . . . . . . . . . . . . . . . . . . 2718.7.2坐标下降. . . . . . . . . . . . . . . . . . . . . . . . 2748.7.3Polyak 平均 . . . . . . . . . . . . . . . . . . . . . . . 2748.7.4监督预训练 . . . . . . . . . . . . . . . . . . . . . . . 2758
34、.7.5设计有助于优化的模型 . . . . . . . . . . . . . . . . . 2778.7.6延拓法和课程学习 . . . . . . . . . . . . . . . . . . . 278欢迎加入非盈利Py t h o n 编程学习交流QQ群783462347,群里免费提供500+本Py t h o n 书籍!目录ix第九章卷积网络2819.1卷积运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2829.2动机 . . . . . . . . . . . . . . . . . . . . . .
35、 . . . . . . . . . . 2859.3池化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2909.4卷积与池化作为一种无限强的先验. . . . . . . . . . . . . . . 2959.5基本卷积函数的变体 . . . . . . . . . . . . . . . . . . . . . . . 2969.6结构化输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3069.7数据类型. . . . . . . .
36、 . . . . . . . . . . . . . . . . . . . . . 3079.8高效的卷积算法 . . . . . . . . . . . . . . . . . . . . . . . . . . 3099.9随机或无监督的特征 . . . . . . . . . . . . . . . . . . . . . . . 3109.10卷积网络的神经科学基础. . . . . . . . . . . . . . . . . . . . 3119.11卷积网络与深度学习的历史 . . . . . . . . . . . . . . . . . . . 317第十章序列建模:循环
37、和递归网络31910.1展开计算图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32010.2循环神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . 32310.2.1导师驱动过程和输出循环网络 . . . . . . . . . . . . . 32610.2.2计算循环神经网络的梯度. . . . . . . . . . . . . . . 32810.2.3作为有向图模型的循环网络 . . . . . . . . . . . . . . 33010.2.4
38、基于上下文的 RNN 序列建模 . . . . . . . . . . . . . 33410.3双向 RNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33610.4基于编码-解码的序列到序列架构 . . . . . . . . . . . . . . . . 33810.5深度循环网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . 34010.6递归神经网络 . . . . . . . . . . . . . . . . . . . . . . . . .
39、 . . 34110.7长期依赖的挑战 . . . . . . . . . . . . . . . . . . . . . . . . . . 34310.8回声状态网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . 34510.9渗漏单元和其他多时间尺度的策略. . . . . . . . . . . . . . . 34710.9.1时间维度的跳跃连接 . . . . . . . . . . . . . . . . . . 34710.9.2渗漏单元和一系列不同时间尺度. . . . . . . . . . . 34810.9.
40、3删除连接. . . . . . . . . . . . . . . . . . . . . . . . 34810.10 长短期记忆和其他门控 RNN. . . . . . . . . . . . . . . . . . 34910.10.1LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . 34910.10.2其他门控 RNN . . . . . . . . . . . . . . . . . . . . . 351欢迎加入非盈利Py t h o n 编程学习交流QQ群783462347,群里免费提供500+本Py t h o
41、n 书籍!x目录10.11 优化长期依赖 . . . . . . . . . . . . . . . . . . . . . . . . . . . 35210.11.1截断梯度. . . . . . . . . . . . . . . . . . . . . . . . 35310.11.2引导信息流的正则化 . . . . . . . . . . . . . . . . . . 35510.12 外显记忆. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355第十一章实践方法论35911.1性能度量. . . . . . .
42、 . . . . . . . . . . . . . . . . . . . . . . 36011.2默认的基准模型 . . . . . . . . . . . . . . . . . . . . . . . . . . 36211.3决定是否收集更多数据 . . . . . . . . . . . . . . . . . . . . . . 36311.4选择超参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36411.4.1手动调整超参数. . . . . . . . . . . . . . . . . . . . 3
43、6411.4.2自动超参数优化算法 . . . . . . . . . . . . . . . . . . 36711.4.3网格搜索. . . . . . . . . . . . . . . . . . . . . . . . 36811.4.4随机搜索. . . . . . . . . . . . . . . . . . . . . . . . 36911.4.5基于模型的超参数优化 . . . . . . . . . . . . . . . . . 37011.5调试策略. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
44、7111.6示例:多位数字识别 . . . . . . . . . . . . . . . . . . . . . . . 374第十二章应用37712.1大规模深度学习 . . . . . . . . . . . . . . . . . . . . . . . . . . 37712.1.1快速的 CPU 实现. . . . . . . . . . . . . . . . . . . 37812.1.2GPU 实现 . . . . . . . . . . . . . . . . . . . . . . . . 37812.1.3大规模的分布式实现 . . . . . . . . . . .
45、. . . . . . . 38012.1.4模型压缩. . . . . . . . . . . . . . . . . . . . . . . . 38112.1.5动态结构. . . . . . . . . . . . . . . . . . . . . . . . 38212.1.6深度网络的专用硬件实现. . . . . . . . . . . . . . . 38412.2计算机视觉 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38512.2.1预处理 . . . . . . . . . . . . . . . .
46、. . . . . . . . . . 38512.2.1.1 对比度归一化 . . . . . . . . . . . . . . . . . . . . . 38612.2.2数据集增强 . . . . . . . . . . . . . . . . . . . . . . . 38912.3语音识别. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39012.4自然语言处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . 39212.4.1n-gram. . .
47、. . . . . . . . . . . . . . . . . . . . . . 392欢迎加入非盈利Py t h o n 编程学习交流QQ群783462347,群里免费提供500+本Py t h o n 书籍!目录xi12.4.2神经语言模型 . . . . . . . . . . . . . . . . . . . . . . 39412.4.3高维输出. . . . . . . . . . . . . . . . . . . . . . . . 39612.4.3.1 使用短列表. . . . . . . . . . . . . . . . . . . . . . 39612.4.
48、3.2 分层 Softmax. . . . . . . . . . . . . . . . . . . . . 39712.4.3.3 重要采样 . . . . . . . . . . . . . . . . . . . . . . . . 39912.4.3.4 噪声对比估计和排名损失 . . . . . . . . . . . . . . . 40112.4.4结合 n-gram 和神经语言模型 . . . . . . . . . . . . . 40112.4.5神经机器翻译 . . . . . . . . . . . . . . . . . . . . . . 40212.4.5.1
49、使用注意力机制并对齐数据片段 . . . . . . . . . . . 40312.4.6历史展望. . . . . . . . . . . . . . . . . . . . . . . . 40612.5其他应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40712.5.1推荐系统. . . . . . . . . . . . . . . . . . . . . . . . 40712.5.1.1 探索与利用. . . . . . . . . . . . . . . . . . . . . . 40912.5.2知识
50、表示、推理和回答 . . . . . . . . . . . . . . . . . 41012.5.2.1 知识、联系和回答 . . . . . . . . . . . . . . . . . . . 410第三部分深度学习研究414第十三章线性因子模型41713.1概率 PCA 和因子分析 . . . . . . . . . . . . . . . . . . . . . . 41813.2独立成分分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . 41913.3慢特征分析 . . . . . . . . . . . . . .