第一部分 初识 2
1 初识深度学习 2
1.1 Python的深度学习 2
1.2 软件环境和基本要求 3
1.2.1 Python和SciPy 3
1.2.2 机器学习 3
1.2.3 深度学习 4
1.3 阅读本书的收获 4
1.4 本书说明 4
1.5 本书中的代码 5
2 深度学习生态圈 6
2.1 CNTK 6
2.1.1 安装CNTK 7
2.1.2 CNTK的简单例子 8
2.2 TensorFlow 8
2.2.1 TensorFlow介绍 8
2.2.2 安装TensorFlow 9
2.2.3 TensorFlow的简单例子 9
2.3 Keras 10
2.3.1 Keras简介 11
2.3.2 Keras安装 11
2.3.3 配置Keras的后端 11
2.3.4 使用Keras构建深度学习模型 12
2.4 云端GPUs计算 13
第二部分 多层感知器 16
3 第一个多层感知器实例:印第安人糖尿病诊断 16
3.1 概述 16
3.2 Pima Indians数据集 17
3.3 导入数据 18
3.4 定义模型 19
3.5 编译模型 20
3.6 训练模型 21
3.7 评估模型 21
3.8 汇总代码 22
4 多层感知器速成 24
4.1 多层感知器 24
4.2 神经元 25
4.2.1 神经元权重 25
4.2.2 激活函数 26
4.3 神经网络 27
4.3.1 输入层(可视层) 28
4.3.2 隐藏层 28
4.3.3 输出层 28
4.4 训练神经网络 29
4.4.1 准备数据 29
4.4.2 随机梯度下降算法 30
4.4.3 权重更新 30
4.4.4 预测新数据 31
5 评估深度学习模型 33
5.1 深度学习模型和评估 33
5.2 自动评估 34
5.3 手动评估 36
5.3.1 手动分离数据集并评估 36
5.3.2 k折交叉验证 37
6 在Keras中使用Scikit-Learn 40
6.1 使用交叉验证评估模型 41
6.2 深度学习模型调参 42
7 多分类实例:鸢尾花分类 49
7.1 问题分析 49
7.2 导入数据 50
7.3 定义神经网络模型 50
7.4 评估模型 52
7.5 汇总代码 52
8 回归问题实例:波士顿房价预测 54
8.1 问题描述 54
8.2 构建基准模型 55
8.3 数据预处理 57
8.4 调参隐藏层和神经元 58
9 二分类实例:银行营销分类 61
9.1 问题描述 61
9.2 数据导入与预处理 62
9.3 构建基准模型 64
9.4 数据格式化 66
9.5 调参网络拓扑图 66
10 多层感知器进阶 68
10.1 JSON序列化模型 68
10.2 YAML序列化模型 74
10.3 模型增量更新 78
10.4 神经网络的检查点 81
10.4.1 检查点跟踪神经网络模型 82
10.4.2 自动保存最优模型 84
10.4.3 从检查点导入模型 86
10.5 模型训练过程可视化 87
11 Dropout与学习率衰减 92
11.1 神经网络中的Dropout 92
11.2 在Keras中使用Dropout 93
11.2.1 输入层使用Dropout 94
11.2.2 在隐藏层使用Dropout 95
11.2.3 Dropout的使用技巧 97
11.3 学习率衰减 97
11.3.1 学习率线性衰减 98
11.3.2 学习率指数衰减 100
11.3.3 学习率衰减的使用技巧 103
第三部分 卷积神经网络 106
12 卷积神经网络速成 106
12.1 卷积层 108
12.1.1 滤波器 108
12.1.2 特征图 109
12.2 池化层 109
12.3 全连接层 109
12.4 卷积神经网络案例 110
13 手写数字识别 112
13.1 问题描述 112
13.2 导入数据 113
13.3 多层感知器模型 114
13.4 简单卷积神经网络 117
13.5 复杂卷积神经网络 120
14 Keras中的图像增强 124
14.1 Keras中的图像增强API 124
14.2 增强前的图像 125
14.3 特征标准化 126
14.4 ZCA白化 128
14.5 随机旋转、移动、剪切和反转图像 129
14.6 保存增强后的图像 132
15 图像识别实例:CIFAR-10分类 134
15.1 问题描述 134
15.2 导入数据 135
15.3 简单卷积神经网络 136
15.4 大型卷积神经网络 140
15.5 改进模型 145
16 情感分析实例:IMDB影评情感分析 152
16.1 问题描述 152
16.2 导入数据 153
16.3 词嵌入 154
16.4 多层感知器模型 155
16.5 卷积神经网络 157
第四部分 循环神经网络 162
17 循环神经网络速成 162
17.1 处理序列问题的神经网络 163
17.2 循环神经网络 164
17.3 长短期记忆网络 165
18 多层感知器的时间序列预测:国际旅行人数预测 167
18.1 问题描述 167
18.2 导入数据 168
18.3 多层感知器 169
18.4 使用窗口方法的多层感知器 172
19 LSTM时间序列问题预测:国际旅行人数预测 177
19.1 LSTM处理回归问题 177
19.2 使用窗口方法的LSTM回归 181
19.3 使用时间步长的LSTM回归 185
19.4 LSTM的批次间记忆 188
19.5 堆叠LSTM的批次间记忆 192
20 序列分类:IMDB影评分类 197
20.1 问题描述 197
20.2 简单LSTM 197
20.3 使用Dropout改进过拟合 199
20.4 混合使用LSTM和CNN 201
21 多变量时间序列预测:PM2.5预报 203
21.1 问题描述 203
21.2 数据导入与准备 204
21.3 构建数据集 206
21.4 简单LSTM 207
22 文本生成实例:爱丽丝梦游仙境 211
22.1 问题描述 211
22.2 导入数据 212
22.3 分词与向量化 212
22.4 词云 213
22.5 简单LSTM 215
22.6 生成文本 219
附录A 深度学习的基本概念 223
A.1 神经网络基础 223
A.2 卷积神经网络 227
A.3 循环神经网络 229