首页>参考读物>计算机科学与技术>软件与程序设计

深度学习初学者指南
作者 : [智]巴勃罗·里瓦斯(Pablo Rivas) 著
译者 : 汪雄飞 陈朗 汪荣贵 译
出版日期 : 2021-11-15
ISBN : 978-7-111-69522-6
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 300
开本 : 16
原书名 : Deep Learning for Beginners
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书分为三部分。第1部分将帮助你快速理解从数据中学习、深度学习基本架构、如何准备数据,以及深度学习中经常使用的基本概念。第二部分将重点介绍无监督学习算法。从自编码器开始,然后转向层数更深、规模更大的神经网络模型。第三部分介绍监督学习算法,你将掌握基本和高级深度学习模型的实现方法,并能够将这些模型用于分类、回归以及从潜在空间生成数据等应用场合。

图书特色

深度学习初学者指南
Deep Learning for Beginners
[智]  巴勃罗·里瓦斯(Pablo Rivas)  著
 汪雄飞?陈 朗?汪荣贵  译 

图书前言

多年来,我们这些忠实地致力于研究机器学习的群体见证了这个领域的发展和繁荣,一些技术的产生令人惊叹,甚至有望带来彻底的社会变革。然而,对于那些想要加入我们来研究这一领域的人们而言,机器学习知识似乎有点令人望而生畏。当然,网络上的相关信息太多了,我们很难浏览所有的论文和代码,为那些想要加入深度学习领域的人找到可靠的介绍性内容。虽然市面上有很多关于机器学习知识的介绍性书籍,但大部分都不满足那些特别想从事深度学习工作的人们的需求,而且要求读者具备必要的、最低限度的数学和算法知识,以及一些必要的编程技能。
本书的目标是帮助初学者建立强大的深度学习基础,掌握使用众所周知的方法建立深度学习模型所需要的基本概念。如果这个目标听上去符合你的需求,那么本书可能正是你所需要的。本书假定读者先前没有接触过神经网络和深度学习,并从回顾深度学习所需要的机器学习基础知识开始。然后,本书解释了如何通过清洗和预处理数据为深度学习做准备,随后逐步介绍神经网络和流行的监督神经网络架构(如卷积神经网络(CNN,Convolutional Neural Network)、循环神经网络(RNN,Recurrent Neural Network)和生成对抗网络(GAN,Generative Adversarial Network))以及无监督架构(如自编码器(AE)、变分自编码器(VAE)和受限玻耳兹曼机(RBM))。在每一章的结尾,你将有机会测试你对概念的理解程度,并反思自己的成长过程。
在本书的最后,你将理解深度学习的概念和秘诀,并将能够分辨适用于特定任务的算法。
本书的目标读者
本书是为想要从深度学习和神经网络的基础知识开始学习的、心怀抱负的数据科学家和深度学习工程师准备的。本书不需要读者事先接触过深度学习或机器学习,当然如果接触过会更好。读者只需要熟悉线性代数和Python编程就可以了。
本书是为珍惜时间、想要学到编程所需的深度学习要点的读者准备的。
如果不知道深度学习的基础知识,那么它可能会让你感到害怕。许多人因为不理解Web上的术语或示例程序,所以感到很沮丧。这就导致了人们在选择深度学习算法时可能会做出糟糕的决定,而且他们无法预见进行这种选择所产生的后果。因此,本书是为具有下列意图的读者准备的:
重视获得深度学习概念的良好定义。
想要使用结构化的方法从头开始学习深度学习。
渴望了解并真正理解深度学习的基本概念。
想知道如何预处理数据,以便在深度学习算法中使用。
对一些先进的深度学习算法感到好奇。
本书的主要内容
第1章 给出了机器学习的概述,不仅介绍了机器学习背后的动机以及该领域常用的术语,还介绍了深度学习的基本概念以及它是如何适应人工智能发展的。
第2章 讲解如何配置TensorFlow和Keras深度学习开发平台,并介绍它们在深度学习中的用途和目的。本章还简要介绍了其他深度学习程序框架和程序库,让你能够以一种低成本的方式熟悉它们。
第3章 介绍数据处理背后的主要概念,数据经过处理后才能够用在深度学习中。本章将涵盖格式化分类以及实值输出和输入的基本概念,还将探索关于数据增强和降低数据维度的技术。
第4章 介绍深度学习理论中的基本概念,包括回归和分类的性能度量以及过拟合的识别,还提供了一些关于超参数调优的警告。
第5章 介绍神经元的概念,并将其连接到感知机模型,该模型以简单的方式从数据中学习。感知机模型是理解从数据中学习的基本神经模型的关键,也可以用来处理线性不可分数据。
第6章 通过使用多层感知机算法,让你直面深度学习的第一个挑战,例如基于误差最小化的梯度下降技术,以及实现模型泛化的超参数调优。
第7章 通过解释编码层和解码层的必要性来描述自编码器模型,探索与自编码器模型相关的损失函数,并将其应用于降维问题和数据可视化。
第8章 介绍了深度信念网络的概念和这种深度无监督学习的含义,通过引入深层自编码器并将它们与浅层自编码器进行对比来解释这些概念。
第9章 介绍生成模型在无监督深度学习领域背后的哲学,以及它们在生成抗噪声鲁棒模型中的重要性。在处理扰动数据时,变分自编码器是深度自编码器的更好的替代方案。
第10章 通过介绍RBM来补充书中对深度信念模型知识的覆盖。本章介绍了RBM的前后双向传播性质,并与AE单向的前向传播性质进行比较。本章分别使用RBM和AE模型实现对降维数据的可视化表示,并进行了比较。
第11章 解释深度神经网络和广度神经网络在性能和复杂性上的差异,并在神经元之间的连接方面引入了密集网络和稀疏网络的概念。
第12章 介绍卷积神经网络,从卷积运算开始,然后讲解集成卷积运算层,从而学习可以对数据进行操作的滤波器。本章最后展示了如何可视化所学习的滤波器。
第13章 提出了最基本的循环网络的概念,揭示了它们的缺点,以说明长短时记忆模型的存在价值及其成功之处。本章还探讨了序列模型在图像处理和自然语言处理方面的应用。
第14章 介绍了基于GAN模型的半监督学习方法,它属于对抗学习家族。本章解释了生成器和判别器的概念,并讨论了为什么对训练数据概率分布有良好的近似可以导致模型(例如,从随机噪声中产生数据)的成功。
第15章 简要地展示了深度学习领域崭新的、令人兴奋的主题和机会。如果你想继续学习,可以在这里找到Packt的其他资源,你可以使用这些资源在此领域继续前进。
如何充分利用本书
你需要确保自己的Web浏览器能够连接到谷歌Colabs,网址是http://colab.research.google.com/。
虽然本书假设读者没有事先接触过深度学习或机器学习,但是你必须熟悉一些线性代数知识和Python编程,以便充分利用本书。
为了确保与机器学习和深度学习Python库的未来版本兼容,我们在本书的代码包和GitHub库中包含了一个使用!pip freeze指令生成的当前版本列表。然而,这些只是为了参考和未来的兼容性,记住谷歌Colabs已经具备了所有必要的设置。
你还可以在https://github.com/PacktPublishing/上从丰富的书籍和视频目录中获得其他代码包。去看看吧!同样,库的列表仅供参考,但谷歌Colabs上有最新的设置。
一旦你使用本书完成了学习之旅,先庆祝一下,然后再密切关注本书的最后一章,它会为你指明新的方向。记住,永远坚持学习,这是成功的关键之一。
下载示例代码及彩色图像
本书的示例代码文件及彩色插图,可以从www.packtpub.com/通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
在代码文件下载完毕之后,请确保使用下列版本的解压缩软件解压或提取文件:
Windows系统:WinRAR/7-Zip
Mac系统:Zipeg/iZip/UnRarX
Linux系统:7-Zip/PeaZip
本书的代码包也可以在GitHub上获取,网址是https://github.com/PacktPublishing/Deep-Learning-for-Beginners。如果代码有更新, GitHub存储库中的代码也会更新。
本书的排版约定
代码体:表示文本中的代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter账户名。下面有一个例子:“潜在编码器模型latent_ncdr和autoencoder模型中的predict()方法在指定的层上产生输出。”
代码的示例如下:

当我们需要让你注意代码块的特定部分时,相关内容会加粗:

命令行输入与输出的格式如下所示:

黑体:表示新的术语、重要的词,或者屏幕上看到的词(例如菜单或对话框中的单词)。这里有一个例子:“最重要的是一个叫作双曲正切的新激活函数。”
表示警告或重要提示。
表示提示和技巧。

上架指导

计算机\人工智能

封底文字

网络上的信息呈指数级爆炸式增长,通过浏览网络信息获得有助于进行深度学习的可靠内容变得比以往任何时候都要困难。如果你是一个初学者,希望从头开始学习深度学习理论以及构建深度学习模型,并且已经具备了入门所需的基本数学知识和编程知识,那么本书正是你所需要的。
学完本书,你将精通深度学习的概念,并拥有使用特定算法与适当工具解决不同任务所需要的知识。
通过学习本书,你将能够:
●  实现用于完成图像分类和自然语言处理任务的RNN模型和长短时记忆模型。
●  探索CNN模型在计算机视觉和信号处理中的作用。
●  理解深度学习建模的伦理。
●  理解与深度学习相关的数学术语。
●  构建GAN和VAE模型,并且从已学习的潜在空间中生成虚拟图像。
●  通过可视化技术实现AE和VAE模型的性能比较。

译者序

近年来,深度学习技术取得了突破性进展,并且在计算机视觉、自然语言处理等多个领域取得了非常成功的应用,甚至在一定程度上改变了人们的日常生活方式和工作方式。深度学习的繁荣发展和成功应用极大地激发了人们对深度学习技术的学习热情。然而,对于那些刚开始进入机器学习领域的初学者来说,较好地掌握和应用深度学习技术并不是一件容易的事情,因为深度学习技术通常基于数学模型和算法设计,需要一定的抽象思维能力和数学知识。具有一定专业深度且可读性好的深度学习入门教材对于深度学习领域初学者的帮助显然是至关重要的。本书正是这样的一部优秀教材,全书从一个完全没有机器学习基础的程序员的视角出发,通过一系列具体的应用实例,使用通俗易懂的语言系统地介绍了深度学习的思想内涵、基本理论和重要算法,通过知识介绍、源代码片段剖析、应用示例和一些专门技巧的讲解,循序渐进地展示了深度学习模型的设计技巧和模型训练的算法思维,逐步消除了深度学习模型和算法的认知盲点,使读者能够通过自己的努力建立强大的深度学习基础。本书的特点主要体现在如下两个方面:
第一,入门起点比较低,可读性非常好。本书假定读者先前没有接触过神经网络和深度学习,甚至没有接触过机器学习。书中从机器学习的基本概述开始,指导读者建立流行的Python程序框架,并以循序渐进的方式介绍流行的监督神经网络架构(例如卷积神经网络(CNN)、循环神经网络(RNN)和生成对抗网络(GAN))以及非监督神经网络架构(例如自编码器(AE)、变分自编码器(VAE)和受限玻耳兹曼机(RBM))。作者非常注重使用生动有趣的应用实例实现对概念和原理的解释,使用大量的可视化方式直观形象地表示潜在空间等比较抽象的概念,并提出一些发人深省的问题,让读者通过思考来超越那些似乎显而易见的问题,引导读者完成对相关概念和原理的深层理解。
第二,知识结构新颖,知识内容的系统性和专业性强。本书的知识内容主要由深度学习快速入门、无监督深度学习、监督深度学习这三个部分组成。第一部分介绍深度学习的基本知识、开发平台、数据准备与预处理技术,以及网络模型设计与训练的基础知识;第二部分系统地介绍自编码器、深度自编码器、变分自编码器、受限玻尔兹曼机等无监督学习模型,通过具体应用实例细致地探讨潜在空间、特征提取等深度学习和表示学习的核心概念,以及模型训练的基本技巧,帮助读者打下扎实的深度学习理论基础;第三部分从现有密集网络的局限性出发,引出稀疏网络的概念以及相应的深度卷积网络、深度循环网络,以及生成对抗网络,系统地介绍这些网络模型的设计原理、训练算法,以及在计算机视觉和自然语言处理等领域的应用技术。全书知识结构非常清晰且很有创意,知识内容具有较好的完备性、系统性和专业性。
本书内容丰富,文字表述清晰,实例讲解详细,图例直观形象,适合作为高等学校人工智能、智能科学与技术、数据科学与大数据技术、计算机科学与技术以及相关专业的本科生及研究生深度学习课程的入门教材,也可供工程技术人员和自学读者学习参考。
本书由汪雄飞、陈朗、汪荣贵共同翻译完成。感谢研究生张前进、江丹、孙旭、尹凯健、王维、张珉、李婧宇、修辉、雷辉、张法正、付炳光、李明熹、董博文、麻可可、李懂、刘兵、王耀、杨伊、陈震、沈俊辉、黄智毅、禚天宇等同学提供的帮助,感谢合肥工业大学、广东外语外贸大学、机械工业出版社华章分社的大力支持。
由于时间仓促,译文难免存在不妥之处,敬请读者不吝指正!

译者  
2021年6月

图书目录

译者序

前言
作者简介
审校者简介
第一部分 深度学习快速入门
第1章 机器学习概述 2
1.1 接触ML生态系统 2
1.2 从数据中训练ML算法 4
1.3 深度学习概述 5
1.3.1 神经元模型 5
1.3.2 感知机学习算法 6
1.3.3 浅层网络 8
1.3.4 深度网络 11
1.4 深度学习在现代社会中的重要性 13
1.5 小结 14
1.6 习题与答案 15
1.7 参考文献 15
第2章 深度学习框架的搭建与概述 16
2.1 Colaboratory简介 16
2.2 TensorFlow的简介与安装 17
2.2.1 安装 17
2.2.2 拥有GPU支持的TensorFlow 18
2.2.3 TensorFlow背后的原理 18
2.3 Keras的简介与安装 19
2.3.1 安装 19
2.3.2 Keras背后的原理 19
2.4 PyTorch简介 21
2.5 Dopamine简介 21
2.6 其他深度学习程序库 23
2.6.1 Caffe 23
2.6.2 Theano 23
2.6.3 其他程序库 23
2.7 小结 24
2.8 习题与答案 24
2.9 参考文献 24
第3章 数据准备 26
3.1 二元数据与二元分类 27
3.1.1 克利夫兰心脏病数据集的二元目标 27
3.1.2 二值化MINST数据集 30
3.2 分类数据与多个类别 33
3.2.1 将字符串标签转换成数字 34
3.2.2 将分类转换成独热编码 36
3.3 实值数据与单变量回归 38
3.3.1 缩放到特定范围的数值 38
3.3.2 标准化到零均值和单位方差 41
3.4 改变数据的分布 42
3.5 数据增强 44
3.5.1 尺度缩放 44
3.5.2 添加噪声 45
3.5.3 旋转 45
3.5.4 其他增强手段 46
3.6 数据降维 46
3.6.1 监督算法 47
3.6.2 无监督技术 48
3.6.3 关于维度的数量 52
3.7 操纵数据的道德影响 53
3.8 小结 53
3.9 习题与答案 53
3.10 参考文献 54
第4章 从数据中学习 55
4.1 学习的目的 55
4.1.1 分类问题 56
4.1.2 回归问题 60
4.2 度量成功与错误 63
4.2.1 二元分类 64
4.2.2 多元分类 65
4.2.3 回归分析矩阵 69
4.3 识别过拟合和泛化 70
4.3.1 拥有测试数据的情形 71
4.3.2 没有测试数据的情形 72
4.4 机器学习背后的艺术 74
4.5 训练深度学习算法的伦理意蕴 78
4.5.1 使用适当的模型性能度量指标 79
4.5.2 小心对待并验证异常值 79
4.5.3 抽样不足组的权重类 80
4.6 小结 80
4.7 习题与答案 81
4.8 参考文献 81
第5章 训练单个神经元 83
5.1 感知机模型 83
5.1.1 概念的可视化 83
5.1.2 张量运算 84
5.2 感知机学习算法 86
5.3 处理线性不可分数据的感知机 88
5.3.1 线性可分数据的收敛 88
5.3.2 线性不可分数据的收敛 91
5.4 小结 92
5.5 习题与答案 93
5.6 参考文献 93
第6章 训练多层神经元 94
6.1 MLP模型 94
6.2 最小化误差 96
6.2.1 步骤1:初始化 99
6.2.2 步骤2:前向传播 99
6.2.3 步骤3:计算损失 101
6.2.4 步骤4:反向传播 101
6.3 寻找最佳超参数 106
6.4 小结 109
6.5 习题与答案 109
6.6 参考文献 110
第二部分 无监督深度学习
第7章 自编码器 112
7.1 无监督学习简介 112
7.2 编码层与解码层 113
7.2.1 编码层 115
7.2.2 解码层 116
7.2.3 损失函数 116
7.2.4 学习与测试 117
7.3 数据降维与可视化应用 119
7.3.1 MNIST数据的准备 120
7.3.2 MNIST的自编码器 120
7.3.3 模型训练与可视化 122
7.4 无监督学习的伦理意蕴 126
7.5 小结 127
7.6 习题与答案 127
7.7 参考文献 128
第8章 深度自编码器 129
8.1 深度信念网络简介 129
8.2 建立深度自编码器 130
8.2.1 批归一化 130
8.2.2 随机失活 134
8.3 探索深度自编码器的潜在空间 139
8.3.1 CIFAR-10 139
8.3.2 MNIST 146
8.4 小结 148
8.5 习题与答案 148
8.6 参考文献 149
第9章 变分自编码器 150
9.1 深度生成模型简介 150
9.2 研究变分自编码器模型 151
9.2.1 回顾心脏病数据集 153
9.2.2 重参数化技巧与采样 154
9.2.3 学习编码器中的后验概率分布参数 154
9.2.4 解码器建模 156
9.2.5 最小化重构损失 156
9.2.6 训练VAE模型 157
9.2.7 使用VAE生成数据 159
9.3 深度和浅层VAE在MNIST上的性能比较 161
9.3.1 浅层VAE模型 162
9.3.2 深度VAE模型 164
9.3.3 VAE模型去噪 168
9.4 生成模型的伦理意蕴 168
9.5 小结 169
9.6 习题与答案 169
9.7 参考文献 170
第10章 受限玻尔兹曼机 171
10.1 RBM模型简介 171
10.1.1 BM模型 172
10.1.2 RBM模型 172
10.1.3 伯努利RBM 173
10.2 使用RBM学习数据表示 174
10.3 比较RBM和AE 178
10.4 小结 180
10.5 习题与答案 181
10.6 参考文献 181
第三部分 监督深度学习
第11章 深度与广度神经网络 184
11.1 广度神经网络 184
11.1.1 回顾深度学习 184
11.1.2 网络层的广度 185
11.1.3 CIFAR-10数据集 187
11.1.4 新的训练工具 189
11.1.5 结果 192
11.2 密集深度神经网络 195
11.2.1 构建并训练模型 195
11.2.2 结果 198
11.3 稀疏深度神经网络 199
11.3.1 构建并训练稀疏网络 200
11.3.2 结果 202
11.4 超参数调优 204
11.4.1 程序库与参数 204
11.4.2 实现与结果 204
11.5 小结 206
11.6 习题与答案 207
11.7 参考文献 207
第12章 卷积神经网络 209
12.1 卷积神经网络简介 209
12.2 多维卷积 210
12.2.1 一维卷积 210
12.2.2 二维卷积 212
12.2.3 n维卷积 213
12.3 卷积层 214
12.3.1 Conv2D 214
12.3.2 layer+activation组合 216
12.4 池化策略 216
12.5 面向CIFAR-10的卷积神经网络 217
12.5.1 实现 217
12.5.2 结果 222
12.5.3 滤波器的可视化 224
12.6 小结 226
12.7 习题与答案 226
12.8 参考文献 226
第13章 循环神经网络 227
13.1 循环神经网络简介 227
13.1.1 简单RNN模型 228
13.1.2 嵌入层 229
13.1.3 词嵌入与IMDb上的RNN 231
13.2 长短时记忆模型 237
13.3 序列到向量的模型 242
13.3.1 无监督模型 243
13.3.2 结果 245
13.4 向量到序列的模型 247
13.4.1 双向LSTM 248
13.4.2 实现与结果 249
13.5 序列到序列的模型 252
13.6 伦理意蕴 253
13.7 小结 253
13.8 习题与答案 254
13.9 参考文献 255
第14章 生成对抗网络 256
14.1 对抗学习简介 256
14.1.1 基于对抗的学习 257
14.1.2 GAN模型 258
14.2 训练GAN模型 258
14.2.1 基于MLP的GAN模型 259
14.2.2 卷积GAN模型 264
14.3 比较GAN和VAE 270
14.4 GAN的伦理意蕴 272
14.5 小结 273
14.6 习题与答案 273
14.7 参考文献 274
第15章 深度学习的未来 275
15.1 寻找深度学习的前沿话题 275
15.1.1 深度强化学习 275
15.1.2 自监督学习 278
15.1.3 系统2算法 278
15.2 从Packt获取更多资源 279
15.2.1 强化学习 279
15.2.2 自监督学习 279
15.3 小结 279
15.4 参考文献 280

教学资源推荐
作者: (英)Roger Garside, John Mariani
作者: 丁山 朱留存 编著
作者: [美] 基普·R.欧文(Kip R.Irvine) 著
作者: 周庆国 崔向平 郅朋 编著
参考读物推荐
作者: Clinton Pierce
作者: [美]罗伯特 C.西科德(Robert C. Seacord)著
作者: (美)Joshua Bloch
作者: 钟大伟 高铎 王鹏 宋超 著