本书介绍使用 R 语言和深度学习库 TensorFlow、H2O 和 MXNet 构建不同的深度学习模型的方法和原理。本书共 10 章,其中第 1、2 章介绍如何在 R 中配置不同的深度学习库以及如何构建神经网络;第 3 ~ 7 章介绍卷积神经网络、自动编码器、生成模型、循环神经网络和强化学习的构建方法和原理;第 8、9 章介绍深度学习在文本挖掘以及信号处理中的应用;第 10 章介绍迁移学习以及如何利用 GPU 部署深度学习模型。
本书的结构简单明了,每部分由准备环节、动手操作和工作原理组成,可强化读者的学习;内容上覆盖了深度学习领域常见的神经网络类型,并介绍了使用场景。同时,书中包含大量实用的示例代码,方便读者应用到实际项目中。
本书适合有一定 R 语言编程基础,并且希望使用 R 语言快速开展深度学习项目的软件工程师或高校师生、科研人员阅读。
深度学习是当前的热门,它是机器学习的一部分。在庞大而复杂的数据应用中,深度学习取得的效果非常吸引人。同时,R编程语言在数据挖掘人员和统计人员当中非常流行。
本书将深度学习和R语言两者结合起来,帮助你解决深度学习实战中所遇到的各种问题,并且教会你掌握深度学习、神经网络和机器学习的高级技巧。本书从R语言中的各种深度学习软件包和软件库入手,带领你学习复杂的深度学习算法。首先,从构建各种神经网络模型开始,而后逐步过渡到深度学习在文本挖掘和信号处理中的应用,同时还比较了CPU和GPU的性能。
阅读完本书,你将对深度学习的架构和不同的深度学习包有一个比较深入的理解,能够为你今后碰到的项目或问题找到合适的解决方案。
本书的主要内容
·使用TensorFlow、H2O和MXNet构建
·不同应用领域的深度学习模型
·分析深度玻尔兹曼机
·建立和分析深度信念网络
·使用各种机器学习算法构建监督模型
·使用自动编码器理解特征表示
·探索深度学习中可用的生成模型
·使用循环网络实现序列建模
·了解强化学习的基础知识
·了解深度学习应用于文本挖掘的流程和步骤
·探索深度学习在信号处理中的应用
·使用迁移学习构建深度学习模型
·在GPU上训练深度学习模型
关于作者
Prakash 博士是一位数据科学家和作家,目前在 ZS 咨询公司担任数据科学经理。他获得了美国威斯康星大学麦迪逊分校的工业和系统工程博士学位,其第 2 个工程博士学位是在英国华威大学获得的;他之前还获得了美国威斯康星大学麦迪逊分校的硕士学位、印度国家铸造和锻造技术研究所(NIFFT)的学士学位。
Prakash 在 IEEE-Trans、EJOR 和 IJPR 等多个刊物上发表了多篇文章,涉及运筹学和管理、软计算工具和高级算法等多个研究领域。
Achyutuni Sri Krishna Rao 是数据科学家、土木工程师和作家,目前在 ZS 咨询公司担任数据科学顾问。他获得了新加坡国立大学企业商业分析和机器学习的硕士学位、印度 Warangal 国家技术研究所的学士学位。
Sri Krishna 在土木工程研究领域发表了多篇文章,并参与了 Packt 出版的名为 Algorithms and Data Structures Using R 一书的写作。
关于译者
王洋洋,计算机硕士,狂热的数据爱好者,现为云网络安全领域大数据工程师,熟悉多种编程语言、大数据技术、机器学习算法和设计模式等,对自然语言处理也颇感兴趣,曾翻译《R 图形化数据分析》一书。
第 1章 入门 1
1.1 介绍 1
1.2 安装 R 及其 IDE 2
1.2.1 准备 2
1.2.2 怎么做 2
1.3 安装 Jupyter Notebook 应用 3
1.3.1 怎么做 3
1.3.2 更多内容 5
1.4 从 R 机器学习基础开始 5
1.4.1 怎么做 6
1.4.2 工作原理 9
1.5 在 R 中安装深度学习的工具 包 11
1.6 在 R 中安装 MXNet 11
1.6.1 做好准备 11
1.6.2 怎么做 12
1.7 在 R 中安装 TensorFlow 13
1.7.1 做好准备 13
1.7.2 怎么做 14
1.7.3 工作原理 15
1.8 在 R 中安装 H2O 15
1.8.1 做好准备 15
1.8.2 怎么做 16
1.8.3 工作原理 17
1.8.4 更多内容 20
1.9 使用 Docker 一次安装 3 个包 20
1.9.1 做好准备 20
1.9.2 怎么做 21
1.9.3 更多内容 22
第 2章 R深度学习 23
2.1 始于逻辑回归 23
2.1.1 做好准备 23
2.1.2 怎么做 24
2.2 介绍数据集 25
2.2.1 做好准备 25
2.2.2 怎么做 25
2.3 使用 H2O 执行逻辑回归 26
2.3.1 做好准备 26
2.3.2 怎么做 27
2.3.3 工作原理 28
2.4 使用 TensorFlow 执行逻辑回归 30
2.4.1 做好准备 30
2.4.2 怎么做 30
2.4.3 工作原理 32
2.5 可视化 TensorFlow 图 33
2.5.1 做好准备 33
2.5.2 怎么做 34
2.5.3 工作原理 36
2.6 从多层感知器开始 37
2.6.1 做好准备 37
2.6.2 怎么做 38
2.6.3 更多内容 38
2.7 使用 H2O 建立神经网络 39
2.7.1 做好准备 39
2.7.2 怎么做 39
2.7.3 工作原理 41
2.8 使用 H2O 中的网格搜索调整超参数 42
2.8.1 做好准备 42
2.8.2 怎么做 42
2.8.3 工作原理 43
2.9 使用 MXNet 建立神经网络 44
2.9.1 做好准备 44
2.9.2 怎么做 44
2.9.3 工作原理 46
2.10 使用 TensorFlow 建立神经网络 46
2.10.1 做好准备 46
2.10.2 怎么做 46
2.10.3 工作原理 49
2.10.4 更多内容 50
第3章 卷积神经网络 52
3.1 介绍 52
3.2 下载并配置图像数据集 53
3.2.1 做好准备 54
3.2.2 怎么做 54
3.2.3 工作原理 57
3.3 学习 CNN 分类器的架构 58
3.3.1 做好准备 58
3.3.2 怎么做 58
3.3.3 工作原理 59
3.4 使用函数初始化权重和偏差 60
3.4.1 做好准备 61
3.4.2 怎么做 61
3.4.3 工作原理 61
3.5 使用函数创建一个新的卷积层 61
3.5.1 做好准备 61
3.5.2 怎么做 62
3.5.3 工作原理 64
3.6 使用函数创建一个扁平化的卷积层 65
3.6.1 做好准备 65
3.6.2 怎么做 65
3.6.3 工作原理 65
3.7 使用函数扁平化密集连接层 66
3.7.1 做好准备 66
3.7.2 怎么做 66
3.7.3 工作原理 67
3.8 定义占位符变量 67
3.8.1 做好准备 67
3.8.2 怎么做 67
3.8.3 工作原理 68
3.9 创建第 一个卷积层 68
3.9.1 做好准备 69
3.9.2 怎么做 69
3.9.3 工作原理 70
3.10 创建第二个卷积层 70
3.10.1 做好准备 70
3.10.2 怎么做 71
3.10.3 工作原理 71
3.11 扁平化第二个卷积层 72
3.11.1 做好准备 72
3.11.2 怎么做 72
3.11.3 工作原理 72
3.12 创建第 一个完全连接的层 73
3.12.1 做好准备 73
3.12.2 怎么做 73
3.12.3 工作原理 73
3.13 将 dropout 应用于第 一个完全连接的层 73
3.13.1 做好准备 74
3.13.2 怎么做 74
3.13.3 工作原理 74
3.14 创建第二个带有 dropout 的完全连接层 74
3.14.1 做好准备 74
3.14.2 怎么做 75
3.14.3 工作原理 75
3.15 应用 Softmax 激活以获得预测的类 75
3.15.1 做好准备 75
3.15.2 怎么做 75
3.16 定义用于优化的成本函数 76
3.16.1 做好准备 76
3.16.2 怎么做 76
3.16.3 工作原理 76
3.17 执行梯度下降成本优化 77
3.17.1 做好准备 77
3.17.2 怎么做 77
3.18 在 TensorFlow 会话中执行图 77
3.18.1 做好准备 77
3.18.2 怎么做 78
3.18.3 工作原理 78
3.19 评估测试数据的性能 79
3.19.1 做好准备 79
3.19.2 怎么做 79
3.19.3 工作原理 81
第4章 使用自动编码器的数据表示 83
4.1 介绍 83
4.2 构建自动编码器 84
4.2.1 做好准备 85
4.2.2 怎么做 85
4.3 数据归一化 86
4.3.1 做好准备 86
4.3.2 怎么做 88
4.4 构建正则自动编码器 92
4.4.1 做好准备 92
4.4.2 怎么做 92
4.4.3 工作原理 92
4.5 微调自动编码器的参数 93
4.6 构建栈式自动编码器 94
4.6.1 做好准备 94
4.6.2 怎么做 95
4.7 构建降噪自动编码器 96
4.7.1 做好准备 96
4.7.2 怎么做 96
4.7.3 工作原理 101
4.8 构建并比较随机编码器和解码器 102
4.8.1 做好准备 103
4.8.2 怎么做 103
4.9 从自动编码器学习流形 109
4.10 评估稀疏分解 113
4.10.1 做好准备 114
4.10.2 怎么做 114
4.10.3 工作原理 115
第5章 深度学习中的生成模型 116
5.1 比较主成分分析和受限玻尔兹曼机 116
5.1.1 做好准备 117
5.1.2 怎么做 118
5.2 为伯努利分布输入配置受限玻尔兹曼机 121
5.2.1 做好准备 122
5.2.2 怎么做 122
5.3 训练受限玻尔兹曼机 122
5.3.1 做好准备 123
5.3.2 怎么做 123
5.4 RBM 的反向或重构阶段 124
5.4.1 做好准备 124
5.4.2 怎么做 124
5.5 了解重构的对比散度 125
5.5.1 做好准备 125
5.5.2 怎么做 125
5.5.3 工作原理 126
5.6 初始化并启动一个新的 TensorFlow 会话 126
5.6.1 做好准备 126
5.6.2 怎么做 127
5.6.3 工作原理 128
5.7 评估 RBM 的输出 129
5.7.1 做好准备 130
5.7.2 怎么做 130
5.7.3 工作原理 131
5.8 为协同过滤构建一个受限玻尔兹曼机 132
5.8.1 做好准备 132
5.8.2 怎么做 132
5.9 执行一个完整的 RBM 训练 135
5.9.1 做好准备 137
5.9.2 怎么做 137
5.10 构建深度信念网络 139
5.10.1 做好准备 140
5.10.2 怎么做 141
5.10.3 工作原理 144
5.11 实现前馈反向传播神经网络 145
5.11.1 做好准备 145
5.11.2 怎么做 146
5.11.3 工作原理 150
5.12 建立一个深度受限玻尔兹曼机 150
5.12.1 做好准备 150
5.12.2 怎么做 151
5.12.3 工作原理 156
第6章 循环神经网络 157
6.1 建立一个基本的循环神经网络 157
6.1.1 做好准备 157
6.1.2 怎么做 158
6.1.3 工作原理 160
6.2 建立一个双向 RNN 模型 161
6.2.1 做好准备 162
6.2.2 怎么做 162
6.3 建立一个深度 RNN 模型 165
6.4 建立一个基于长短期记忆的序列模型 166
6.4.1 怎么做 167
6.4.2 工作原理 167
第7章 强化学习 170
7.1 介绍 170
7.2 建立马尔可夫决策过程 171
7.2.1 做好准备 171
7.2.2 怎么做 172
7.3 执行基于模型的学习 177
7.4 进行无模型学习 180
7.4.1 做好准备 180
7.4.2 怎么做 181
第8章 深度学习在文本挖掘中的应用 185
8.1 对文本数据进行预处理并提取情感 185
8.1.1 怎么做 185
8.1.2 工作原理 191
8.2 使用 tf-idf 分析文档 192
8.2.1 怎么做 192
8.2.2 工作原理 194
8.3 使用 LSTM 网络执行情感预测 194
8.3.1 怎么做 194
8.3.2 工作原理 198
8.4 使用 text2vec 示例的应用程序 198
8.4.1 怎么做 198
8.4.2 工作原理 201
第9章 深度学习在信号处理中的应用 202
9.1 介绍并预处理音乐 MIDI 文件 202
9.1.1 做好准备 202
9.1.2 怎么做 203
9.2 建立 RBM 模型 204
9.2.1 做好准备 204
9.2.2 怎么做 204
9.3 生成新的音符 206
第 10章 迁移学习 208
10.1 介绍 208
10.2 举例说明预训练模型的使用 209
10.2.1 做好准备 210
10.2.2 怎么做 210
10.3 构建迁移学习模型 213
10.3.1 做好准备 213
10.3.2 怎么做 213
10.4 构建图像分类模型 216
10.4.1 做好准备 216
10.4.2 怎么做 216
10.5 在 GPU 上训练深度学习模型 219
10.5.1 做好准备 219
10.5.2 怎么做 220
10.6 比较使用 CPU 和 GPU 的性能 221
10.6.1 做好准备 221
10.6.2 怎么做 222
10.6.3 更多内容 224
10.6.4 另请参阅 224