书籍作者:Ahmed Sherif | ISBN:9787121378829 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:7501 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书开头部分讲了如何按照深度学习的需求来配置Apache Spark,以实现不同类型的神经网络,接下来讲述了在分布式环境中实现深度学习涉及的常见和不那么常见的需求。另外,你还将学到Spark中的深度学习代码,这些代码可以复用到其他类似的问题中,或者稍作改动用于略有不同的问题。本书将带你一起用Spark对数据进行分流和聚类,用TensorFlow、Deeplearning4j和 Caffe在Spark中实现和部署深度学习模型,例如CNN、RNN和 LSTM。学完本书的内容,你将能够在Spark上训练和部署有效的深度学习模型。
Ahmed Sherif是一名数据科学家,自2005年以来一直从事各种角色的数据研究。他从2013年开始使用BI解决方案并慢慢转向数据科学。2016年,他从西北大学获得了预测分析硕士学位,在那里他研究深度学习的科学与应用和同时使用Python和R语言的预测建模。*近,他一直在使用Azure在云端开发机器学习和深度学习解决方案。2016年,他出版了他的第一本书《实用商业智能》。他目前是微软的数据和人工智能技术解决方案专业人员。
Amrith Ravindra博士是一位机器学习爱好者,拥有电气与工业工程学位。在攻读硕士学位的过程中,他更深入地研究机器学习世界,并培养了对数据科学的热爱。工程专业的研究生课程给他提供了数学背景,使他进入深度学习的职业生涯。他在坦帕市举行的当地数据科学聚会上会见了Ahmed Sherif。他们决定合作写一本关于他们*喜欢的机器学习算法的书。他希望这本书能够帮助他实现成为数据科学家并积极为机器学习做出贡献的*终目标。
黄友良,计算机应用技术专业博士,毕业于北京师范大学,2009年7月-至今就职于北京中医药大学管理学院,中华医学会教育技术分会第八、九届委员会青年委员,中国中医药信息研究会人工智能分会理事,Adobe中国认证讲师。
√丰富的案例解析,书中展示了Spark在各行各业做深度学习的应用实例。
√基于Python,与当前主流深度学习库(TensorFlow和Keras等)结合,教你如何在Spark中实现和部署深度学习模型。
√本书以即学即用的方式进行讲解,任何没有编程经验的人,即使是没有使用过Python语言的人,都可以按照提示逐步地轻松实现本书中的算法。
译者序
机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。随着计算机软硬件技术的不断发展,机器学习正在悄然改变世界。深度学习(Deep Learning)是机器学习的一个分支和新的研究方向,它能够使计算机通过层次概念来学习经验和理解世界,更接近机器学习实现人工智能的最初目标。深度学习在数据挖掘、机器学习、机器翻译、自然语言处理、个性推荐,以及其他相关领域都取得了很多成果。
在开始深度学习项目之前,选择一个合适的大数据处理框架是非常重要的,选择一个合适的框架能起到事半功倍的作用。Spark是一个以声明的方式,围绕速度、易用性和复杂分析构建的大数据处理框架,它提供了一个全面、统一的框架,以管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数据)。本书用通俗易懂的语言,详细介绍了基于Spark的深度学习框架的安装和创建,并通过不同领域的具体案例为读者介绍了Spark具体应用方法,希望读者能够更好地理解和应用Spark。
本书作者Ahmed Sherif是一名数据科学家,在美国西北大学获得了预测分析硕士学位。他一直在研究机器学习理论和应用,并使用Python和R语言进行预测建模。最近,他一直在使用Azure开发机器学习和云上深度学习的解决方案。2016年,他出版了第一本书——《实用商业智能》,他目前是微软公司数据和人工智能领域的技术解决方案专家。本书另外一位作者Amrith Ravindra是一名机器学习爱好者,他深入地研究了机器学习理论。Amrith Ravindra在坦帕市的一次数据科学会议上认识了Ahmed Sherif,他们决定集思广益,写一本关于他们最喜欢的机器学习算法的书。他们希望这本书能够帮助大家实现成为一名数据科学家并积极为机器学习做出贡献的最终目标。
非常感谢电子工业出版社计算机出版分社将这样一本好书交给我翻译。我深知自己的知识面和翻译水平有限,难免有疏漏和错误之处,恳请读者批评指正。出版社的编辑帮助我耐心审阅翻译的书稿,并提出了许多中肯的修改意见,非常感谢他们。希望读者能够从书中得到更多的知识,开发更多的机器学习应用来改变世界。
黄友良
2019年11月
序
如果你正在阅读这本书,那么可以肯定的是,你已经意识到人工智能(AI)和机器学习(ML)对当今的巨大影响,以及深度神经网络带来的不可思议的惊人效率。Matei Zaharia和他的团队开发的Spark,不是为了让它成为Hadoop的竞争对手,而是作为人工智能和机器学习的广泛应用。正如Zaharia所说过的:“Spark只关注如何计算,不关注数据存储在哪里。”Spark被称为用于大规模数据处理的统一分析引擎,它特别针对弹性、速度、易用性、通用性和可移植性进行了优化,本书将向你详细介绍Spark,相信你一定会成为Spark的狂热爱好者。
作为读者,如果你对Spark在深度学习领域的应用感到兴奋,那么本书就可以为你提供帮助。作者首先通过提供简明扼要的文字说明,帮助你设置Spark以进行深度学习的开发。在完成初始设置之后,你很自然地就创建了一个神经网络。随后,作者详细说明了卷积神经网络和循环神经网络的难点。在各个行业,人工智能每天都有新的应用。在实际应用方面,作者提供了使用SparkML预测消防部门的呼叫,使用XGBoost预测房地产价值,使用LSTM预测苹果公司的股票价格,以及使用Keras创建电影推荐引擎等实际但又进行了适当简化的案例。
人工智能和机器学习分类繁多,令人眼花缭乱的工具集和库的使用令人望而却步。作者非常出色地将不同的库混合在一起,并在读者对本书的学习过程中,不断融入相关但多样化的技术。随着深度学习框架开始融合并向抽象方向发展,探索性数据分析的规模必然会增长。这就是为什么本书并非创造一个众所周知的“一招鲜”(或YOLO模型,双关语),而是涵盖了相关或高度相关的技术,如使用长短期记忆单元的生成网络,使用TF-IDF的自然语言处理,使用深度卷积网络的人脸识别,使用Word2Vec创建和可视化单词向量,并在Spark上使用TensorFlow进行图像分类。除简洁和专注的写作风格外,本书的另一个优势是,内容与机器学习、深度学习高度相关。
在学术领域和行业领域,我有一个独特的机会亲自看到Spark的发展。作为斯坦福大学的访问学者,我参加了Spark的共同创始人之一Matei Zaharia的各种会议,并有幸了解了他对Databricks、大规模算法运作及大数据未来的看法。同时,作为人工智能和深度学习的从业者和首席架构师,我目睹了世界上最大的零售商实验室如何使用Spark标准化其业务机器学习模型的部署。随着云技术不断支持新的数据应用程序架构,我认为Spark是各个行业的、全新的且不可预料的机器学习实现的关键推动者和加速器。这需要大规模解决现实世界中的业务问题,拥有蓬勃发展的生态系统,并能够为企业级SLA提供全天候支持的能力。Spark以前所未有的速度、弹性和社区适应性满足所有这些标准。Spark经常用于高级案例分析,如系统遥测的复杂异常值分析。将Spark视为一种工具,它可以弥补传统商务智能与现代机器学习服务之间的差距,从而取得有意义的业务成果。随着数据成为核心竞争优势,防患(数据中断)于未然至关重要,同时要考虑季节性、周期性和不断增加的时间相关性。易操作性是行业接纳的关键,而这正是Spark与众不同的地方;数据洞察力和行动洞察力也是Spark的强项。
你所持有的这本书是Spark向人工智能和机器学习广泛应用迈出的又一大步。它为你提供了在实际问题中应用的工具和技术。将它看作探索之旅的开端,成为一个全面的机器学习工程师和传播者,而不仅是一个Spark追星族。我们希望这本书能够帮助你利用Apache Spark来轻松、高效地处理业务和技术相关的问题。
Adnan Masood博士
斯坦福大学计算机工程系访问学者
微软最有价值专家&微软人工智能和机器学习首席架构师
斯坦福盖茨计算机科学大楼
2018年6月12日
前言
随着深度学习在现代各行业中迅速得到广泛应用,各个机构都在寻找将流行的大数据工具与高效的深度学习库结合起来的方法。这将有助于深度学习模型以更高的效率和更快的速度进行训练。
在本书的帮助下,你将通过学习特定的操作来得到深度学习算法的结果,而不会陷入理论的困境。从为深度学习设置Apache Spark到实现各种类型的神经网络,本书解决了大多数常见和不太常见的问题,以便在分布式环境中执行深度学习。除此之外,你还可以访问Spark的深度学习代码,这些代码可以用来回答类似问题,也可以在调整后回答稍有不同的问题。你还将学习如何用Spark对数据进行流处理和集群处理。一旦掌握了基础知识,你将探索如何使用TensorFlow和Keras等流行库,如卷积神经网络、循环神经网络和长短期记忆网络,在Spark中实现和部署深度学习模型。最后,这是一本旨在教授如何在Spark中实际应用模型的指南,所以我们不会深入讨论本书使用的模型背后的理论和数学知识。
在本书的最后,你将拥有在Apache Spark上部署高效深度学习模型的专业知识。
本书的读者对象
本书适用于对机器学习和大数据概念有基本了解的人,以及希望通过自上而下而非自下而上的方法来扩展已有知识的人。本书以即学即用的方式进行讲解,任何没有编程经验的人,即使是没有使用过Python语言的人,都可以按照提示逐步地轻松实现本书中的算法。本书中的大多数代码都是简单易懂的,每个代码块执行一个特定的功能,或者执行挖掘、转换和将数据拟合到深度学习模型中的操作。
本书旨在通过介绍有趣的项目(如股票价格预测)为读者提供实践经验的同时,让读者对深度学习和机器学习概念有更深入的理解。这可能以提供在线资源链接的方式展现,如已发表的论文、教程和指南,它贯穿本书的每一章。
本书包括哪些内容
第1章:为深度学习开发设置Spark。本章包括在虚拟Ubuntu桌面环境下设置Spark开发所需的所有内容。
第2章:在Spark中创建神经网络。本章介绍了从头开始开发神经网络而不使用任何深度学习库(如TensorFlow或Keras)的过程。
第3章:卷积神经网络的难点。本章介绍了图像识别中与卷积神经网络相关的一些难点,以及解决问题的方法。
第4章:循环神经网络的难点。本章介绍了前馈神经网络和递归神经网络。我们描述了循环神经网络的一些难点,以及如何使用LSTM解决它们。
第5章:用Spark机器学习预测消防部门呼叫。我们将使用Spark机器学习开发一个分类模型,用于预测来自旧金山市消防部门的呼叫。
第6章:在生成网络中使用LSTM。本章给出了一种使用小说或大型文本语料库作为输入数据来定义和训练LSTM模型的实用方法,同时还使用训练模型生成自己的输出序列。
第7章:使用TF-IDF进行自然语言处理。本章介绍了分类聊天机器人对话数据升级的步骤。
第8章:使用XGBoost进行房地产价值预测。本章重点介绍了如何使用金斯县房屋销售数据集来训练一个简单的线性模型,并使用它来预测房价,然后使用一个稍微复杂的模型来做同样的事情并提高预测的准确度。
第9章:使用长短期记忆单元预测苹果公司股票的市场价格。本章的重点是使用Keras中的LSTM创建深度学习模型,以预测苹果公司股票的市场价格。
第10章:使用深度卷积网络进行人脸识别。本章利用10个不同受试者的面部图像的MIT-CBCL数据集来训练和测试深度卷积神经网络模型。
第11章:使用Word2Vec创建和可视化单词向量。本章重点关注向量在机器学习中的重要性,并指导用户利用谷歌的Word2Vec模型训练不同的模型,并可视化小说中产生的单词向量。
第12章:使用Keras创建电影推荐引擎。本章专注于为使用深度学习库Keras的用户构建电影推荐引擎。
第13章:使用TensorFlow在Spark中进行图像分类。本章专注于利用迁移学习来认识世界知名足球运动员克里斯蒂亚诺·罗纳尔多和里奥·梅西。
如何更好地利用本书
1. 利用书中提供的链接可以更好地理解本书中使用的一些术语。
2. 互联网是当今世界上最大的大学。观看YouTube、Udemy、edX、Lynda和Coursera等网站提供的有关各种深度学习和机器学习概念的视频。
3. 若仅翻看这本书容易忘记知识点,那么可以在阅读本书时实际执行每一步操作。建议你在浏览每一步操作时打开Jupyter Notebook,这样就可以在阅读本书时实践每一步操作,同时检查你从每个步骤获得的输出。
4. 本书提供的额外参考资料请访问http://www.broadview.com.cn/37882进行下载,如正文中标有参见“链接1”“链接2”等字样时,即可从上述网站下载的“参考资料.pdf”文件中进行查询。
目录
1 为深度学习开发设置Spark 1
介绍 1
下载Ubuntu桌面映像 2
在macOS中使用VMWare Fusion安装和配置Ubuntu 3
在Windows中使用Oracle VirtualBox安装和配置Ubuntu 8
为谷歌云平台安装和配置Ubuntu桌面端 11
在Ubuntu桌面端安装和配置Spark 23
集成Jupyter Notebook与Spark 29
启动和配置Spark集群 33
停止Spark集群 34
2 在Spark中创建神经网络 36
介绍 36
在PySpark中创建数据帧 37
在PySpark数据帧中操作列 41
将PySpark数据帧转换为数组 42
在散点图中将数组可视化 46
设置输入神经网络的权重和偏差 49
规范化神经网络的输入数据 52
验证数组以获得最佳的神经网络性能 55
使用sigmoid设置激活函数 57
创建sigmoid导数 60
计算神经网络中的代价函数 62
根据身高值和体重值预测性别 66
预测分数并进行可视化 69
3 卷积神经网络的难点 72
介绍 72
难点1:导入MNIST图像 73
难点2:可视化MNIST图像 77
难点3:将MNIST图像导出为文件 80
难点4:增加MNIST图像 82
难点5:利用备用资源训练图像 86
难点6:为卷积神经网络优先考虑高级库 88
4 循环神经网络的难点 94
介绍 94
前馈网络简介 95
循环神经网络的顺序工作 103
难点1:梯度消失问题 108
难点2:梯度爆炸问题 111
长短期记忆单元的顺序工作 114
5 用Spark机器学习预测消防部门呼叫 119
介绍 119
下载旧金山消防局呼叫数据集 119
识别逻辑回归模型的目标变量 123
为逻辑回归模型准备特征变量 130
应用逻辑回归模型 137
评估逻辑回归模型的准确度 142
6 在生成网络中使用LSTM 145
介绍 145
下载将用作输入文本的小说/书籍 145
准备和清理数据 151
标记句子 156
训练和保存LSTM模型 158
使用模型生成类似的文本 163
7 使用TF-IDF进行自然语言处理 171
介绍 171
下载治疗机器人会话文本数据集 172
分析治疗机器人会话数据集 176
数据集单词计数可视化 178
计算文本的情感分析 180
从文本中删除停用词 184
训练TF-IDF模型 188
评估TF-IDF模型性能 192
比较模型性能和基线分数 194
8 使用XGBoost进行房地产价值预测 196
下载金斯县房屋销售数据集 196
执行探索性分析和可视化 199
绘制价格与其他特征之间的相关性 210
预测房价 223
9 使用长短期记忆单元预测苹果公司股票市场价格 229
下载苹果公司的股票市场数据 229
探索和可视化苹果公司的股票市场数据 233
准备用于提升模型性能的股票市场数据 238
构建长短期记忆单元模型 246
评估长短期记忆单元模型 249
10 使用深度卷积网络进行人脸识别 252
介绍 252
下载MIT-CBCL数据集并将其加载到内存中 252
绘制并可视化目录中的图像 257
图像预处理 262
模型构建、训练和分析 269
11 使用Word2Vec创建和可视化单词向量 277
介绍 277
获取数据 277
导入必要的库 281
准备数据 284
构建和训练模型 288
进一步可视化 293
进一步分析 300
12 使用Keras创建电影推荐引擎 304
介绍 304
下载MovieLens数据集 305
操作和合并MovieLens数据集 312
探索MovieLens数据集 318
为深度学习流水线准备数据集 322
应用Keras深度学习模型 327
评估推荐引擎的准确度 331
13 使用TensorFlow在Spark中进行图像分类 333
介绍 333
下载梅西和罗纳尔多各30张图像 334
使用深度学习包安装PySpark 339
将图像加载到PySpark数据帧 341
理解迁移学习 344
创建用于图像分类训练的流水线 346
评估模型性能 348
微调模型参数 350