目录
前言
部分 深 度 学 习 基 础
第1章 深度学习架构与技术 2
1.1 R语言实现的深度学习 3
1.1.1 深度学习发展趋势 3
1.1.2 R软件包的版本 3
1.2 深度学习网络模型的开发过程 5
1.2.1 为深度学习网络模型准备数据 5
1.2.2 开发模型架构 7
1.2.3 编译模型 9
1.2.4 拟合模型 11
1.2.5 评估模型性能 12
1.3 R语言和RStudio实现的深度学习技术 13
1.3.1 多类分类问题 14
1.3.2 回归问题 14
1.3.3 图像分类 15
1.3.4 卷积神经网络 15
1.3.5 自编码器 15
1.3.6 迁移学习 16
1.3.7 生成对抗网络 16
1.3.8 文本分类的深度学习网络 16
1.3.9 循环神经网络 17
1.3.10 长短期记忆网络 17
1.3.11 卷积循环网络 17
1.3.12 提示、技巧和实践 18
1.4 本章小结 18
第二部分 预测与分类问题的深度学习
第2章 多类分类问题的深度神经网络 20
2.1 胎儿心电图数据集 20
2.1.1 医学数据集 20
2.1.2 数据集分类 21
2.2 建模数据准备 22
2.2.1 数值型变量的归一化 22
2.2.2 数据分割 22
2.2.3 独热编码 23
2.3 深度神经网络模型的创建与拟合 24
2.3.1 模型架构开发 24
2.3.2 模型编译 26
2.3.3 模型拟合 26
2.4 模型评价和预测 28
2.4.1 损失函数与准确率计算 29
2.4.2 混淆矩阵 29
2.5 性能优化提示与实践 31
2.5.1 增加隐藏层的实验 31
2.5.2 隐藏层增加单元数量的实验 34
2.5.3 多单元多层网络的实验 36
2.5.4 分类不平衡问题的实验 39
2.5.5 模型的保存与重新上载 42
2.6 本章小结 43
第3章 回归问题的深度神经网络 44
3.1 波士顿房价数据集 44
3.2 建模数据准备 46
3.2.1 神经网络的可视化 46
3.2.2 数据分割 48
3.2.3 归一化 48
3.3 回归问题深度神经网络模型的创建与拟合 49
3.3.1 参数总数计算 50
3.3.2 模型编译 50
3.3.3 模型拟合 50
3.4 模型评价和预测 52
3.4.1 评价 52
3.4.2 预测 53
3.4.3 改进 54
3.5 性能优化提示与实践 58
3.5.1 输出变量的对数变换 58
3.5.2 模型性能 61
3.6 本章小结 62
第三部分 面向计算机视觉的深度学习
第4章 图像分类与识别 64
4.1 处理图像数据 64
4.2 数据准备 68
4.2.1 尺寸与形状调整 69
4.2.2 创建训练、验证和测试数据 70
4.2.3 独热编码 72
4.3 模型创建与拟合 73
4.3.1 模型架构开发 73
4.3.2 模型编译 74
4.3.3 模型拟合 74
4.4 模型评价和预测 76
4.4.1 训练数据的损失、准确率和混淆矩阵 76
4.4.2 训练数据的预测概率 77
4.4.3 测试数据的损失、准确率和混淆矩阵 78
4.4.4 测试数据的预测概率 79
4.5 性能优化提示与实践 80
4.5.1 更深层次的神经网络 80
4.5.2 结果 81
4.6 本章小结 85
第5章 基于卷积神经网络的图像分类 86
5.1 数据准备 86
5.1.1 fashion-MNIST图像数据集 87
5.1.2 训练与测试数据 88
5.1.3 尺寸与形状调整 91
5.1.4 独热编码 92
5.2 卷积神经网络的层 92
5.2.1 模型架构与相关计算 92
5.2.2 模型编译 94
5.3 模型拟合 95
5.3.1 模型拟合代码 95
5.3.2 准确率和损失 95
5.4 模型评价和预测 96
5.4.1 训练数据 96
5.4.2 测试数据 98
5.4.3 互联网上的时尚物品图像 100
5.5 性能优化提示与实践 103
5.5.1 图像修正 104
5.5.2 架构变更 105
5.6 本章小结 110
第6章 基于Keras的自编码器神经网络应用 111
6.1 自编码器的类型 111
6.2 降维自编码器 112
6.2.1 Fashion-MNIST数据 112
6.2.2 编码器模型 114
6.2.3 解码器模型 114
6.2.4 自编码器模型 115
6.2.5 模型的编译与拟合 116
6.2.6 图像重建 117
6.3 去噪自编码器 119
6.3.1 MNIST数据 119
6.3.2 数据准备 120
6.3.3 添加噪声 121
6.3.4 编码器模型 122
6.3.5 解码器模型 123
6.3.6 自编码器模型 124
6.3.7 模型拟合 125
6.3.8 图像重建 126
6.4 图像修正自编码器 128
6.4.1 需要修正的图像 128
6.4.2 图像清洗 129
6.4.3 编码器模型 130
6.4.4 解码器模型 131
6.4.5 模型编译与拟合 132
6.4.6 基于训练数据的图像重建 132
6.4.7 基于新数据的图像重建 133
6.5 本章小结 136
第7章 基于迁移学习的小数据图像分类 137
7.1 使用预训练模型识别图像 137
7.1.1 图像读取 138
7.1.2 输入数据预处理 141
7.1.3 前五类别 142
7.2 处理CIFAR10数据集 142
7.2.1 样本图像 144
7.2.2 预处理和预测 145
7.3 基于卷积神经网络的图像分类 146
7.3.1 数据准备 146
7.3.2 卷积神经网络模型 148
7.3.3 模型性能 150
7.4 基于预训练RESNET50模型的图像分类 152
7.4.1 模型架构 152
7.4.2 预训练网络权重冻结 154
7.4.3 模型拟合 155
7.5 模型评价和预测 156
7.5.1 训练数据的损失、准确率和混淆矩阵 156
7.5.2 测试数据的损失、准确率和混淆矩阵 157
7.6 性能优化提示与实践 159
7.6.1 adam优化器的实验 159
7.6.2 超参调整 161
7.6.3 VGG16作为预训练网络的实验 165
7.7 本章小结 168
第8章 基于生成对抗网络的图像生成 169
8.1 生成对抗网络概述 169
8.2 处理MNIST图像数据 170
8.2.1 训练数据的数字5 170
8.2.2 数据处理 172
8.3 生成器网络构建 172
8.3.1 网络架构 172
8.3.2 生成器网络信息汇总 173
8.4 判别器网络构建 174
8.4.1 网络架构 174
8.4.2 判别器网络信息汇总 175
8.5 网络训练 176
8.5.1 存储伪造图像和损失的初始设置 176
8.5.2 训练过程 177
8.6 结果检查 178
8.6.1 判别器与生成对抗网络的损失 179
8.6.2 伪造图像 180
8.7 性能优化提示与实践 181
8.7.1 生成器网络与判别器网络的更改 181
8.7.2 更改的影响 182
8.7.3 生成手写数字8的图像 184
8.8 本章小结 186
第四部分 自然语言处理问题的深度学习
第9章 文本分类的深度学习网络 188
9.1 文本数据集 188
9.1.1 UCI机器学习资源库 188
9.1.2 Keras中的文本数据 189
9.2 为模型构建准备数据 191
9.2.1 词性标注 191
9.2.2 文本转换为整数序列 192
9.2.3 填充与截断 193
9.2.4 推文情感分类模型的开发 194
9.3 深度学习网络开发 196
9.3.1 获取IMDb电影评论数据 197
9.3.2 构建分类模型 199
9.3.3 模型编译 200
9.3.4 模型拟合 200
9.4 模型评价和预测 203
9.4.1 利用训练数据的评价 203
9.4.2 利用测试数据的评价 204
9.5 性能优化提示与实践 204
9.5.1 序列长度和优化器的实验 205
9.5.2 测试数据的损失、准确率及混淆矩阵 207
9.6 本章小结 207
第10章 基于循环神经网络的文本分类 209
10.1 为模型构建准备数据 209
10.1.1 获取数据 209
10.1.2 序列填充 211
10.2 循环神经网络模型的开发 213
10.2.1 参数的计算 213
10.2.2 模型编译 214
10.3 模型拟合 215
10.3.1 拟合代码 215
10.3.2 准确率和损失 215
10.4 模型评价和预测 216
10.4.1 训练数据 217
10.4.2 测试数据 217
10.5 性能优化提示与实践 218
10.5.1 简单循环神经网络层的单元数 219
10.5.2 简单循环神经网络层使用的不同激活函数 220
10.5.3 增加循环层 222
10.5.4 填充序列的长度 223
10.6 本章小结 227
第11章 基于长短期记忆网络的文本分类 228
11.1 采用LSTM网络的原因 228
11.2 为模型构建准备数据 229
11.3 构建LSTM网络模型 229
11.3.1 LSTM网络架构 230
11.3.2 LSTM网络模型的编译 231
11.4 LSTM网络模型的拟合 231
11.4.1 拟合代码 231
11.4.2 损失与准确率 231
11.5 模型性能评价 232
11.5.1 基于训练数据的模型评价 232
11.5.2 基于测试数据的模型评价 234
11.6 性能优化提示与实践 234
11.6.1 利用adam优化器的实验 235
11.6.2 带附加层的LSTM网络的实验 238
11.6.3 双向LSTM层的实验 242
11.7 本章小结 247
第12章 基于卷积循环神经网络的文本分类 248
12.1 处理reuter_50_50数据集 248
12.1.1 读取训练数据 249
12.1.2 读取测试数据 250
12.2 为模型构建准备数据 251
12.2.1 词性标注与文本-整数序列转换 251
12.2.2 标签改为整数 254
12.2.3 序列的填充与截断 254
12.2.4 标签的独热编码 257
12.3 模型架构开发 257
12.4 模型的编译与拟合 260
12.4.1 模型编译 260
12.4.2 模型拟合 260
12.5 模型评价和预测 262
12.5.1 基于训练数据的模型评价 262
12.5.2 基于测试数据的模型评价 264
12.6 性能优化提示与实践 265
12.6.1 减小批量的实验 266
12.6.2 CNN批量规模、核规模以及过滤器的实验 269
12.7 本章小结 272
第五部分 未 来 展 望
第13章 提示、技巧和展望 275
13.1 基于TensorBoard的训练性能可视化 275
13.2 基于LIME的深度学习网络模型可视化 278
13.3 基于tfruns的模型训练可视化 280
13.4 网络训练的早停 282
13.5 本章小结 284