Skip to content

Latest commit

 

History

History
81 lines (42 loc) · 11.9 KB

IntroductionAndMotivation.md

File metadata and controls

81 lines (42 loc) · 11.9 KB

介绍和动机

机器学习是关于设计自动从数据中提取有价值信息的算法。 这里的重点是“自动”,即机器学习关注可以应用于许多数据集的通用方法,同时产生有意义的东西。 机器学习的核心是三个概念:数据(data)、模型(model)和学习(learning)。

由于机器学习本质上是数据驱动的,因此 数据(data) 是机器学习的核心。机器学习的目标是设计通用方法来从数据中提取有价值的模式,理想情况下不需要太多特定领域的专业知识。例如,给定大量文档(例如,许多图书馆中的书籍),机器学习方法可用于自动查找跨文档共享的相关主题(Hoffman et al., 2010)。为了实现这一目标,我们设计了通常与生成数据的过程相关的 模型(model) ,类似于给定的数据集。例如,在回归设置中,模型是描述一个将输入映射到实值输出的函数。套用 Mitchell (1997) 的话:如果在考虑数据后模型在给定任务上的性能有所提高,则称该模型从数据中学习。我们的目标是找好的模型,它们可以很好地适用于尚未见过的数据,那些我们将来可能会关心的数据。 学习(learning) 可以理解为通过优化模型参数,自动发现数据中的模式和结构的一种方式。

虽然机器学习已经有了许多成功的案例,并且软件可以很容易地用于设计和训练丰富而灵活的机器学习系统,但是我们相信机器学习的数学基础对于理解构建更复杂的机器学习系统的基本原理是很重要的。理解这些原理可以帮助创建新的机器学习解决方案,理解和调试现有方法,了解我们正在使用的方法的固有假设和局限性。

1.1 为直觉寻找词语

我们在机器学习中经常面临的一个挑战是,概念和词语是不明确的,机器学习系统的一个特定组件可以抽象为不同的数学概念。例如,在机器学习的上下文中,“算法”一词至少有两种不同的含义。在第一种意义上,我们使用短语“机器学习算法”来表示基于输入数据进行预测的系统。 我们将这些算法称为 预测器(predictors) 。 在第二种意义上,我们使用完全相同的短语“机器学习算法”来表示一个系统,该系统调整预测器的一些内部参数,以便它在未来看不见的输入数据上表现良好。 在这里,我们将这种适应称为 训练(training) 一个系统。

本书不会解决歧义问题,但我们想预先强调,根据上下文,相同的表达可能意味着不同的东西。 然而,我们试图使上下文足够清晰以减少歧义。

本书的第一部分介绍了讨论机器学习系统的三个主要组成部分所需的数学概念和基础:数据、模型和学习。 我们将在此处简要概述这些组件,一旦我们讨论了必要的数学概念,我们将在第 8 章再次回顾它们。

虽然并非所有数据都是用数字表示的,但考虑数字格式的数据通常很有用。 在本书中,我们假设数据已经被适当地转换为适合读入计算机程序的数字表示。 因此,我们将数据视为向量(data as vectors)。 作为另一个关于词语是多么微妙的例子,有(至少)三种不同的方式来思考向量:向量作为数字数组(计算机科学观点),向量作为具有方向和大小的箭头(物理学观),以及向量作为一个服从加法和缩放的对象(数学观点)。

模型(model) 通常用于描述生成数据的过程,类似于手工加数据。 因此,好的模型也可以被认为是真实(未知)数据生成过程的简化版本,通过建模的数据寻找有用信息,并从中提取隐藏的规律。 一个好的模型可以用来预测在现实世界中会发生什么,而无需进行现实世界的实验。

现在我们来到了问题的关键,机器学习中的 学习(learning) 部分。 假设我们有一个数据集和一个合适的模型。训练模型意味着使用可用的数据,根据应用函数优化模型的某些参数,以评估模型预测训练数据的效果。 大多数训练方法可以被认为是一种类似于爬山达到顶峰的方法。在这个类比中,山峰的峰值对应于某些所需性能度量的最大值。 然而,在实践中,我们感兴趣的是那些可以对于看不见的数据执行良好的模型。 在我们已经看到的数据(训练数据)上表现良好可能只意味着我们找到了一种记忆数据的好方法。 然而,这可能不能很好地推广到看不见的数据,并且在实际应用中,我们经常需要将我们的机器学习系统暴露给它以前没有遇到过的情况。

让我们总结一下本书中涵盖的机器学习的主要概念:

  • 我们将数据表示为向量。

  • 我们使用概率或优化的观点来选择合适的模型。

  • 我们通过使用数值优化方法从现有数据中学习,目的是使模型在未用于训练的数据上表现良好。

1.2 两种阅读本书的方式

我们可以考虑两种理解机器学习数学的策略:

自下而上:建立从基础到更高级的概念。 这通常是更多技术领域(例如数学)的首选方法。 这种策略的优点是读者在任何时候都能够依赖他们以前学到的概念。 不幸的是,对于从业者来说,许多基础概念本身并不是特别有趣,缺乏动力意味着大多数基础定义很快就会被遗忘。

自上而下:从实际需求深入到更基本的需求。 这种以目标为导向的方法的优势在于,读者始终知道他们为什么需要研究特定概念,并且有一条清晰的所需知识路径。 这种策略的缺点是知识建立在可能不稳定的基础上,读者必须记住一组他们无法理解的单词。

我们决定以模块化的方式编写这本书,将基础(数学)概念与应用程序分开,以便可以从两种方式阅读本书。 本书分为两部分,第一部分奠定数学基础,第二部分将第一部分中的概念应用于一组基本的机器学习问题,这些问题构成了机器学习的四大支柱,如图 1.1 所示:回归(regression)、降维(dimensionality reduction) 、密度估计(density estimation)和分类(classification)。 第一部分中的章节主要建立在前几章的基础上,但如有必要,可以跳过一章并往后学习。第二部分中的章节只是松散耦合,可以按任何顺序阅读。 本书的两部分之间有许多向前和向后的提示,将数学概念与机器学习算法联系起来。

图 1.1 机器学习的基础和四大支柱
图 1.1 机器学习的基础和四大支柱

当然,阅读本书的方式不止两种。 大多数读者学习使用自上而下和自下而上的方法相结合,有时在尝试更复杂的概念之前建立基本的数学技能,但也会根据机器学习的应用选择主题。

Part I 是关于数学的

我们在本书中介绍的机器学习的四大支柱(见图 1.1)需要扎实的数学基础,这在第一部分中进行了阐述。

我们将数值数据表示为向量,并将此类数据的表格形式表示为矩阵。 向量和矩阵的研究称为 线性代数(linear algebra),我们将在第2章介绍。在那里也描述了向量作为矩阵的集合。

给定代表现实世界中两个对象的两个向量,我们想对它们的相似性做出阐述。 这个想法是我们的机器学习算法(我们的预测器)应该预测相似的向量具有相似的输出。 为了形式化向量之间的相似性概念,我们需要引入将两个向量作为输入并返回表示它们相似性的数值的操作。 相似度和距离的构造是 解析几何(analytic geometry) 的核心,将在第3章中讨论。

在第4章中,我们介绍了一些有关矩阵和 矩阵分解(matrix decomposition) 的基本概念。 矩阵上的一些操作在机器学习中非常有用,它们允许对数据进行直观的解释和更有效的学习。

我们通常认为数据是一些真实的潜在信号的噪声观测。我们希望通过机器学习可以从噪声中识别出信号。 这要求我们有一种语言来量化“噪音”的含义。 我们通常还希望有预测器,允许我们表达某种不确定性,例如,量化我们对特定测试数据点预测值的置信度。不确定性的量化是 概率论(probability theory) 的范畴,在第6章中有介绍。

为了训练机器学习模型,我们通常会找到最大化某些性能指标的参数。 许多优化技术需要梯度的概念,它告诉我们搜索解决方案的方向。 第 5 章是关于 向量微积分(vector calculus) 并详细介绍梯度的概念,我们随后在第 7 章中使用它,我们将在第7章讨论 优化(optimization) 以找到函数的最大值/最小值。

Part II 是关于机器学习的

本书的第二部分介绍了机器学习的四大支柱,如图 1.1 所示。 我们说明了本书第一部分中介绍的数学概念如何成为每个支柱的基础。 从广义上讲,章节按难度排序(升序)。

在第8章中,我们以数学方式重申机器学习的三个组成部分(数据、模型和参数估计)。此外,我们提供了一些用于构建实验设置的指南,以防止对机器学习系统的过于乐观的评估。回想一下,我们的目标是构建一个在看不见的数据上表现良好的预测器。

在第9章中,我们将仔细研究 线性回归(linear regression),我们的目标是找到将输入 $ \boldsymbol x \in \mathbb{R}^D $ 映射到对应的观测函数值 $ \boldsymbol y \in \mathbb{R} $ 的函数,我们可以将其解释为各自输入的标签。 我们将通过最大似然和最大后验估计以及贝叶斯线性回归来讨论经典模型拟合(参数估计),其中我们整合参数而不是优化它们。

第10章重点介绍 降维(dimensionality reduction),即图 1.1 中的第二个支柱,使用主成分分析。 降维的关键目标是找到高维数据 $ \boldsymbol x \in \mathbb{R}^D $ 的紧凑、低维表示,这通常比原始数据更容易分析。 与回归不同,降维只关心数据建模 —— 没有与数据点 $ \boldsymbol x $ 相关联的标签。

在第11章中,我们将转到第三个支柱:密度估计(density estimation)。 密度估计的目标是找到描述给定数据集的概率分布。 为此,我们将专注于高斯混合模型,我们将讨论一个迭代方案来找到这个模型的参数。 与降维一样,没有与数据点 $ \boldsymbol x \in \mathbb{R}^D $ 相关联的标签。 但是,我们不寻求数据的低维表示。 相反,我们对描述数据的密度模型感兴趣。

第12章以深入讨论第四个支柱:分类(classification) 来结束本书。 我们将在支持向量机的背景下讨论分类。 类似于回归(第9章),我们有输入 $ \boldsymbol x $ 和相应的标签 $ y $ 。 然而,与回归不同,其中标签是实值的,分类中的标签是整数,这需要特别注意。

1.3 练习和反馈

我们在第一部分提供了一些练习,主要可以用纸笔完成。 对于第二部分,我们提供了编程教程(jupyter notebooks)来探索我们在本书中讨论的机器学习算法的一些特性。

我们感谢剑桥大学出版社大力支持我们实现教育和学习民主化的目标,为此本书可在以下网址免费下载 https://mml-book.com, 您可以在其中找到教程、勘误表和其他材料。 可以使用上述 URL 报告错误并提供反馈。