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

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

本章我们讨论概率论和信息论。概率论是用于表示不确定性声明的数学框架。它不仅提供了量化不确定性的方法,也提供了用于导出新的不确定性声明的公理。在人工智能领域,概率论主要有两种用途。首先,概率法则告诉我们~AI~系统如何推理,据此我们设计一些算法来计算或者估算由概率论导出的表达...… 继续阅读

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

深度学习是机器学习的一个特定分支。我们要想充分理解深度学习,必须对机器学习的基本原理有深刻的理解。本章将探讨贯穿本书其余部分的一些机器学习重要原理。我们建议新手读者或是希望更全面了解的读者参考一些更全面覆盖基础知识的机器学习参考书,例如~{MurphyBook2012}或者...… 继续阅读

深度前馈网络,也叫作前馈神经网络或者多层感知机,是典型的深度学习模型。前馈网络的目标是近似某个函数$f^$。例如,对于分类器,$y = f^(\Vx)$将输入$\Vx$映射到一个类别$y$。前馈网络定义了一个映射$\Vy = f(\Vx; \Vtheta)$,并且学习参数$...… 继续阅读

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

深度学习算法在许多情况下都涉及到优化。例如,模型中的进行推断(如\,PCA)涉及到求解优化问题。我们经常使用解析优化去证明或设计算法。在深度学习涉及到的诸多优化问题中,最难的是神经网络训练。甚至是用几百台机器投入几天到几个月来解决单个神经网络训练问题,也是很常见的。因为这其...… 继续阅读

卷积网络{cite?},也叫做卷积神经网络,是一种专门用来处理具有类似网格结构的数据的神经网络。例如时间序列数据(可以认为是在时间轴上有规律地采样形成的一维网格)和图像数据(可以看作是二维的像素网格)。卷积网络在诸多应用领域都表现优异。“卷积神经网络”一词表明该网络使用了卷...… 继续阅读

循环神经网络或~RNN~{cite?}是一类用于处理序列数据的神经网络。就像卷积网络是专门用于处理网格化数据$\TSX$(如一个图像)的神经网络,循环神经网络是专门用于处理序列$\Vx^{(1)}, \dots, \Vx^{(\tau)}$的神经网络。正如卷积网络可以很容易...… 继续阅读

要成功地使用深度学习技术,仅仅知道存在哪些算法和解释他们为何有效的原理是不够的。一个优秀的机器学习实践者还需要知道如何针对具体应用挑选一个合适的算法以及如何监控,并根据实验反馈改进机器学习系统。在机器学习系统的日常开发中,实践者需要决定是否收集更多的数据、增加或减少模型容量...… 继续阅读

在本章中,我们将介绍如何使用深度学习来解决计算机视觉、语音识别、自然语言处理以及其他商业领域中的应用。首先我们将讨论在许多最重要的~AI~应用中所需的大规模神经网络的实现。接着,我们将回顾深度学习已经成功应用的几个特定领域。尽管深度学习的一个目标是设计能够处理各种任务的算法...… 继续阅读

许多深度学习的研究前沿均涉及构建输入的概率模型$p_{\text{model}}(\Vx)$。原则上说,给定任何其他变量的情况下,这样的模型可以使用概率推断来预测其环境中的任何变量。许多这样的模型还具有潜变量 $\Vh$,其中$p_{\text{model}}(\Vx) =...… 继续阅读

自编码器是神经网络的一种,经过训练后能尝试将输入复制到输出。自编码器内部有一个隐藏层 $\Vh$,可以产生编码表示输入。该网络可以看作由两部分组成:一个由函数$ \Vh = f(\Vx)$表示的编码器和一个生成重构的解码器 $\Vr=g(\Vh)$。\fig?展示了这种架构...… 继续阅读

在本章中,首先我们会讨论学习表示是什么意思,以及表示的概念如何有助于深度框架的设计。我们探讨学习算法如何在不同任务中共享统计信息,包括使用无监督任务中的信息来完成监督任务。共享表示有助于处理多模式或多领域,或是将已学到的知识迁移到样本很少或没有、但任务表示依然存在的任务上。...… 继续阅读

深度学习为研究者们提供了许多建模方式,用以设计以及描述算法。其中一种形式是结构化概率模型的思想。我们曾经在\sec?中简要讨论过结构化概率模型。此前简要的介绍已经足够使我们充分了解如何使用结构化概率模型作为描述第二部分中某些算法的语言。现在在第三部分,我们可以看到结构化概率...… 继续阅读

随机算法可以粗略地分为两类:Las Vegas\,算法和蒙特卡罗算法。Las Vegas\,算法总是精确地返回一个正确答案 (或者返回算法失败了)。 这类方法通常需要占用随机量的计算资源(一般指内存或运行时间)。 与此相对的,蒙特卡罗方法返回的答案具有随机大小的错误。 花...… 继续阅读

在\sec?中,我们看到许多概率模型(通常是无向图模型)由一个未归一化的概率分布 $\tilde{p}(\RVx, \theta)$定义。我们必须通过除以配分函数 $Z(\Vtheta)$来归一化$\tilde{p}$,以获得一个有效的概率分布:\begin{equatio...… 继续阅读

许多概率模型很难训练的原因是很难进行推断。在深度学习中,通常我们有一系列可见变量$\Vv$和一系列潜变量 $\Vh$。推断困难通常是指难以计算$p(\Vh\mid\Vv)$或其期望。而这样的操作在一些诸如最大似然学习的任务中往往是必需的。许多仅含一个隐藏层的简单图模型会定义...… 继续阅读

在本章中,我们介绍几种具体的生成模型,这些模型可以使用\chap?至\chap?中出现的技术构建和训练。所有这些模型在某种程度上都代表了多个变量的概率分布。有些模型允许显式地计算概率分布函数。其他模型则不允许直接评估概率分布函数,但支持隐式获取分布知识的操作,如从分布中采样...… 继续阅读