书籍作者:Indra | ISBN:9787111598725 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:2720 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书以自上而下和自下而上的方法来展示针对不同领域实际问题的深度学习解决方案,包括图像识别、自然语言处理、时间序列预测和机器人操纵等。还讨论了采用诸如TensorFlow、PyTorch、Keras和CNTK等流行的深度学习开源框架用于实际问题的解决方案及其优缺点。本书内容包括:用于深度学习的编程环境、GPU计算和云端解决方案;前馈神经网络与卷积神经网络;循环与递归神经网络;强化学习与生成对抗网络;深度学习用于计算机视觉、自然语言处理、语音识别、视频分析、时间序列预测、结构化数据分析以及游戏智能体(Agents)和机器人操控等。后讨论了深度学习的超参数选择和神经网络的内在结构以及预训练模型的使用技巧等。
Indra den Bakker是一位经验丰富的深度学习工程师和培训师。他是23insights平台的创始人,这是NVIDIA所属孵化项目计划的一部分,这是一个机器学习构建解决方案的初创型计划,可以改变世界上重要的行业。在开放课程平台Udacity,他指导了在深度学习和相关领域攻读微学位(Nanodegree)的学生,他还负责审查学生的实习项目。Indra拥有计算智能背景,并在创建23insights平台之前作为IPG Mediabrands的品牌代理以及Screen6的数据科学家若干年。
程国建,博士,教授,西安培华学院智能科学与信息工程学院(中兴电信学院)院长。1990年12月获中国石油大学(华东)计算机应用专业工学学士学位;1994年6月获西安电子科技大学计算机与人工智能专业工学硕士学位;1997年9月至2001年12月留学德国图宾根大学,获理学博士学位(Dr.rer.nat.)。2002年3月至2003年8月在戴姆勒集团(Daimler AG,奔驰汽车公司)从事汽车嵌入式软件产品线构造、车载多媒体互连架构(Telematics)等方面的研究工作。2004年9月回国任教,2008年底破格晋升教授职称,2009年7月荣获“陕西省优秀留学回国人员”荣誉称号,2010年12月赴美国西弗吉尼亚大学石油工程系进行访学活动。近几年主持并完成十余项科研项目,包括国家自然科学基金项目2项,指导研究生50余名,在相关学术研究领域及国际会议发表文章150余篇,其中核心期刊70余篇,三大检索(SCI/ISTP/EI)论文50余篇,出版专(译)著十余部。主要科研领域及研究方向包括:计算智能、机器学习、模式识别、图像处理、智能数字油田、商业智能、大数据与智慧城市等。
本书针对所提出的问题提供技术解决方案,并提供对这些解决方案的详细解释。此外,还讨论了使用TensorFlow、PyTorch、Keras和CNTK等流行开源框架针对实际问题解决方案相应的优缺点。本书也介绍了人工神经网络基本概念及其相关技术,包括经典的网络拓扑等。本书主要目的是为Python程序员提供较为详细的实战方案,以便将深度学习应用于常见和不常见实际问题场景。
本书包括14章:(1) 编程环境、GPU 计算、云解决方案和深度学习框架;(2)前馈神经网络;(3)卷积神经网络;(4)递归神经网络;(5)强化学习;(6)生成对抗网络;(7)计算机视觉;(8)自然语言处理;(9)语音识别和视频分析;(10)时间序列和结构化数据;(11)游戏智能体和机器人;(12)超参数选择、调优和神经网络学习;(13)网络内部构造;(14)预训练模型。
本书的主要特点:
1)提供训练不同神经网络模型并调整模型以期获得佳性能的实战方案;
2)使用诸如TensorFlow、Caffe、Keras、Theano的Python框架进行自然语言处理、计算机视觉识别等;
3)Python深度学习中的常见以及不常见问题的解决指南。
通过本书将会学到:
1)在Python中实现不同的人工神经网络模型;
2)选择诸如PyTorch、TensorFlow、MXNet和Keras等优的Python开源框架来进行深度学习;
3)应用神经网络内部细节相关的提示和技巧,以提高学习成效;
4)巩固机器学习原理并将其应用于深度学习领域;
5)重用Python代码段并将其应用于解决日常问题;
6)评估每个解决方案的成本/收益和性能影响。
前言
深度学习正在为广泛的行业带来革命性的变化。对于许多应用来说,深度学习通过做出更快和更准确的预测,证明其已经超越人类的预测。本书提供了自上而下和自下而上的方法来展示深度学习对不同领域现实问题的解决方案。这些应用程序包括计算机视觉、自然语言处理、时间序列预测和机器人。
本书主要内容
第 1章 编程环境、 GPU计算、云解决方案和深度学习框架 主要包括与环境和 GPU计算相关的信息和方案。对于在不同平台上设置环境有问题的读者来说,这是一个必读内容。
第 2章 前馈神经网络 提供了与前馈神经网络有关的一系列方法,并作为其他章节的基础。本章的重点是为不同网络拓扑常见的实现问题提供解决方案。
第 3章 卷积神经网络 着重介绍卷积神经网络及其在计算机视觉中的应用。它提供了有关 CNN中使用的技术和优化方法。
第 4章 递归神经网络 提供了一系列与递归神经网络相关的方法,包括 LSTM(长短期记忆)网络和 GRU(门控递归神经元)。本章的重点是为循环神经网络的常见的实现问题提供解决方案。
第 5章 强化学习 涵盖强化学习神经网络的各种方法。本章介绍了在单智能体环境中深度强化学习的概念。
第 6章 生成对抗网络 提供了与无监督学习问题相关的一系列方法,这包括图像生成和超分辨率的生成对抗网络。
第 7章 计算机视觉 包含图像编码相关的数据处理方法,如视频帧。将提供使用 Python处理图像数据的经典技术,以及用于图像检测、分类和分割的最佳解决方案。
第 8章 自然语言处理 涵盖与文本数据处理相关的方法,包括与文本特征表示和处理相关的方法,包括文字嵌入和文本数据存储。
第 9章 语音识别和视频分析 涵盖与流数据处理相关的方法,这包括音频、视频和帧序列。
第 10章 时间序列和结构化数据 提供与数字运算相关的方法,这包括序列和时间序列。
第 11章 游戏智能体和机器人 专注于最先进的深度学习研究应用,这包括与多智能体环境(模拟)和自主车辆中游戏智能体相关的方法。
第 12章 超参数选择、调优和神经网络学习 阐述了神经网络学习过程涉及的方方面面。本章的总体目标是提供非常简洁和具体的技巧来提升网络性能。
第 13章 网络内部构造 介绍了一个神经网络的内部构造,这包括张量分解、权重初始化、拓扑存储、瓶颈特征和相应的嵌入。
第 14章 预训练模型 涵盖了流行的深度学习模型,如 VGG-16和 Inception V4。
学习本书所需的准备工作
本书专注于 AI(人工智能)的 Python实现,而不是 Python本身。本书使用 Python 3来构建各种应用程序,专注于如何以最好的方式利用各种 Python库来构建真实世界的应用程序。本着这样的精神,尽力使所有的代码尽可能无误易懂,这将使读者能够轻松理解代码,并在不同的场景中使用它。
本书读者对象
本书面向那些希望使用深度学习算法来创建真实 Python应用程序的机器学习专业人士。对机器学习概念和 Python库(如 NumPy、SciPy和 Scikit-learn)有深入的理解。此外,还需要具备线性代数和微积分的基本知识。
约定惯例
在本书中,读者将看到许多区分不同类型信息的文本样式。下面是这些样式的一些例子,以及对其含义的解释。文本、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter句柄中的代码字如下所示:“为提供虚拟数据集,将使用 numpy和以下代码”。设置如下一段代码:
任意命令行的输入或输出如下:
新术语和关键词以黑体显示。
在屏幕上看到的单词,例如菜单或对话框,就会像这样出现在文本中:
警告或重要关注。
提示和技巧图标。
读者反馈
欢迎读者反馈意见。让作者了解读者对本书的看法,喜欢什么或不喜欢什么。读者反馈对于作者开发真正让读者受益的主题非常重要。
若要给作者反馈意见,只需发送邮件到 [email protected],并在邮件标题中注明书名。
如果有读者擅长的主题或有兴趣参与撰写或出版的书籍,请查看 www.packtpub.com/ authors上的作者指南。
用户支持
既然读者购买了 Packt出版社出版的书籍,那么出版社将会帮助读者获得最大收益。
示例代码下载
读者可以在 http://www.packtpub.com上根据账户下载本书的示例代码。如果想要购买本书电子版,可以访问 http://www.packtpub.com/support并注册,将直接通过电子邮件发送给读者。
下载代码文件步骤如下:
1
)通过邮件地址和密码在网站上登录或注册。
2)鼠标指向顶部的
SUPPORT选项。
3)单击
Code Downloads & Errata。
4)在 Search框中输入书名。
5
)选择想要下载代码文件的书籍。
6
)在下拉菜单中选择购买本书的方式。
7)单击
Code Download。
下载完成后,请用以下软件最新版本来解压文件夹:
. WinRAR / 7-Zip for Windows。
. Zipeg / iZip / UnRarX for Mac。
. 7-Zip / PeaZip for Linux。
本书的代码包还托管在 GitHub上,https://github.com/PacktPublishing/Hands-On-Deep-Learning-with-TensorFlow。另外在 https://github.com/PacktPublishing/上的大量图书和视频目录中还有其他代码包。请查阅!
勘误
尽管已尽力确保内容准确,但仍然难免会有错误。如果读者在书中发现了错误、文本或代码错误,如果能及时告知,将不胜感激。这样会帮助其他读者,并有助于在本书的后续版本中进行完善。如果读者发现任何错误,请访问 http://www.packtpub.com/submit-errata告示。首先选择书名,点击勘误提交表单链接,然后输入详细的勘误内容。一旦通过验证,
原书前言
将会接受读者的提交并将勘误表上传网站,或在该标题的勘误部分下添加到现有的勘误表中。
若要查看已提交的勘误表,请访问 https://www.packtpub.com/books/content/support,并在搜索栏中输入书名。相关信息将会显示在 Errata部分中。
版权保护
在互联网上受版权保护的资料,涉及的盗版问题是一个存在于所有媒体的严重问题。 Packt出版社非常重视保护版权和许可。如果读者在网上发现任何非法复制的作品,请立即提供地址和网址,以便追踪索赔。请通过 [email protected]联系我们,并提供疑似盗版材料的链接。非常感谢您在保护作者和为您提供宝贵内容方面的帮助。
问题
如果读者对本书有任何问题,请通过 [email protected]联系我们,我们将竭尽全力为读者解决。
www.PacktPub.com
电子书、折扣优惠等
下载本书相关的文件资料,请访问 www.PacktPub.com。
您是否知道 Packt出版社为每本出版发行的书籍都提供了电子书版本,其中包括 PDF和 ePub文件?您可以通过 www.PacktPub.com升级电子书版本,作为纸质版用户,还可以享受电子书的折扣。有关更多详细信息,请通过 [email protected]与我们联系。
在 www.PacktPub.com,读者还可以阅读免费技术文章,订阅一系列免费时事通信,并获得 Packt出版社纸质书和电子书的独家折扣和优惠。
使用 Mapt可获得最需要的软件技能。 Mapt可让读者充分访问所有 Packt出版社的图书和视频课程,以及行业领先的工具,帮助读者规划个人发展并推动读者的事业发展。
为什么订阅?
. 可以在 Packt出版社发行的每本书中全面搜索。
. 复制、粘贴、打印和标注内容。
. 可通过 web浏览器访问。
本书审稿人
Radovan Kavicky是 GapData研究院的首席数据科学家和总裁( https://www.gapdata. org),该研究院总部设在斯洛伐克的布拉迪斯拉发市,致力于利用数据的力量和经济学智慧为公共利益服务。 Radovan Kavicky是一位具有教育和学术背景的宏观经济学家、专业咨询师和分析师(在公共和私营部门为客户提供咨询服务方面具有超过 8年的经验),他具有强大的数学和分析能力,能够提供顶级研究和分析工作。从 MATLAB、SAS和 Stata开始,目前转向 Python、R和 Tableau。他是斯洛伐克经济协会的成员,也是开放数据、开放预算举措和开放政府合作伙伴的传播者。他是 PyData Bratislava、R
(Berlin 2017)峰会上发表演讲,并且是全球 Tableau #DataLeader网络( 2017)的成员。读者可以在 Twitter上 @radovankavicky、@GapDataInst或 @PyDataBA关注他。其完整档案和经历可参阅网页 https://www.linkedin.com/in/radovankavicky/和 https://github.com/ radovankavicky。
客户反馈意见
感谢读者购买这本 Packt出版社出版的书籍。在 Packt出版社,质量是编辑过程的核心所在。为了帮助我们改进工作,请在本书的亚马逊网页 http://www.amazon.com/ dp/178712519X上留下诚恳的评论。
如果读者想加入我们的特约审稿团队,可以发送电子邮件给我们: customerreviews@ packtpub.com。我们通过免费电子书和视频授予我们的特约审稿人以换取宝贵的反馈意见,以此帮助我们改进书籍的质量!
译者序
得益于大数据的涌现、运算力的提升和机器学习新算法(深度学习)的出现,人工智能的浪潮正在席卷全球,诸多词汇开始萦绕在我们的耳边,首当其冲的就是人工智能(Arti.cial Intelligence)、机器学习(Machine Learning)和深度学习(Deep Learning)。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,也就是研究、开发能够用于模拟、延伸和扩展人类智能的理论、方法、技术及应用系统的一门新的技术科学。该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。机器学习是实现人工智能的主流方法,最基本的做法是使用算法来解析数据从中进行学习,然后对真实世界中的事件做出决策和预测。与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练”模型,通过各种算法从数据中学习如何完成任务。而深度学习又是实现机器学习的核心技术,最初的深度学习是利用深度神经网络来解决特征表达的一种学习过程。深度神经网络可理解为包含多个隐层(数十层,甚至上百层)的大规模人工神经元互连结构。为了提高深度神经网络的训练效果,可对神经元的连接方法和激活函数等方面做出相应的调整,以使模式识别或预测结果达到最优。深度学习摧枯拉朽般地实现了各种目标,使得似乎所有的机器辅助功能都变为可能,诸如无人驾驶汽车、个性化医疗保健、人脸识别、自然语言处理、网上购物推荐等都是深度学习的典型应用场景。
本书以自上而下和自下而上的方法来展示针对不同领域实际问题的深度学习解决方案,包括图像识别、自然语言处理、时间序列预测和机器人操纵等。还讨论了采用诸如 TensorFlow、PyTorch、Keras和 CNTK等流行的深度学习开源框架用于实际问题的解决方案及其优缺点。本书内容包括:用于深度学习的编程环境、 GPU计算和云端解决方案;前馈神经网络与卷积神经网络;循环与递归神经网络;强化学习与生成对抗网络;深度学习用于计算机视觉、自然语言处理、语音识别、视频分析、时间序列预测、结构化数据分析以及游戏智能体( Agents)和机器人操控等。最后讨论了深度学习的超参数选择和神经网络的内在结构以及预训练模型的使用技巧等。本书将带读者进入深度学习的实战场景,通过使用诸如 TensorFlow与 Keras等 Python深度学习流行框架而进行自然语言处理、图像识别、时间序列预测等实战演练。本书适用于人工智能培训班、大学生创新创业实战训练、研究生课题演练、程序员实力提升等方面。本书的出版得益于机械工业出版社的推荐以及周冠武博士和研究生们付出的辛劳,在此一并致谢。
程国建谨识 2018年 3月
译者序
原书前言
第 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
......