第1章 绪论 1
1.1 引言 1
1.2 基本术语 2
1.3 监督学习算法 6
1.3.1 支持向量机 6
1.3.2 决策树 9
1.4 无监督学习算法 11
1.4.1 主成分分析 11
1.4.2 K-均值聚类 15
1.5 机器学习 16
1.6 深度学习的趋势 21
1.6.1 与日俱增的数据量 21
1.6.2 愈发庞大的计算资源 22
1.6.3 越来越高的性能以及解决实际问题的潜力 23
思考题 23
参考文献 24
第2章 TensorFlow和Keras简介 27
2.1 TensorFlow简介 27
2.1.1 概述 27
2.1.2 TensorFlow的使用 29
2.1.3 TensorFlow的可视化 32
2.2 Keras简介 36
2.2.1 Keras概述 36
2.2.2 Keras的使用 37
2.2.3 Keras的可视化 38
思考题 39
参考文献 39
第3章 简单神经网络 40
3.1 人脑是如何学习的 40
3.2 模仿人脑——神经元(感知器) 42
3.3 非线性神经元 44
3.4 神经网络架构 47
3.5 梯度下降 49
3.5.1 代价函数 49
3.5.2 梯度下降 50
3.6 反向传播 53
3.6.1 多层神经网络的数学表示 53
3.6.2 反向传播算法原理 54
3.7 实现简单神经网络 56
思考题 62
参考文献 63
第4章 图像类数据处理 65
4.1 二维卷积神经网络的基本原理 65
4.1.1 卷积神经网络的原理 66
4.1.2 参数共享 69
4.1.3 池化 72
4.1.4 分类原理 75
4.2 简单卷积神经网络实例 78
4.3 过度拟合 86
4.3.1 容量、过拟合与欠拟合的基本概念 86
4.3.2 数据集增强 88
4.3.3 L2正则化 89
4.3.4 L1正则化 93
4.3.5 Dropout 95
4.3.6 提前终止 99
4.4 时间优化 104
4.4.1 交叉熵代价函数 104
4.4.2 批标准化 108
4.4.3 随机梯度下降 110
4.4.4 动量 112
4.4.5 Nesterov动量 116
4.5 综合二维卷积神经网络实例 116
思考题 121
参考文献 123
第5章 序列类数据处理 127
5.1 一维卷积神经网络 127
5.1.1 一维卷积神经网络的原理 127
5.1.2 一维卷积神经网络实例 129
5.2 循环神经网络 134
5.2.1 循环神经网络的基本原理 135
5.2.2 循环神经网络的输出 141
5.2.3 上下文依赖型数据处理 145
5.2.4 序列到序列的数据处理 147
5.3 递归神经网络 150
5.3.1 递归神经网络的基本原理 150
5.3.2 长期依赖性 151
5.4 长短期记忆LSTM网络 155
5.4.1 长短期记忆网络的基本原理 155
5.4.2 长短期记忆网络工程实例 159
思考题 169
参考文献 170
第6章 深度学习模型优化 175
6.1 参数初始化 175
6.2 超参数寻优算法 179
6.2.1 手动超参数寻优 179
6.2.2 超参数寻优算法 181
6.3 基于梯度的自适应学习算法 183
6.3.1 AdaGrad算法 183
6.3.2 RMSProp算法 184
6.3.3 Adam算法 185
6.4 生成对抗神经网络及实例 187
6.5 迁移学习及实例 198
6.6 强化学习 215
6.7 模型优化的局限性 227
6.7.1 局部极小值 227
6.7.2 梯度消失、梯度爆炸与悬崖 228
6.7.3 鞍点 232
6.7.4 长期依赖 233
6.7.5 梯度的非精确性 234
思考题 234
参考文献 236
第7章 数据和模型的处理与调试 239
7.1 模型评价 239
7.2 数据预处理 241
7.3 基础模型的选择 246
7.4 模型调试 248
思考题 250
参考文献 251
第8章 现代深度学习模型概述 253
8.1 玻尔兹曼机 253
8.1.1 标准玻尔兹曼机 253
8.1.2 受限玻尔兹曼机 255
8.1.3 深层玻尔兹曼机 258
8.2 自编码器 262
8.2.1 标准自编码器 262
8.2.2 稀疏自编码器 264
8.2.3 降噪自编码器 266
8.3 深度信念网络及实例 269
8.4 残差神经网络及实例 278
8.5 胶囊神经网络及实例 286
思考题 294
参考文献 295
附录 298
附录A 基于深度学习的视频目标跟踪研究进展综述 298
附录B Q-Learning算法的参考代码 309