返回首页

Roadmap
更新于 2026年10月27日 全文 1342 字未阅读

过拟合:模型的复杂度#

上一节介绍过下面这个模型,它在测试集上把很多树都分错了。

图 16. 与图 13 同一幅画面:方块被上一节那套弯折的多段边界切成蓝橙两块,里面铺着一批新树,其中十来个被打上叉——被分进了错误的区域。
图 16. 上一节中的过拟合模型

可以看到,上面那个模型里塞满了各种复杂形状。那如果换成一个更简单的模型,会不会有更好的表现?假设你把复杂模型换成一个简单到极点的模型——一条直线。

图 17. 同一片方块林,但只用一条从左上到右下的斜直线分区:右上方的蓝色区域判定为健康树,左下方的橙色区域判定为病树。只有四棵树被判错,比图 16 少得多。
图 17. 一个简单得多的模型

在新数据上,简单模型比复杂模型泛化得更好。也就是说,在测试集上,简单模型的预测比复杂模型更准。

简单战胜复杂,这件事已经延续了很久。其实对简单的偏好,可以追溯到古希腊。几个世纪之后,十四世纪一位名叫威廉·奥卡姆(William of Occam)的修士,把这种对简单的偏好总结成了一门哲学,就是奥卡姆剃刀。这门哲学至今仍是许多学科(包括机器学习)的基本原则之一。

注意: 复杂模型在训练集上通常优于简单模型;但在测试集上(这才是更重要的那一项),简单模型通常优于复杂模型。

练习:检验你的理解#

第1题: 你在推导一个物理公式。下面哪个公式更符合奥卡姆剃刀?

  • A. 一个含3个变量的公式

  • B. 一个含12个变量的公式

第2题: 你刚启动一个全新的机器学习项目,正要挑选第1批特征。你应该选多少个特征?

  • A. 挑 1–3 个看起来预测能力很强的特征

  • B. 挑 4–6 个看起来预测能力很强的特征

  • C. 尽可能多地挑,好早点看出哪些特征预测能力最强


正则化#

机器学习模型必须同时满足两个互相冲突的目标:

  • 把数据拟合好。

  • 尽可能简单地把数据拟合好。

让模型保持简单的一种做法,是给复杂模型施加惩罚;也就是说,在训练过程中强迫模型变得更简单。而给复杂模型施加惩罚,正是 正则化(regularization) 的一种形式。

一个正则化的类比: 假设阶梯教室里的每个学生都带着一个小蜂鸣器,蜂鸣器发出的声音让教授很烦。学生们会在教授讲得太复杂时按下蜂鸣器。教授被吵烦了,只好把课讲得简单些。教授会抱怨:「我一简化,就不够精确了。」学生们则会说:「唯一的目标就是讲得足够简单,让我能听懂。」慢慢地,蜂鸣器就把教授「训练」成了会讲出恰当简单程度的课——即便那个更简单的讲法没那么精确。

损失与复杂度#

到目前为止,本课程一直在暗示,训练的唯一目标就是最小化损失,也就是:

$$\text{minimize(loss)}$$

前面已经看到,一心只想着最小化损失的模型很容易过拟合。更好的训练优化算法,会最小化损失与复杂度的某种组合:

$$\text{minimize(loss + complexity)}$$

可惜的是,损失与复杂度通常是反着走的。复杂度一增加,损失就下降;复杂度一降低,损失就上升。你应该去找一个合理的中间地带,让模型在训练数据和真实数据上都能做出好的预测。也就是说,你的模型要在损失与复杂度之间,找到一个合理的折中。

什么是复杂度#

你已经看过好几种量化损失的方式了。那复杂度该怎么量化?先从下面这道练习找找感觉。

练习:检验你的直觉#

第3题: 到目前为止,我们对复杂度到底是什么一直说得很含糊。下面这几个想法,你觉得哪些算是合理的复杂度度量?

  • A. 复杂度是模型权重的函数

  • B. 复杂度是模型权重平方的函数

  • C. 复杂度是模型中所有特征偏置的函数


MLWM: 关于 $L_1$ 与 $L_2$ 正则化背后的权重衰减机制,可以参见「4.4 L1与L2正则化原理:权重衰减与过拟合抑制」;过拟合的成因与常见应对手段,参见「4.3 过拟合处理方法:常见原因、表现与正则化实战」。


关键术语:

  • $L_1$ 正则化
  • $L_2$ 正则化
  • 正则化
阅读 --