第1章 绪论 1
1.1 人工智能 1
1.1.1 什么是人工智能 1
1.1.2 人工智能的实现途径 2
1.1.3 人工智能发展简史 3
1.2 深度学习 7
1.2.1 深度学习发展简史 7
1.2.2 深度学习的主要应用 16
第2章 基础知识 24
2.1 线性代数 24
2.1.1 线性代数基础 24
2.1.2 矩阵的秩及矩阵运算 25
2.1.3 常见特殊矩阵 27
2.1.4 范数 28
2.1.5 特征分解 29
2.1.6 奇异值分解 29
2.2 概率论 30
2.2.1 随机变量 30
2.2.2 概率分布 30
2.2.3 随机变量的数字特征 33
2.2.4 贝叶斯定理 34
2.2.5 常用概率分布 34
2.3 最优化方法 35
2.3.1 梯度下降法 35
2.3.2 牛顿法 36
2.3.3 拟牛顿法 38
2.4 机器学习 38
2.4.1 基本概念 39
2.4.2 最大似然估计 39
2.4.3 机器学习的三要素 40
2.4.4 过拟合与欠拟合 42
2.4.5 学习方式 43
2.4.6 评估方法 44
2.4.7 性能度量 46
2.5 神经网络 47
2.5.1 神经元模型 47
2.5.2 单层感知器 50
2.5.3 多层感知器 51
第3章 深度卷积神经网络 56
3.1 卷积层和卷积运算 56
3.1.1 生物机理 56
3.1.2 卷积运算 56
3.2 池化层和池化运算 58
3.3 AlexNet卷积神经网络 60
3.3.1 AlexNet的提出背景 60
3.3.2 AlexNet的网络结构 61
3.3.3 AlexNet的训练细节 63
3.3.4 AlexNet在分类任务上的表现 65
3.4 VGG网络 67
3.4.1 VGG网络的提出背景 67
3.4.2 VGG网络的结构配置 67
3.4.3 VGG网络的训练细节 69
3.4.4 VGG网络在分类任务上的表现 70
3.5 ResNet卷积神经网络 73
3.5.1 ResNet的提出背景 73
3.5.2 ResNet的网络结构 73
3.5.3 ResNet的训练细节 76
3.5.4 ResNet在分类任务上的表现 77
第4章 深度循环神经网络 82
4.1 简单循环网络 82
4.1.1 简单循环网络的前向传播过程 83
4.1.2 简单循环网络的训练过程 84
4.1.3 简单循环网络的长期依赖问题 93
4.2 长短期记忆网络 94
4.2.1 门机制 94
4.2.2 长短期记忆网络的前向传播过程 94
4.2.3 长短期记忆网络的训练过程 98
4.2.4 长短期记忆网络的变体 101
4.3 神经图灵机 102
4.3.1 网络结构 102
4.3.2 寻址方式 104
4.3.3 控制器网络 105
4.3.4 小结 106
4.4 双向循环网络和多层循环网络 106
4.4.1 双向循环网络 106
4.4.2 多层循环网络 107
第5章 深度生成模型 108
5.1 变分自编码器 109
5.1.1 预备知识 109
5.1.2 解码器网络 111
5.1.3 编码器网络 112
5.1.4 总体模型 113
5.1.5 训练过程 114
5.2 生成对抗网络 116
5.2.1 基本思想 116
5.2.2 理论推导 118
5.2.3 训练过程 121
5.2.4 生成对抗网络的变体 122
第6章 深度强化学习 126
6.1 强化学习定义 126
6.1.1 目标函数 128
6.1.2 值函数 128
6.1.3 Q函数 129
6.2 强化学习求解方法 130
6.2.1 动态规划法 130
6.2.2 蒙特卡罗法 132
6.2.3 时序差分学习法 133
6.3 深度Q网络 135
6.4 策略梯度法 137
第7章 深度学习中的优化方法 140
7.1 梯度下降 140
7.1.1 批量梯度下降 140
7.1.2 随机梯度下降 141
7.1.3 小批量梯度下降 141
7.2 动量 143
7.2.1 经典动量 143
7.2.2 Nesterov动量 144
7.3 自适应法 144
7.3.1 AdaGrad 144
7.3.2 RMSProp 146
7.3.3 Adam 147
7.4 应用实例 148
7.4.1 梯度下降实例 152
7.4.2 动量实例 153
7.4.3 Nesterov动量实例 155
7.4.4 AdaGrad实例 155
7.4.5 RMSProp实例 158
7.4.6 Adam实例 158
第8章 深度学习中的训练技巧 162
8.1 网络正则化 162
8.1.1 参数范数惩罚 162
8.1.2 Dropout 164
8.1.3 Batch Normalization 166
8.2 数据增广与预处理 168
8.2.1 数据增广 168
8.2.2 数据预处理 170
8.3 参数初始化 172
8.4 激活函数的选择 173
8.5 超参数的选择 177
8.5.1 宽泛策略 177
8.5.2 学习率的调整 177
8.5.3 迭代次数 178
8.5.4 正则化参数 179
8.5.5 批量数据的大小 179
8.5.6 总体调参过程 179
8.6 调试策略 179
8.6.1 基本调试策略 179
8.6.2 可视化工具——TensorBoard 180
第9章 开源框架 190
9.1 Caffe 191
9.1.1 MNIST手写体数字集 192
9.1.2 深度模型LeNet-5 194
9.1.3 Caffe的文件目录结构 208
9.2 TensorFlow 210
9.3 PyTorch 213
9.4 PyTorch与TensorFlow的对比 222
9.5 Caffe与TensorFlow的对比 223
第10章 深度学习在目标检测中的应用 225
10.1 目标检测介绍 225
10.2 传统目标检测算法 225
10.3 基于深度学习的目标检测算法 226
10.3.1 R-CNN 226
10.3.2 Fast R-CNN 228
10.3.3 Faster R-CNN 230
10.3.4 YOLO 246
10.3.5 SSD 259
10.4 常用数据集 269
10.4.1 PASCAL VOC 269
10.4.2 COCO 271
10.5 算法性能分析 273
第11章 深度学习在目标跟踪中的应用 276
11.1 目标跟踪介绍 276
11.2 传统目标跟踪算法 278
11.3 基于深度学习的目标跟踪算法 280
11.3.1 DLT 280
11.3.2 GOTURN 283
11.3.3 SiameseFC 291
11.3.4 RTT 297
11.4 常用数据集 299
11.4.1 OTB 299
11.4.2 VOT 301
11.5 算法性能分析 302
11.6 航空目标跟踪任务 303
11.6.1 UAV123数据集 303
11.6.2 Campus数据集 308
第12章 深度学习在动作识别中的应用 310
12.1 动作识别介绍 310
12.2 传统动作识别方法 311
12.3 基于深度学习的动作识别方法 313
12.3.1 C3D网络 313
12.3.2 I3D网络 314
12.3.3 P3D 316
12.3.4 Two-stream方法 318
12.3.5 TSN 320
12.4 常用数据集 321
12.4.1 UCF系列数据集 321
12.4.2 ActivityNet数据集 323
12.4.3 THUMOS2014数据集 324
12.4.4 HMDB51数据集 324
12.5 算法性能分析 325
参考文献 327