重磅推荐
【产品特色】


【编辑推荐】

这本关于深度学习的书还将指导你完成对非监督数据的异常检测,并帮助你有效地在分布式系统中建立神经网络。除此之外,你还将学习如何从Keras导入模型以及如何在预训练的DL4J模型中更改配置。后,你将探索DL4J中的基准测试并优化神经网络以获得结果。
学习完本书,你将掌握如何在Java中使用DL4J构建健壮的深度学习应用程序。


【内容简介】

本书首先展示如何在系统上安装和配置Java和DL4J,然后深入讲解了深度学习基础知识,并创建了一个深度神经网络进行二元分类。其次,本书介绍了如何在DL4J中构建卷积神经网络(CNN),以及如何用文本构建数字向量,还介绍了对非监督数据的异常检测,以及如何有效地在分布式系统中建立神经网络。除此之外,讲解了如何从Keras导入模型以及如何在预训练的DL4J模型中更改配置。后,介绍了DL4J中的基准测试并优化神经网络以获得结果。
本书适合想要在Java中使用DL4J构建健壮的深度学习应用程序的读者,阅读本书需要具备深度学习基础知识和一定的编程基础。
Copyright?2019PacktPublishing.FirstpublishedintheEnglishlanguageunderthetitle ‘Java DeepLearningCookbook’. 本书简体中文版专有出版权由英国PacktPublishing公司授予中国电力出版社。未经许可,不得以任何方式复制或传播本书的任何部分。专有出版权受法律保护。


【目录】

目录
前言
第1章 Java深度学习简介 1
11 技术要求 1
12 初识深度学习 2
121 反向传播 2
122 多层感知器 3
123 卷积神经网络 3
124 递归神经网络 3
125 为什么DL4J对深度学习很重要? 4
13 确定正确的网络类型来解决深度学习问题 4
131 实现过程 4
132 工作原理 4
133 相关内容 7
14 确定正确的激活函数 9
141 实现过程 9
142 工作原理 9
143 相关内容 10
15 解决过度拟合问题 10
151 实现过程 11
152 工作原理 11
153 相关内容 11
16 确定正确的批次大小和学习速率 12
161 实现过程 12
162 工作原理 12
163 相关内容 13
17 为DL4J配置 Maven 14
171 准备工作 14
172 实现过程 14
173 工作原理 15
18 为DL4J配置GPU加速环境 16
181 准备工作 16
182 实现过程 16
183 工作原理 17
184 相关内容 18
19 安装问题疑难解答 18
191 准备工作 19
192 实现过程 19
193 工作原理 19
194 相关内容 20
第2章 数据提取、转换和加载 23
21 技术要求 23
22 读取并迭代数据 24
221 准备工作 24
222 实现过程 24
223 工作原理 28
224 相关内容 32
23 执行模式转换 33
231 实现过程 33
232 工作原理 34
233 相关内容 34
24 构建转换过程 35
241 实现过程 35
242 工作原理 36
243 相关内容 36
25 序列化转换 37
251 实现过程 38
252 工作原理 38
26 执行转换过程 39
261 实现过程 39
262 工作原理 39
263 相关内容 40
27 规范化数据以提高网络效率 40
271 实现过程 40
272 工作原理 41
273 相关内容 42
第3章 二元分类的深层神经网络构建 43
31 技术要求 43
32 从CSV输入中提取数据 44
321 实现过程 44
322 工作原理 44
33 从数据中删除异常 45
331 实现过程 45
332 工作原理 46
333 相关内容 48
34 将转换应用于数据 49
341 实现过程 49
342 工作原理 50
35 为神经网络模型设计输入层 52
351 准备工作 52
352 实现过程 53
353 工作原理 53
36 为神经网络模型设计隐藏层 54
361 实现过程 54
362 工作原理 54
37 为神经网络模型设计输出层 54
371 实现过程 54
372 工作原理 55
38 训练和评估CSV数据的神经网络模型 55
381 实现过程 55
382 工作原理 57
383 相关内容 62
39 部署神经网络模型并将其用作API 63
391 准备工作 63
392 实现过程 64
393 工作原理 68
第4章 建立卷积神经网络 70
41 技术要求 70
42 从磁盘提取图像 71
421 实现过程 71
422 工作原理 72
43 为训练数据创建图像变体 73
431 实现过程 73
432 工作原理 73
433 相关内容 75
44 图像预处理和输入层设计 75
441 实现过程 75
442 工作原理 76
45 为CNN构造隐藏层 77
451 实现过程 77
452 工作原理 78
46 构建输出层以进行输出分类 78
461 实现过程 78
462 工作原理 78
47 训练图像并评估CNN输出 79
471 实现过程 79
472 工作原理 81
473 相关内容 81
48 为图像分类器创建API端点 82
481 实现过程 82
482 工作原理 87
第5章 实现自然语言处理 88
51 技术要求 89
52 数据要求 89
53 读取和加载文本数据 90
531 准备工作 90
532 实现过程 90
533 工作原理 92
534 相关内容 92
535 参考资料 92
54 分析词数据并训练模型 93
541 实现过程 93
542 工作原理 93
543 相关内容 94
55 评估模型 95
551 实现过程 95
552 工作原理 95
553 相关内容 96
56 从模型中生成图谱 96
561 准备工作 96
562 实现过程 96
563 工作原理 97
57 保存和重新加载模型 98
571 实现过程 99
572 工作原理 99
58 导入GoogleNews向量 99
581 实现过程 99
582 工作原理 100
583 相关内容 100
59 Word2Vec模型的故障诊断和调整 101
591 实现过程 101
592 工作原理 102
593 参考资料 103
510 使用CNNs使用 Word2Vec进行句子分类 103
5101 准备工作 104
5102 实现过程 105
5103 工作原理 107
5104 相关内容 107
511 使用Doc2Vec进行文档分类 109
5111 实现过程 109
5112 工作原理 111
第6章 构建时间序列的LSTM神经网络 114
61 技术要求 114
62 提取和读取临床数据 115
621 实现过程 115
622 工作原理 116
63 加载和转换数据 117
631 准备工作 117
632 实现过程 118
633 工作原理 118
64 构建网络输入层 119
641 实现过程 119
642 工作原理 120
65 构建网络输出层 121
651 实现过程 121
652 工作原理 121
66 训练时间序列数据 122
661 实现过程 122
662 工作原理 123
67 评估LSTM网络的效率 123
671 实现过程 123
672 工作原理 124
第7章 构建LSTM神经网络序列分类 125
71 技术要求 125
72 提取时间序列数据 127
721 实现过程 127
722 工作原理 128
73 加载训练数据 129
731 实现过程 130
732 工作原理 131
74 规范化训练数据 132
741 实现过程 132
742 工作原理 132
75 为网络构建输入层 133
751 实现过程 133
752 工作原理 134
76 为网络构建输出层 134
761 实现过程 134
762 工作原理 135
77 LSTM网络分类输出的评估 135
771 实现过程 135
772 工作原理 136
第8章 对非监督数据执行异常检测 139
81 技术要求 139
82 提取和准备 MNIST数据 140
821 实现过程 140
822 工作原理 141
83 为输入构造密集层 142
831 实现过程 142
832 工作原理 142
84 构造输出层 143
841 实现过程 143
842 工作原理 143
85 MNIST图像训练 144
851 实现过程 144
852 工作原理 144
86 根据异常得分评估和排序结果 145
861 实现过程 145
862 工作原理 146
87 保存结果模型 148
871 实现过程 148
872 工作原理 148
873 相关内容 148
第9章 使用RL4J进行强化学习 149
91 技术要求 149
92 设置 Malmo环境和各自的依赖项 152
921 准备工作 152
922 实现过程 152
923 工作原理 153
93 设置数据要求 153
931 实现过程 153
932 工作原理 157
933 参考资料 158
94 配置和训练DQN智能体 158
941 准备工作 158
942 实现过程 158
943 工作原理 160
944 相关内容 162
95 评估 Malmo智能体 162
951 准备工作 162
952 实现过程 163
953 工作原理 163
第10章 在分布式环境中开发应用程序 165
101 技术要求 165
102 设置DL4J和所需的依赖项 166
1021 准备工作 166
1022 实现过程 167
1023 工作原理 173
103 创建用于训练的uber-JAR 174
1031 实现过程 174
1032 工作原理 175
104 训练用的CPU/GPU特定配置 176
1041 实现过程 176
1042 工作原理 176
1043 更多内容 177
105 Spark的内存设置和垃圾回收 177
1051 实现过程 177
1052 工作原理 178
1053 更多内容 179
106 配置编码阈值 181
1061 实现过程 181
1062 工作原理 181
1063 更多内容 182
107 执行分布式测试集评估 182
1071 实现过程 182
1072 工作原理 186
108 保存和加载训练过的神经网络模型 187
1081 实现过程 187
1082 工作原理 188
1083 更多内容 188
109 执行分布式推理 188
1091 实现过程 188
1092 工作原理 189
第11章 迁移学习在网络模型中的应用 190
111 技术要求 190
112 修改当前的客户保留模型 190
1121 实现过程 191
1122 工作原理 192
1123 更多内容 195
113 微调学习配置 196
1131 实现过程 196
1132 工作原理 197
114 冻结层的实现 197
1141 实现过程 198
1142 工作原理 198
115 导入和加载Keras模型和层 198
1151 准备工作 198
1152 实现过程 199
1153 工作原理 199
第12章 基准测试和神经网络优化 201
121 技术要求 201
122 DL4J/ND4J特定的配置 203
1221 准备工作 230 '203
1222 实现过程 203
1223 工作原理 204
1224 更多内容 206
123 设置堆空间和垃圾回收 207
1231 实现过程 207
1232 工作原理 209
1233 更多内容 210
1234 其他参阅 210
124 使用异步ETL 210
1241 实现过程 210
1242 工作原理 211
1243 更多内容 211
125 利用仲裁器监测神经网络行为 212
1251 实现过程 212
1252 工作原理 213
126 执行超参数调整 213
1261 实现过程 214
1262 工作原理 217


【作者简介】

Rahul Raj在软件开发,业务分析,客户沟通以及在多个领域的中/大型项目咨询中拥有超过7年的IT行业经验。目前,他在软件开发公司担任首席软件工程师。在开发活动方面拥有丰富的经验,包括需求分析,设计,编码,实现,代码审查,测试,用户培训和增强。他撰写了许多有关Java中神经网络的文章,并且在DL4J / Java官方频道中也有介绍。他还是由印度的政府认证机构Vskills认证的认证机器学习专家。


【前言】

前言深度学习可以帮助许多行业和公司解决重大挑战、提升产品质量、加强基础设施建设。深度学习的优势在于,你既不必设计决策算法,也不必就重要的数据集特性做出决策,神经网络可以同时做这两件事。我们看到的很多理论书籍中都解释了复杂的概念,但却使读者更加茫然。了解如何或者何时应用所学知识很重要,尤其在企业方面,这也是深度学习等先进技术所关注的。你可能已经承担了一些企业核心项目,但你希望你的知识能再提高一个层次,那你可以从本书中有所收获。本书不会介绍企业开发中的一些实践。在生产环境中部署应用程序过于烦琐时,我们不希望读者质疑开发应用程序目的。我们想要的东西非常直接,目标是世界上的开发社区。在本书中,出于同样的原因,我们使用了DL4J (Deeplearning4j的缩写)来演示示例。它拥有用于ETL (extract、transform、load的缩写)的DataVec、作为科学计算库的ND4J和在生产中开发和部署神经网络模型的DL4J核心库。一些情况下,DL4J的性能优于市场上一些主要的深度学习库。我们没有贬低其他库,因为这取决于你想用它们做什么。如果不想费心切换到多个技术堆栈,也可以尝试在不同阶段容纳多个库。这本书是给谁看的为了充分利用这本书,我们建议读者具备深度学习和数据分析的基本知识,好掌握MLP (多层感知器)或前馈网络、递归神经网络、LSTM、词向量表示的基本知识,并具备一定程度的调试技能来解释错误堆栈中的错误。由于本书以Java和DL4J库为目标,读者还应具备Java和DL4J方面的良好知识。本书不适合刚接触编程或不具备深度学习基础知识的读者。这本书的内容第1章 Java深度学习简介,简要介绍了使用DL4J进行深度学习的方法。第2章 数据提取、转换和加载,结合实例讨论了神经网络数据处理的ETL过程。第3章 二元分类的深层神经网络构建,说明如何在DL4J中开发深层神经网络来解决二元分类问题。第4章 建立卷积神经网络,说明如何在DL4J中建立卷积神经网络来解决图像分类问题。第5章 实现自然语言处理,讨论如何使用DL4J开发NLP应用程序。第6章 构建时间序列的LSTM 神经网络,利用DL4J语言在单类输出的物理网络数据集上进行时间序列的应用。第7章 构建LSTM 神经网络序列分类,利用DL4J语言在UCI多类输出综合控制数据集上进行时间序列的应用。第8章 对非监督数据执行异常检测,说明如何使用DL4J开发无监督异常检测应用程序。第9章 使用RL4J进行强化学习,说明如何开发一个强化学习智能体,可以学习使用RL4J玩Malmo游戏。第10章 在分布式环境中开发应用程序,介绍如何使用DL4J开发分布式深度学习应用程序。第11章 迁移学习在网络模型中的应用,演示如何将转移学习应用于DL4J应用。第12章 基准测试和神经网络优化,讨论各种基准测试方法和神经网络优化技术,可进行深度学习应用。充分利用这本书读者应具备深度学习、强化学习和数据分析的基础知识。深度学习的基础知识将有助于读者理解神经网络设计和案例中使用的各种超参数。基础的数据分析技能和对数据需求的理解将帮助读者更好地探索DataVec,而一些关于强化学习基础先验知识将帮助读者完成第9章“使用RL4J进行强化学习”。我们还将在第10章“在分布式环境中开发应用程序”中讨论分布式神经网络,其中优先考虑ApacheSpark的基础知识。下载示例代码文件你可以从www.packt.com上的账户下载本书的示例代码文件。如果你在别处购买了这本书,你可以访问www.packtpub.com/support并注册,以便将文件直接通过电子邮件发送给你。你 可以通过以下步骤下载代码文件:(1)登录或注册www.packt.com。(2)选择“Support”选项卡。(3)点击“CodeDownloads”。(4)在搜索框中输入书的名称,然后按照屏幕上的说明进行操作。下载文件后,请确保使用版本的解压缩或解压缩文件夹:? WinRAR/7-ZipforWindows。?Zipeg/iZip/UnRarXforMac。?7-Zip/PeaZipforLinux。该书的代码包也托管在GitHub上,网址是https://GitHub.com/PacktPublishing/Java DeepLearningCookbook。如果对代码进行了更新,它将在现有的GITHUB资源库上进行更新。我们还有其他的代码包,可以从https://github.com/PacktPublishing/上的丰富图书和视频目录中获得。下载彩色图像我们还提供了一个PDF文件,其中包含本书中使用的截屏/图表的彩色图像。你可以在这里下载:https://static.packt-cdn.com/downloads/9781788995207_ColorImages.pdf。使用的约定这本书中使用了许多文本约定。CodeInText:指示文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟网址URL、用户输入和Twitter句柄。下面是一个例子: “创建一个CSVRecordReader来保存客户流失数据。”代码块设置如下:Filefile=newFile(“Churn_Modelling.csv”);recordReader.initialize(newFileSplit(file));任何命令行输入或输出如下:mvncleaninstall粗体(Bold):表示新术语、重要单词或屏幕上显示的单词。例如,菜单或对话框中的单词会以这样的格式出现在文本中。下面是一个例子:“我们只需要点击左侧边栏上的Model选项卡。”表示警告或重要提醒。表示提示和技巧。小节在这本书中,你将发现几个经常出现的标题(准备工作、实现过程、工作原理、相关内容和参考资料)。为了清楚地说明如何完成一个技巧,我们会使用如下小节:准备工作本节将告诉你方法中的预期内容,并描述如何建立所需的软件或完成初步设置。实现过程本节包含完成这个方法所需的步骤。工作原理本节通常包括对上一节中发生事情的详细解释。相关内容本节包含有关方法的更多相关信息,以加深你对这些方法的了解。参考资料本节会提供一些有帮助的链接,可以从中查阅这个方法的其他有用信息。联系我们我们欢迎读者的反馈。一般反馈:如果你对本书的任何方面有疑问,请在邮件主题中提及书名,并发送电子邮件至customercare@packtpub.com。勘误:虽然我们已尽一切努力确保内容的准确性,但错误仍不可避免。如果你在这本书中发现了错误,请向我们报告,我们将不胜感激。请访问www.packtpub.com/support/errata,选择你的书籍,单击errata提交表单链接,然后输入详细信息。侵权:如果你在互联网上发现任何形式的我们作品的非法拷贝,请向我们提供地址或网站名称。请通过copyright@packt.com与我们联系,并提供该材料的链接。如果你有兴趣成为一名作家,你对某个主题有专长,并且你对写作感兴趣或希望做些贡献,请访问authors.packtpub.com。评论请留下评论。一旦你阅读并使用了这本书,可以在你购买它的网站上留下一篇评论。潜在的读者可以看到并通过你公正的意见做出购买决定;作为出版社,Packt可以了解你对我们产品的看法;我们的作者也可以看到你对他们作品的反馈。非常感谢!有关Packt的更多信息,请访问packt.com。


返回顶部