奥卡姆剃刀在机器学习中建议,我们应该偏爱系数较少的简单模型,而非集成等复杂模型。
从表面上看,奥卡姆剃刀是一种启发式原则,它认为更复杂的假设会做出更多假设,这反过来会使它们过于狭隘,无法很好地泛化。在机器学习中,它暗示集成等复杂模型会过度拟合训练数据集,并在新数据上表现不佳。
然而在实践中,在预测能力是首要考虑的项目中,集成模型几乎是普遍选择的模型类型。此外,经验结果表明,随着集成学习模型复杂度的逐步增加,泛化误差持续降低。这些发现与奥卡姆剃刀原则的表面理解相悖。
在本教程中,您将了解如何调和奥卡姆剃刀与集成机器学习。
完成本教程后,您将了解:
- 奥卡姆剃刀是一种启发式原则,它建议选择更简单的机器学习模型,因为它们有望更好地泛化。
- 这个启发式原则可以分为两把剃刀,其中一把是正确的,仍然是一个有用的工具,而另一把是错误的,应该被抛弃。
- 像Boosting这样的集成学习算法提供了一个具体的例子,说明第二把剃刀如何失效,以及增加的复杂性如何导致更低的泛化误差。
通过我的新书《使用Python的集成学习算法》启动您的项目,其中包括逐步教程和所有示例的Python源代码文件。
让我们开始吧。

集成学习算法复杂性与奥卡姆剃刀
照片由dylan_odonnell拍摄,保留部分权利。
教程概述
本教程分为三个部分;它们是:
- 模型选择的奥卡姆剃刀
- 机器学习的奥卡姆两把剃刀
- 奥卡姆剃刀与集成学习
模型选择的奥卡姆剃刀
模型选择是指从众多候选机器学习模型中为一个预测建模项目选择一个模型的过程。
通常可以根据模型预期性能(例如,选择准确率最高或预测误差最低的模型)来直接选择模型。
另一个重要的考虑是选择更简单的模型而非复杂模型。
简单模型通常定义为做出较少假设或具有较少元素(最常见的特征是较少系数,例如规则、层、权重等)的模型。选择简单模型的理由可追溯到奥卡姆剃刀。
其思想是,最好的科学理论是能解释所有事实的最小理论。
— 第197页,《数据挖掘:实用机器学习工具与技术》,2016年。
奥卡姆剃刀是一种解决问题的方法,通常被援引为,如果其他条件都相同,我们应该选择更简单的解决方案。
- 奥卡姆剃刀:如果其他条件都相同,最简单的解决方案是正确的。
它以奥卡姆的威廉命名,旨在反驳日益复杂的哲学,而这些哲学并没有相应地提高预测能力。
奥卡姆的威廉著名的剃刀原则指出,“Nunquam ponenda est pluralitas sin necesitate”,大致翻译过来就是“非必要不增实体”。
— 《奥卡姆的两把剃刀:锋利与钝涩》,1998年。
它不是一个规则,更像是一种解决问题的启发式方法,在科学中常被用来偏爱假设较少的简单假设,而非假设较多的复杂假设。
科学中有一个由来已久的传统,即在其他条件相同的情况下,简单理论优于复杂理论。这被称为奥卡姆剃刀,以中世纪哲学家奥卡姆(或奥克汉姆)的威廉命名。
— 第197页,《数据挖掘:实用机器学习工具与技术》,2016年。
具有更多假设的复杂假设的问题在于它们可能过于具体。
它们可能包含手头或易于获得的特定案例的细节,反过来可能无法泛化到新案例。也就是说,一个假设的假设越多,它的应用范围就越狭窄。相反,较少的假设意味着一个更普遍的假设,对更多案例具有更大的预测能力。
- 简单假设:假设较少,因此适用性广。
- 复杂假设:假设较多,因此适用性窄。
这在机器学习中具有重要意义,因为我们正试图从具体观测中泛化到新的未见案例,这被称为归纳推理。
如果奥卡姆剃刀表明更复杂的模型不能很好地泛化,那么在应用机器学习中,它建议我们应该选择更简单的模型,因为它们在新数据上的预测误差会更低。
如果这是真的,那么我们如何证明使用集成机器学习算法是合理的呢?
顾名思义,集成机器学习算法比单个机器学习模型更复杂,因为它们由许多独立的机器学习模型组成。
奥卡姆剃刀指出,集成学习算法的额外复杂性意味着它们将不会像在相同数据集上拟合的更简单模型那样泛化得好。
然而,当新数据上的预测技能是最重要的考虑因素时,例如在机器学习竞赛中,集成机器学习算法是主要的解决方案。集成算法已被广泛研究,并在多次研究中表明它们不会过拟合训练数据集。
根据经验观察,某些集成技术通常不会使模型过拟合,即使集成模型包含数千个分类器。
— 第40页,《使用集成方法进行模式分类》,2010年。
这种不一致性如何调和?
想开始学习集成学习吗?
立即参加我为期7天的免费电子邮件速成课程(附示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
机器学习的奥卡姆两把剃刀
理论上更简单的模型泛化更好与实践中集成等复杂模型泛化更好之间的冲突,长期以来被视为一个不便的经验发现而被忽视。
在1990年代后期,Pedro Domingos 专门研究了这个问题,并发表在1996年获得奖项的论文《奥卡姆的两把剃刀:锋利与钝涩》和1999年后续期刊文章《奥卡姆剃刀在知识发现中的作用》中。
在这项工作中,Domingos 将问题定义为奥卡姆剃刀在应用机器学习中通常主张的两个具体含义,他称之为机器学习中的“奥卡姆的两把剃刀”,它们是(摘自论文):
- 第一把剃刀:给定两个具有相同泛化误差的模型,应优先选择更简单的模型,因为简单性本身就是 desirable 的。
- 第二把剃刀:给定两个具有相同训练集误差的模型,应优先选择更简单的模型,因为它可能具有更低的泛化误差。
然后,Domingos 列举了大量来自机器学习理论和经验研究的每个剃刀的赞成和反对例子。
第一把剃刀认为,如果两个模型在训练期间未见数据上的预期性能相同,我们应该选择更简单的模型。Domingos 强调,这把剃刀成立,并在机器学习项目中提供了一个很好的启发式方法。
第二把剃刀指出,如果两个模型在训练数据集上表现相同,那么应该选择更简单的模型,因为它在用于对新数据进行预测时有望更好地泛化。
这表面上看起来是合理的。
这就是在机器学习项目中不采用集成算法的理由,因为它们与其他模型相比非常复杂,预计不会泛化。
结果表明,这把剃刀无法得到机器学习文献证据的支持。
所有这些证据都指向一个结论,即第二把剃刀不仅普遍不成立;在KDD所应用的领域中,它通常也是错误的。
— 《奥卡姆的两把剃刀:锋利与钝涩》,1998年。
奥卡姆剃刀与集成学习
当你仔细思考一段时间后,这个发现开始变得直观。
例如,在实践中,我们不会仅仅根据模型在训练数据集上的表现来选择机器学习模型。我们直观地,或者可能是经过大量经验后,默认为训练集上的性能估计对保留数据集上的性能估计很差。
我们之所以有这种预期,是因为模型可能会过拟合训练数据集。
然而,不那么直观的是,过拟合训练数据集反而能导致在留存测试集上获得更好的性能。这在系统研究的实践中已被多次观察到。
一种常见情况是,在模型学习的每次迭代中,例如支持增量学习的模型的训练周期或迭代次数中,绘制模型在训练数据集和留存测试数据集上的性能曲线。
如果将训练数据集上的学习设置为持续进行大量训练迭代并观察曲线,通常会发现训练数据集上的性能会降至零误差。这是预料之中的,因为我们可能会认为模型在拥有足够的资源和时间进行训练后会过拟合训练数据集。然而,测试集上的性能会持续改善,即使训练集上的性能固定在零误差。
…偶尔,泛化误差会在训练误差达到零后很长一段时间内持续改善。
— 第40页,《数据挖掘中的集成方法》,2010年。
这种行为可以在像boosting和bagging这样的集成学习算法中观察到,其中在将额外的模型成员添加到集成模型中时,保留数据集上的性能将继续提高。
一个非常令人惊讶的发现是,执行更多的boosting迭代可以减少新数据上的错误,即使组合分类器在训练数据上的分类错误已经降至零之后很久。
— 第489页,《数据挖掘:实用机器学习工具与技术》,2016年。
也就是说,模型复杂性逐渐增加,系统性地降低了未见数据(例如泛化误差)上的误差。额外的训练无法改善训练数据集上的性能;它没有任何可能改进的空间。
进行更多的Boosting迭代,而没有降低训练误差,并不能更好地解释训练数据,而且它肯定会增加组合分类器的复杂性。
— 第490页,《数据挖掘:实用机器学习工具与技术》,2016年。
这一发现直接驳斥了第二把剃刀,并支持了多明戈斯关于放弃第二把剃刀的论点。
第一个观点基本没有争议,而第二个观点如果从字面上理解,则是错误的。
— 《奥卡姆的两把剃刀:锋利与钝涩》,1998年。
这个问题已经被研究过,通常可以用集成算法学习如何对其在训练数据集上的预测更有信心来解释,这些信心会延续到保留数据上。
通过考虑分类器对其预测的置信度,可以解决这一矛盾。
— 第490页,《数据挖掘:实用机器学习工具与技术》,2016年。
第一把剃刀仍然是应用机器学习中重要的启发式原则。
这把剃刀的关键在于“其他条件相同”的限定。也就是说,如果比较两个模型,它们必须使用其在保留数据集上的泛化误差进行比较,或使用K折交叉验证进行估计。如果在此情况下它们的性能相同,那么这把剃刀就可以发挥作用,我们可以选择更简单的解决方案。
这不是选择模型的唯一方法。
我们可能会选择一个更简单的模型,因为它更容易解释,如果模型可解释性比预测能力更重要的项目要求,那么这仍然是有效的。
当模型参数的数量被视为复杂度的度量时,集成学习算法无疑是一种更复杂的模型。因此,机器学习中一个悬而未决的问题涉及替代的复杂度度量。
进一步阅读
如果您想深入了解,本节提供了更多关于该主题的资源。
相关教程
论文
- 奥卡姆的两把剃刀:锋利与钝涩, 1998.
- 奥卡姆剃刀在知识发现中的作用, 1999.
书籍
- 数据挖掘中的集成方法:通过结合预测提高准确性, 2010.
- 使用集成方法进行模式分类, 2010.
- 《数据挖掘:实用机器学习工具与技术》(Data Mining: Practical Machine Learning Tools and Techniques), 2016.
文章
总结
在本教程中,您了解了如何调和奥卡姆剃刀与集成机器学习。
具体来说,你学到了:
- 奥卡姆剃刀是一种启发式原则,它建议选择更简单的机器学习模型,因为它们有望更好地泛化。
- 该启发式方法可分为两把剃刀,其中一把是正确的,仍然是一个有用的工具,而另一把是错误的,应该被抛弃。
- 像Boosting这样的集成学习算法提供了一个具体的例子,说明第二把剃刀如何失效,以及增加的复杂性如何导致更低的泛化误差。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
谢谢杰森的这篇文章,发人深省!!
“然而,不那么直观的是,过拟合训练数据集反而能导致在留存测试集上获得更好的性能。这在系统研究的实践中已被多次观察到。”
我在一个功耗预测竞赛中看到了这种情况。一个顶级决赛选手将集成模型结合起来,这些模型共同仍然过拟合/记忆了训练数据。在保留数据上的误差要高得多。
不客气。
有趣,谢谢分享。
奥卡姆剃刀是归纳偏差还是偏好偏差的一个例子?请解释。
听起来像一道作业题,也许可以问你的老师——你已经付钱给他们教育你了。