人人可懂的深度学习
上QQ阅读APP看书,第一时间看更新

1.3 机器学习为何如此困难

即使借助计算机,还是会有很多因素造成机器学习的困难。首先,大部分数据集中的数据都含有噪声[1],这导致与训练数据完全匹配的函数未必是最好的,因为它很可能学习到的是噪声信息。其次,可能的函数数量往往比数据集中的样本数量还多。在这种情况下,机器学习就成了一个不适定问题:已知的信息并不足以确定唯一的最优解;相反,有多个解都能与数据相匹配。下面,我们以算术运算(加、减、乘、除)的选择问题为例说明什么是不适定问题。已知以下数据:

function(输入) = 输出

function(1, 1) = 1

function(2, 1) = 2

function(3, 1) = 3

根据这些数据,未知函数显然更可能是乘法或除法,而不是加法或减法。然而,仅根据这些数据,我们无法判断未知函数究竟是乘法还是除法,因为这两种运算都能与给定的所有数据匹配。因此,这个问题就是一个不适定问题:根据问题中已知的信息无法确定唯一的最优解。

解决不适定问题的策略之一是收集更多的数据(样本),以期这些样本有助于区分正确的函数和其他可选的函数。然而,这个策略很多时候并不可行,因为要么根本无法获取更多的数据,要么数据获取的成本太高。为了克服机器学习任务的不适定性,机器学习算法对最优函数的特性做出假设,并将这些假设作为补充信息来指导对最优函数(或模型)的选择。因为从一组特定样本中总结出一般性规则的过程在逻辑学中被称为归纳推理,所以这些假设也被称为算法的归纳偏差[2]。比如,如果你生活中看到的天鹅都是白色的,你可能就会从这些样本中总结出如下的一般性规则:所有的天鹅都是白色的。机器学习算法正是根据特定样本(数据集)归纳(或者说提取)一般性规则(即函数),因此机器学习和归纳推理之间有着本质的联系。引起机器学习算法偏差的假设实际上也会导致归纳推理过程的偏差,这就是为什么将这些假设称为算法的归纳偏差。

综上,机器学习算法根据两种信息选择最优函数:数据集和假设(归纳偏差),后者能够使算法更倾向于可选函数中的某一些函数,而不管数据集中的模式是什么样的。机器学习算法的归纳偏差相当于为算法提供了观察数据的特定视角。然而,正如现实世界中不存在适合所有情况的最好视角一样,也不存在适合所有数据集的最好归纳偏差。因为这个原因,很多不同的机器学习算法被提了出来,它们使用各不相同的归纳偏差,这些归纳偏差对应的假设强度不一。假设越强,算法选择适合数据集中的模式的函数的自由度就越小。某种意义上,数据集与归纳偏差之间是相互妥协和平衡的关系:使用强假设的机器学习算法在选择函数的时候会更多地忽略数据集的影响。例如,如果机器学习算法被设置成更倾向于简单函数,那么无论数据中的模式多么复杂,它都会产生强的归纳偏差。

第2章将介绍如何使用直线方程来定义函数。直线方程是一类非常简单的数学函数。使用直线方程作为函数的模板结构对数据集进行拟合的机器学习算法假设生成的模型将输入到输出的关系编码成简单的线性映射。这一假设就是一种归纳偏差,事实上还是一种强归纳偏差,因为无论数据中的模式多么复杂(或非线性),算法都将使用线性模型进行拟合(从而产生偏差)。

如果机器学习算法用错了偏差,就可能出现两种错误中的一种。第一种错误是,偏差过强导致算法忽略了数据中的重要信息,提取得到的函数无法刻画数据中实际模式的细微差别。换句话说,相对于数据所在的域[3]而言,函数过于简单了,其输出并不精确。这一现象被称为函数对数据欠拟合。相反,如果偏差太弱(或者说太宽容),算法就会有极大的自由度来选择函数以尽量拟合数据。这种情况下,相对于数据所在的域而言,提取得到的函数又过于复杂了,导致函数把训练算法时所用的数据中的噪声也拟合了。拟合了训练数据中的噪声的函数在处理新数据(不在训练集中的数据)时,其泛化能力会降低。这一现象被称为函数对数据过拟合。找到能够在给定域中的数据和归纳偏差之间实现合适的平衡的机器学习算法是学习对数据既不欠拟合也不过拟合且能在该域中成功泛化(即能够在推断时准确处理不在训练集中的新样本)的函数的关键。

然而,即便对于足够复杂且适合使用机器学习的域,也不可能事先知道使用哪些假设能够从数据中发现正确的模型。因此,数据科学家必须运用他们的直觉(或者说需要做出合理的猜测),并通过试错实验找到最适合给定域的机器学习算法。

神经网络的归纳偏差相对较弱。因此,一般而言,深度学习的风险在于其神经网络模型会对数据过拟合,而非欠拟合。这是因为神经网络非常依赖数据,所以它们也最适合于大规模数据集的场景。数据集越大,数据提供的信息也就越丰富,因而,越依赖于数据的模型对数据也越敏感。事实上,在过去十年间推动深度学习兴起的最重要因素之一就是大数据的出现。通过线上社交平台和大量普及的传感器能够获取海量数据,这些数据为训练神经网络模型提供了必要的数据,从而开辟了一系列领域中的新应用。深度学习研究中使用的大数据是什么概念呢?以脸书的人脸识别软件(DeepFace)为例,它的训练数据集包含了来自4000多人的400万张人脸图像[49]


[1] 数据噪声是指损坏的或不正确的数据。数据噪声可能是由于损坏的传感器、错误的数据存取等原因造成的。

[2] inductive bias也译成归纳偏倚。——译者注

[3] 域是指我们用机器学习方法要解决的问题或任务,例如垃圾邮件过滤、房屋价格预测、X射线自动分类。