第1章 初探深度学习 1
1.1 什么是深度学习 2
1.1.1 机器学习的一般方法 4
1.1.2 选择深度学习的原因 5
1.1.3 深度学习前的思考 6
1.2 深度学习的应用 7
1.3 深度学习的硬件加速器 10
1.3.1 GPU比CPU更适合深度学习 10
1.3.2 GPU硬件选择 13
1.4 深度学习的软件框架 15
1.5 本章小结 19
引用/参考 19
第2章 人工神经网络 21
2.1 人工神经网络概述 22
2.1.1 历史背景 22
2.1.2 基本单位——神经元 24
2.1.3 线性模型与激活函数 25
2.1.4 多层神经网络 26
2.2 训练与预测 28
2.2.1 训练 28
2.2.2 预测 29
2.3 核心算法 29
2.3.1 梯度下降算法 29
2.3.2 向前传播算法 31
2.3.3 反向传播算法 33
2.4 示例:医疗数据诊断 42
2.4.1 从医疗数据到数学模型 43
2.4.2 准备数据 44
2.4.3 线性分类 45
2.4.4 建立人工神经网络模型 46
2.4.5 隐层节点数对人工神经网络模型的影响 53
2.5 本章小结 55
引用/参考 56
第3章 深度学习基础及技巧 58
3.1 激活函数 59
3.1.1 线性函数 60
3.1.2 Sigmoid函数 61
3.1.3 双曲正切函数 62
3.1.4 ReLU函数 63
3.1.5 Softmax函数 64
3.1.6 激活函数的选择 65
3.2 损失函数 65
3.2.1 损失函数的定义 66
3.2.2 回归损失函数 67
3.2.3 分类损失函数 69
3.2.4 神经网络中常用的损失函数 70
3.3 超参数 71
3.3.1 学习率 71
3.3.2 动量 72
3.4 深度学习的技巧 73
3.4.1 数据集准备 73
3.4.2 数据集扩展 74
3.4.3 数据预处理 76
3.4.4 网络的初始化 81
3.4.5 网络过度拟合 84
3.4.6 正则化方法 85
3.4.7 GPU的使用 88
3.4.8 训练过程的技巧 89
3.5 本章小结 91
引用/参考 92
第4章 卷积神经网络 93
4.1 卷积神经网络概述 94
4.1.1 卷积神经网络的应用 95
4.1.2 卷积神经网络的结构 99
4.1.3 卷积神经网络与人工神经网络的联系 101
4.2 卷积操作 103
4.2.1 滑动窗口卷积操作 104
4.2.2 网络卷积层操作 105
4.2.3 矩阵快速卷积 107
4.3 卷积神经网络三大核心思想 110
4.3.1 传统神经网络的缺点 110
4.3.2 局部感知 111
4.3.3 权值共享 112
4.3.4 下采样 113
4.4 设计卷积神经网络架构 115
4.4.1 网络层间排列规律 116
4.4.2 网络参数设计规律 116
4.5 示例1:可视化手写字体网络特征 117
4.5.1 MNIST手写字体数据库 118
4.5.2 LeNet5网络模型 119
4.5.3 LeNet5网络训练 122
4.5.4 可视化特征向量 124
4.6 示例2:少样本卷积神经网络分类 127
4.6.1 Kaggle猫狗数据库 128
4.6.2 A1exNet模型 130
4.6.3 AlexNet训练 134
4.6.4 AlexNet预测 136
4.6.5 微调网络 137
4.7 本章小结 140
引用/参考 141
第5章 卷积神经网络视觉盛宴 143
5.1 图像目标检测 144
5.1.1 传统目标检测方法 146
5.1.2 基于区域的网络 147
5.1.3 基于回归的网络 157
5.1.4 目标检测小结 163
5.2 图像语义分割 165
5.2.1 传统图像分割方法 165
5.2.2 全卷积神经网络 167
5.2.3 SegNet网络 171
5.2.4 DeepLab网络 173
5.3 示例1:NMS确定候选框 176
5.4 示例2:SS算法提取候选框 179
5.4.1 图像复杂度 179
5.4.2 算法核心思想 180
5.4.3 区域相似度计算 184
5.5 本章小结 189
引用/参考 190
第6章 卷积神经网络进阶示例 192
6.1 示例1:全卷积网络图像语义分割 193
6.1.1 VGG连续小核卷积层 193
6.1.2 VGG网络模型 195
6.1.3 全卷积网络模型 199
6.1.4 全卷积网络语义分割 204
6.2 示例2:深度可视化网络 209
6.2.1 梯度上升法 210
6.2.2 可视化所有卷积层 213
6.2.3 可视化输出层 218
6.2.4 卷积神经网络真能理解视觉吗 219
6.3 示例3:卷积神经网络艺术绘画 220
6.3.1 算法思想 221
6.3.2 图像风格定义 222
6.3.3 图像内容定义 224
6.3.4 算法实现 225
引用/参考 229
第7章 循环神经网络 231
7.1 初识循环神经网络 232
7.1.1 前馈式神经网络的缺点 233
7.1.2 什么是序列数据 234
7.2 循环神经网络的应用 235
7.3 循环神经网络的模型结构 237
7.3.1 序列数据建模 237
7.3.2 基本结构 238
7.3.3 其他结构 239
7.4 循环神经网络的核心算法 241
7.4.1 模型详解 241
7.4.2 向前传播 243
7.4.3 损失函数 245
7.4.4 时间反向传播算法 246
7.4.5 梯度消失与梯度爆炸 251
7.5 示例:使用循环神经网络预测文本数据 254
7.5.1 定义网络模型 254
7.5.2 序列数据预处理 255
7.5.3 准备输入输出数据 258
7.5.4 实现简单的循环神经网络模型 260
7.6 本章小结 263
引用/参考 264
第8章 循环神经网络进阶序列长期记忆 265
8.1 长期依赖问题 266
8.2 长短期记忆网络 269
8.2.1 LSTM网络结构 269
8.2.2 LSTM记忆单元 270
8.2.3 LSTM记忆方式 274
8.3 门控循环单元 274
8.3.1 GRU记忆单元 275
8.3.2 GRU实现 276
8.3.3 GRU与LSTM比较 277
8.4 示例1:神奇的机器翻译 278
8.4.1 基于统计的机器翻译 279
8.4.2 基于神经网络的机器翻译 282
8.4.3 编码-解码模型 283
8.4.4 平衡语料数据集 287
8.4.5 机器翻译的未来 292
8.5 示例2:智能对话机器人 293
8.5.1 Seq2Seq模型 294
8.5.2 Seq2Seq模型的缺点 295
8.5.3 超越Seq2Seq框架 296
8.6 示例3:智能语音识别音箱 299
8.6.1 语音识别框架 300
8.6.2 准备语音数据 302
8.6.3 语音特征提取 306
8.6.4 声学模型 311
8.6.5 语言模型 323
8.6.6 语音识别的展望 323
8.7 本章小结 324
引用/参考 325