当前位置:首页 » 机器学习电子书 » 正文

深度学习 - 电子书下载(高清版PDF格式+EPUB格式)

1589 人参与  2018年12月21日 23:37  分类 : 机器学习电子书  评论

深度学习-[美]Ian Goodfellow(伊恩·古德费洛) & [加]Aaron Courville(亚伦·库维尔) & [加]Yoshua Bengio(约书亚·本吉奥)

            在线阅读                   百度网盘下载(lldd)


image.png

书名:深度学习

作者:[美]Ian Goodfellow(伊恩·古德费洛) & [加]Aaron Courville(亚伦·库维尔) & [加]Yoshua Bengio(约书亚·本吉奥)

格式:EPUB, HTMLZ, PDF

路径:点击打开

出版:人民邮电出版社

排序作者:Goodfellow(伊恩·古德费洛), Ian & Courville(亚伦·库维尔), Aaron & Bengio(约书亚·本吉奥), Yoshua

排序书名:深度学习

日期:09 12月 2018

uuid:f50ff0d6-2f25-4cd0-b7e5-1185788e722d

id:521

出版日期:7月 2017

修改日期:09 12月 2018

大小:24.57MB

语言:中文


第1章 引言

本书由“行行”整理,如果你不知道读什么书或者想获得更多免费电子书请加小编微信或QQ:2338856113 小编也和结交一些喜欢读书的朋友 或者关注小编个人微信公众号名称:幸福的味道 id:d716-716 为了方便书友朋友找书和看书,小编自己做了一个电子书下载网站,网站的名称为:周读 网址:http://www.ireadweek.com

远在古希腊时期,发明家就梦想着创造能自主思考的机器。神话人物皮格马利翁(Pygmalion)、代达罗斯(Daedalus)和赫淮斯托斯(Hephaestus)可以被看作传说中的发明家,而加拉蒂亚(Galatea)、塔洛斯(Talos)和潘多拉(Pandora)则可以被视为人造生命(Ovid and Martin,2004;Sparkes,1996;Tandy,1997)。

当人类第一次构思可编程计算机时,就已经在思考计算机能否变得智能(尽管这距造出第一台计算机还有一百多年)(Lovelace,1842)。如今,人工智能(artificial intelligence,AI)已经成为一个具有众多实际应用和活跃研究课题的领域,并且正在蓬勃发展。我们期望通过智能软件自动地处理常规劳动、理解语音或图像、帮助医学诊断和支持基础科学研究。

在人工智能的早期,那些对人类智力来说非常困难、但对计算机来说相对简单的问题得到迅速解决,比如,那些可以通过一系列形式化的数学规则来描述的问题。人工智能的真正挑战在于解决那些对人来说很容易执行、但很难形式化描述的任务,如识别人们所说的话或图像中的脸。对于这些问题,我们人类往往可以凭借直觉轻易地解决。

第2章 线性代数

线性代数作为数学的一个分支,广泛应用于科学和工程中。然而,因为线性代数主要是面向连续数学,而非离散数学,所以很多计算机科学家很少接触它。掌握好线性代数对于理解和从事机器学习算法相关工作是很有必要的,尤其对于深度学习算法而言。因此,在开始介绍深度学习之前,我们集中探讨一些必备的线性代数知识。

如果你已经很熟悉线性代数,那么可以轻松地跳过本章。如果你已经了解这些概念,但是需要一份索引表来回顾一些重要公式,那么我们推荐The Matrix Cookbook(Petersen and Pedersen,2006)。如果你没有接触过线性代数,那么本章将告诉你本书所需的线性代数知识,不过我们仍然强烈建议你参考其他专门讲解线性代数的文献,例如Shilov(1977)。最后,本章略去了很多重要但是对于理解深度学习非必需的线性代数知识。

第3章 概率与信息论

本章讨论概率论和信息论。

概率论是用于表示不确定性声明的数学框架。它不仅提供了量化不确定性的方法,也提供了用于导出新的不确定性声明(statement)的公理。在人工智能领域,概率论主要有两种用途:首先,概率法则告诉我们AI系统如何推理,据此我们设计一些算法来计算或者估算由概率论导出的表达式;其次,可以用概率和统计从理论上分析我们提出的AI系统的行为。

概率论是众多科学学科和工程学科的基本工具。之所以讲述这章的内容,是为了确保那些背景偏软件工程而较少接触概率论的读者也可以理解本书的内容。

概率论使我们能够提出不确定的声明以及在不确定性存在的情况下进行推理,而信息论使我们能够量化概率分布中的不确定性总量。

如果你已经对概率论和信息论很熟悉了,那么除了第3.14节,本章其余内容你都可以跳过。而在第3.14节中,我们会介绍用来描述机器学习中结构化概率模型的图。即使你对这些主题没有任何的先验知识,本章对于完成深度学习的研究项目来说也已经足够。尽管如此,我们还是建议读者能够参考其他一些额外的资料,例如Jaynes(2003)。

第4章 数值计算

机器学习算法通常需要大量的数值计算。这通常是指通过迭代过程更新解的估计值来解决数学问题的算法,而不是通过解析过程推导出公式来提供正确解的方法。常见的操作包括优化(找到最小化或最大化函数值的参数)和线性方程组的求解。对数字计算机来说,实数无法在有限内存下精确表示,因此仅仅是计算涉及实数的函数也是困难的。

第5章 机器学习基础

深度学习是机器学习的一个特定分支。我们要想充分理解深度学习,必须对机器学习的基本原理有深刻的理解。本章将探讨贯穿本书其余部分的一些机器学习的重要原理。我们建议新手读者或是希望更全面了解的读者参考一些更全面覆盖基础知识的机器学习参考书,例如Murphy(2012)或者Bishop(2006)。如果你已经熟知机器学习,可以跳过前面的部分,前往第5.11节。第5.11节涵盖了一些传统机器学习技术观点,这些技术对深度学习的发展有着深远影响。

首先,我们将介绍学习算法的定义,并介绍一个简单的示例:线性回归算法。接下来,我们会探讨拟合训练数据与寻找能够泛化到新数据的模式存在哪些不同的挑战。大部分机器学习算法都有超参数(必须在学习算法外设定),我们将探讨如何使用额外的数据设置超参数。机器学习本质上属于应用统计学,更多地关注于如何用计算机统计地估计复杂函数,不太关注为这些函数提供置信区间,因此我们会探讨两种统计学的主要方法:频率派估计和贝叶斯推断。大部分机器学习算法可以分成监督学习和无监督学习两类,我们将探讨不同的分类,并针对每个分类提供一些简单的机器学习算法作为示例。大部分深度学习算法都是基于被称为随机梯度下降的算法求解的。我们将介绍如何组合不同的算法部分,例如优化算法、代价函数、模型和数据集,来建立一个机器学习算法。最后在第5.11节,我们会介绍一些限制传统机器学习泛化能力的因素。这些挑战促进了解决这些问题的深度学习算法的发展。

第6章 深度前馈网络

前馈网络对于机器学习的从业者是极其重要的。它们是许多重要商业应用的基础。例如,用于对照片中的对象进行识别的卷积神经网络就是一种专门的前馈网络。前馈网络是通往循环网络之路的概念基石,后者在自然语言的许多应用中发挥着巨大作用。

第7章 深度学习中的正则化

机器学习中的一个核心问题是设计不仅在训练数据上表现好,而且能在新输入上泛化好的算法。在机器学习中,许多策略被显式地设计来减少测试误差(可能会以增大训练误差为代价)。这些策略被统称为正则化。我们将在后文看到,深度学习工作者可以使用许多不同形式的正则化策略。事实上,开发更有效的正则化策略已成为本领域的主要研究工作之一。

第5章介绍了泛化、欠拟合、过拟合、偏差、方差和正则化的基本概念。如果你不熟悉这些概念,请先参考第5章,然后再继续阅读本章。

在本章中,我们会更详细地介绍正则化,重点介绍深度模型(或组成深度模型的模块)的正则化策略。

本章中的某些章节涉及机器学习中的标准概念。如果你已经熟悉了这些概念,可以随意跳过相关章节。然而,本章的大多数内容是关于这些基本概念在特定神经网络中的扩展概念。

在第5.2.2节中,我们将正则化定义为“对学习算法的修改——旨在减少泛化误差而不是训练误差”。目前有许多正则化策略。有些策略向机器学习模型添加限制参数值的额外约束。有些策略向目标函数增加额外项来对参数值进行软约束。如果我们细心选择,这些额外的约束和惩罚可以改善模型在测试集上的表现。有时候,这些约束和惩罚被设计为编码特定类型的先验知识;其他时候,这些约束和惩罚被设计为偏好简单模型,以便提高泛化能力。有时,惩罚和约束对于确定欠定的问题是必要的。其他形式的正则化,如被称为集成的方法,则结合多个假说来解释训练数据。

第8章 深度模型中的优化

深度学习算法在许多情况下都涉及优化。例如,模型中的进行推断(如PCA)涉及求解优化问题。我们经常使用解析优化去证明或设计算法。在深度学习涉及的诸多优化问题中,最难的是神经网络训练。甚至是用几百台机器投入几天到几个月来解决单个神经网络训练问题,也是很常见的。因为这其中的优化问题很重要,代价也很高,因此研究者们开发了一组专门为此设计的优化技术。本章会介绍神经网络训练中的这些优化技术。

如果你不熟悉基于梯度优化的基本原则,我们建议回顾第4章。该章简要概述了一般的数值优化。

本章主要关注这一类特定的优化问题:寻找神经网络上的一组参数θ,它能显著地降低代价函数J(θ),该代价函数通常包括整个训练集上的性能评估和额外的正则化项。

首先,我们会介绍在机器学习任务中作为训练算法使用的优化与纯优化有哪些不同。其次,我们会介绍导致神经网络优化困难的几个具体挑战。再次,我们会介绍几个实用算法,包括优化算法本身和初始化参数的策略。更高级的算法能够在训练中自适应调整学习率,或者使用代价函数二阶导数包含的信息。最后,我们会介绍几个将简单优化算法结合成高级过程的优化策略,以此作为总结。

第9章 卷积网络

卷积网络(convolutional network)(LeCun,1989),也叫作卷积神经网络(convolutional neural network,CNN),是一种专门用来处理具有类似网格结构的数据的神经网络。例如时间序列数据(可以认为是在时间轴上有规律地采样形成的一维网格)和图像数据(可以看作二维的像素网格)。卷积网络在诸多应用领域都表现优异。“卷积神经网络”一词表明该网络使用了卷积(convolution)这种数学运算。卷积是一种特殊的线性运算。卷积网络是指那些至少在网络的一层中使用卷积运算来替代一般的矩阵乘法运算的神经网络。

本章我们首先说明什么是卷积运算,接着会解释在神经网络中使用卷积运算的动机,然后会介绍池化(pooling)。池化是一种几乎所有的卷积网络都会用到的操作。通常来说,卷积神经网络中用到的卷积运算和其他领域(例如工程领域以及纯数学领域)中的定义并不完全一致。我们会对神经网络实践中广泛应用的几种卷积函数的变体进行说明。我们也会说明如何在多种不同维数的数据上使用卷积运算。之后我们讨论使得卷积运算更加高效的一些方法。卷积网络是神经科学原理影响深度学习的典型代表。我们之后也会讨论这些神经科学的原理,并对卷积网络在深度学习发展史中的作用做出评价。本章没有涉及如何为卷积网络选择合适的结构,因为本章的目标是说明卷积网络提供的各种工具。第11章将会对如何在具体环境中选择使用相应的工具给出通用的准则。对于卷积网络结构的研究进展得如此迅速,以至于针对特定基准(benchmark),数月甚至几周就会公开一个新的最优的网络结构,甚至在写这本书时也不好描述究竟哪种结构是最好的。然而,最好的结构也是由本章所描述的基本部件逐步搭建起来的。

第10章 序列建模:循环和递归网络

循环神经网络(recurrent neural network)或RNN(Rumelhart et al.,1986c)是一类用于处理序列数据的神经网络。就像卷积网络是专门用于处理网格化数据X(如一个图像)的神经网络,循环神经网络是专门用于处理序列x(1),…,x(τ)的神经网络。正如卷积网络可以很容易地扩展到具有很大宽度和高度的图像,以及处理大小可变的图像,循环网络可以扩展到更长的序列(比不基于序列的特化网络长得多)。大多数循环网络也能处理可变长度的序列。

从多层网络出发到循环网络,我们需要利用20世纪80年代机器学习和统计模型早期思想的优点:在模型的不同部分共享参数。参数共享使得模型能够扩展到不同形式的样本(这里指不同长度的样本)并进行泛化。如果我们在每个时间点都有一个单独的参数,不但不能泛化到训练时没有见过序列长度,也不能在时间上共享不同序列长度和不同位置的统计强度。当信息的特定部分会在序列内多个位置出现时,这样的共享尤为重要。例如,考虑这两句话:“I went to Nepal in 2009”和“In 2009,I went to Nepal.”如果我们让一个机器学习模型读取这两个句子,并提取叙述者去Nepal的年份,无论“2009年”是作为句子的第六个单词还是第二个单词出现,我们都希望模型能认出“2009年”作为相关资料片段。假设我们要训练一个处理固定长度句子的前馈网络。传统的全连接前馈网络会给每个输入特征分配一个单独的参数,所以需要分别学习句子每个位置的所有语言规则。相比之下,循环神经网络在几个时间步内共享相同的权重,不需要分别学习句子每个位置的所有语言规则。

一个相关的想法是在一维时间序列上使用卷积。这种卷积方法是时延神经网络的基础(Lang and Hinton,1988;Waibel et al.,1989;Lang et al.,1990)。卷积操作允许网络跨时间共享参数,但是浅层的。卷积的输出是一个序列,其中输出中的每一项是相邻几项输入的函数。参数共享的概念体现在每个时间步中使用的相同卷积核。循环神经网络以不同的方式共享参数。输出的每一项是前一项的函数。输出的每一项对先前的输出应用相同的更新规则而产生。这种循环方式导致参数通过很深的计算图共享。

第11章 实践方法论

要成功地使用深度学习技术,仅仅知道存在哪些算法和解释它们为何有效的原理是不够的。一个优秀的机器学习实践者还需要知道如何针对具体应用挑选一个合适的算法以及如何监控,并根据实验反馈改进机器学习系统。在机器学习系统的日常开发中,实践者需要决定是否收集更多的数据、增加或减少模型容量、添加或删除正则化项、改进模型的优化、改进模型的近似推断或调试模型的软件实现。尝试这些操作都需要大量时间,因此确定正确的做法,而不盲目猜测尤为重要。

本书的大部分内容都是关于不同的机器学习模型、训练算法和目标函数,这可能给人一种印象——成为机器学习专家的最重要因素是了解各种各样的机器学习技术,并熟悉各种不同的数学。在实践中,正确使用一个普通算法通常比草率地使用一个不清楚的算法效果更好。正确应用一个算法需要掌握一些相当简单的方法论。本章的许多建议都来自Ng(2015)。

我们建议参考以下几个实践设计流程:

确定目标——使用什么样的误差度量,并为此误差度量指定目标值。这些目标和误差度量取决于该应用旨在解决的问题。

尽快建立一个端到端的工作流程,包括估计合适的性能度量。

搭建系统,并确定性能瓶颈。检查哪个部分的性能差于预期,以及是否是因为过拟合、欠拟合,或者数据或软件缺陷造成的。

根据具体观察反复地进行增量式的改动,如收集新数据、调整超参数或改进算法。

我们将使用街景地址号码转录系统(Goodfellow et al.,2014d)作为一个运行示例。该应用的目标是将建筑物添加到谷歌地图。街景车拍摄建筑物,并记录与每张建筑照片相关的GPS坐标。卷积网络识别每张照片上的地址号码,由谷歌地图数据库在正确的位置添加该地址。这个商业应用是一个很好的示例,它的开发流程遵循我们倡导的设计方法。

我们现在描述这个过程中的每一个步骤。

第12章 应用

在本章中,我们将介绍如何使用深度学习来解决计算机视觉、语音识别、自然语言处理以及其他商业领域中的应用。首先我们将讨论在许多最重要的AI应用中所需的大规模神经网络的实现。接着,我们将回顾深度学习已经成功应用的几个特定领域。尽管深度学习的一个目标是设计能够处理各种任务的算法,然而截至目前深度学习的应用仍然需要一定程度的特化。例如,计算机视觉中的任务对每一个样本都需要处理大量的输入特征(像素),自然语言处理任务的每一个输入特征都需要对大量的可能值(词汇表中的词)建模。

来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=1176

机器学电子书  

微信号:qq444848023    QQ号:444848023

加入【我是码农】QQ群:864689844(加群验证:我是码农)

<< 上一篇 下一篇 >>

网站分类

标签列表

最近发表

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

本站资源大部分来自互联网,版权归原作者所有!