第1章 编程环境、GPU计算、云解决方案和深度学习框架 1
1.1 简介 1
1.2 搭建一个深度学习环境 2
1.3 在AWS上启动实例 2
1.4 在GCP上启动实例 3
1.5 安装CUDA和cuDNN 4
1.6 安装Anaconda和库文件 6
1.7 连接服务器上的Jupyter Notebooks 7
1.8 用TensorFlow构建最先进的即用模型 8
1.9 直观地用Keras建立网络 10
1.10 使用PyTorch的RNN动态计算图 12
1.11 用CNTK实现高性能模型 14
1.12 使用MXNet构建高效的模型 15
1.13 使用简单、高效的Gluon编码定义网络 17
第2章 前馈神经网络 19
2.1 简介 19
2.2 理解感知器 19
2.3 实现一个单层神经网络 23
2.4 构建一个多层神经网络 27
2.5 开始使用激活函数 30
2.6 关于隐层和隐层神经元的实验 35
2.7 实现一个自动编码器 38
2.8 调整损失函数 41
2.9 测试不同的优化器 44
2.10 使用正则化技术提高泛化能力 47
2.11 添加Dropout以防止过拟合 51
第3章 卷积神经网络 56
3.1 简介 56
3.2 开始使用滤波器和参数共享 56
3.3 应用层合并技术 60
3.4 使用批量标准化进行优化 62
3.5 理解填充和步长 66
3.6 试验不同类型的初始化 72
3.7 实现卷积自动编码器 76
3.8 将一维CNN应用于文本 79
第4章 递归神经网络 81
4.1 简介 81
4.2 实现一个简单的RNN 82
4.3 添加LSTM 84
4.4 使用GRU 86
4.5 实现双向RNN 89
4.6 字符级文本生成 91
第5章 强化学习 95
5.1 简介 95
5.2 实现策略梯度 95
5.3 实现深度Q学习算法 102
第6章 生成对抗网络 109
6.1 简介 109
6.2 了解GAN 109
6.3 实现DCGAN 112
6.4 使用SRGAN来提高图像分辨率 117
第7章 计算机视觉 125
7.1 简介 125
7.2 利用计算机视觉技术增广图像 125
7.3 图像中的目标分类 130
7.4 目标在图像中的本地化 134
7.5 实时检测框架 139
7.6 用U-net将图像分类 139
7.7 语义分割与场景理解 143
7.8 寻找人脸面部关键点 147
7.9 人脸识别 151
7.10 将样式转换为图像 157
第8章 自然语言处理 162
8.1 简介 162
8.2 情绪分析 162
8.3 句子翻译 165
8.4 文本摘要 169
第9章 语音识别和视频分析 174
9.1 简介 174
9.2 从零开始实现语音识别流程 174
9.3 使用语音识别技术辨别讲话人 177
9.4 使用深度学习理解视频 181
第10章 时间序列和结构化数据 185
10.1 简介 185
10.2 使用神经网络预测股票价格 185
10.3 预测共享单车需求 189
10.4 使用浅层神经网络进行二元分类 192
第11章 游戏智能体和机器人 194
11.1 简介 194
11.2 通过端到端学习来驾驶汽车 194
11.3 通过深度强化学习来玩游戏 199
11.4 用GA优化超参数 205
第12章 超参数选择、调优和神经网络学习 211
12.1 简介 211
12.2 用TensorBoard和Keras可视化训练过程 211
12.3 使用批量和小批量工作 215
12.4 使用网格搜索调整参数 219
12.5 学习率和学习率调度 221
12.6 比较优化器 224
12.7 确定网络的深度 227
12.8 添加Dropout以防止过拟合 227
12.9 通过数据增广使模型更加鲁棒 232
12.10 利用TTA来提高精度 234
第13章 网络内部构造 235
13.1 简介 235
13.2 用TensorBoard可视化训练过程 235
13.3 用TensorBoard可视化网络结构 239
13.4 分析网络权重等 239
13.5 冻结层 244
13.6 存储网络结构并训练权重 246
第14章 预训练模型 250
14.1 简介 250
14.2 使用GoogLeNet/Inception进行大规模视觉识别 250
14.3 用ResNet提取瓶颈特征 252
14.4 对新类别使用预训练的VGG模型 253
14.5 用Xception细调 256