Python深度学习实战:75个有关神经网络建模、强化学习与迁移学习的解决方案
作者: (荷)英德拉 丹 巴克(Indra den Bakker) 著 程国建,周冠武 译
出版时间: 2018年版
内容简介
本书以自上而下和自下而上的方法来展示针对不同领域实际问题的深度学习解决方案,包括图像识别、自然语言处理、时间序列预测和机器人操纵等。还讨论了采用诸如TensorFlow、PyTorch、Keras和CNTK等流行的深度学习开源框架用于实际问题的解决方案及其优缺点。本书内容包括:用于深度学习的编程环境、GPU计算和云端解决方案;前馈神经网络与卷积神经网络;循环与递归神经网络;强化学习与生成对抗网络;深度学习用于计算机视觉、自然语言处理、语音识别、视频分析、时间序列预测、结构化数据分析以及游戏智能体(Agents)和机器人操控等。后讨论了深度学习的超参数选择和神经网络的内在结构以及预训练模型的使用技巧等。
目录
译者序
原书前言
第 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
......