首页 / 新闻中心

大学生的 AI 通识课⑦|过拟合与欠拟合:死记硬背与学得太浅

2026-10-03 · techsulian.com

大学生的 AI 通识课⑦|过拟合与欠拟合:死记硬背与学得太浅

阅读约 10 分钟 | 这是《人工智能概论》科普系列的第 7 篇。 上一篇《数据集的秘密:训练集、验证集、测试集》回答了“模型到底是在学会,还是在背答案”。这一篇,我们来看看模型在追求“举一反三”的路上,最容易掉进的两个坑。 期末考试前,老师发了一本包含 200 道例题的复习册。三位同学用了三种完全不同的复习方法: 小 A :只翻了翻目录,记住了几个最基本的

阅读约 10 分钟 | 这是《人工智能概论》科普系列的第 7 篇。

上一篇《数据集的秘密:训练集、验证集、测试集》回答了“模型到底是在学会,还是在背答案”。这一篇,我们来看看模型在追求“举一反三”的路上,最容易掉进的两个坑。

期末考试前,老师发了一本包含 200 道例题的复习册。三位同学用了三种完全不同的复习方法:

小 A :只翻了翻目录,记住了几个最基本的公式。结果 复习册上的题做不对,考试也考不好 。

小 B :把 200 道例题连同答案一字不落地背了下来。复习册上的题 道道全 对,可考试题目稍微换了个说法、改了个数字,他就不会了。 练习满分,考试翻车。

小 C :认真做了例题,但更注重理解每道题背后的原理和方法。复习册上偶尔也会错一两道,但 考试成绩最好 。

在机器学习里,小 A 叫作 欠拟合 ,小 B 叫作 过拟合 ,而小 C,就是我们想要的模型。

上一篇我们说,机器学习的终极目标是 泛化能力 ——举一反三。今天我们就来看看,模型在追求这个目标时最容易掉进的两个坑。

“拟合”(Fitting)这个词听起来很学术,其实意思很简单: 用一个模型(比如一条曲线)去贴合一堆数据。

假设我们记录了一些同学每天的学习时长和考试成绩,把它们画在坐标图上,得到一些散点。现在要画一条线,来描述“学习时长”与“成绩”之间的关系。我们可以画出三种线:

左图(欠拟合) :用一条几乎水平的直线,根本没反映出“学得越久、成绩越好”的趋势;

中图(刚刚好) :一条平滑的曲线,大致贴合数据,抓住了主要规律;

右图(过拟合) :一条弯弯绕绕的曲线, 精确地穿过了每一个点 ,看起来完美,却把数据中的偶然波动也当成了规律。

🐺 二、过拟合:把“噪声”当成了“规律”

现实中的数据总是带有 噪声 (Noise)——偶然的、随机的波动。比如某位同学学习时间很长,但考试那天恰好感冒了,成绩偏低。这个数据点反映的不是“学习时长与成绩的规律”,而是一次意外。

过拟合的模型会把这些意外也当作规律认真记下来。结果就是:

在训练集上表现极好,在新数据上表现很差。

说人话 :过拟合就是 “死记硬背,不求甚解” ,把个别现象当成了普遍规律。

去某个城市旅游,碰到一位出租车司机绕路,就断定“这个城市的人都不诚信”—— 用太少的样本得出了太复杂(太具体)的结论 ;

某次穿红色衣服考试考得很好,从此每次考试都穿红衣服—— 把偶然的巧合当成了因果规律 。

一个经典实验:它认的是“狼”,还是“雪”

2016 年,一组研究者在介绍模型解释方法的论文中,特意构造了这样一个实验:训练一个模型区分 哈士奇 和 狼 。模型的准确率看起来不错,但当研究者用工具查看模型到底“看”的是图片哪个部分时,发现它主要依据的是 背景里有没有雪 ——因为训练图片中的狼大多站在雪地里。

于是,一张站在雪地里的哈士奇照片,被模型自信地判为了“狼”。

这个模型没有学到“狼长什么样”,而是抓住了训练数据中一个 偶然的、与本质无关的特征 。这类问题常被称为 “捷径学习” (Shortcut Learning),它和过拟合一样,都会导致模型在新场景下“翻车”。

欠拟合正好相反: 模型太简单,或者学得太少,连训练数据中的基本规律都没有掌握。

在训练集上表现就很差,在新数据上当然也好不了。

说人话 :欠拟合就是 “囫囵吞枣,浅尝辄止” 。

用一条直线去描述一个明显弯曲的关系;

只用“面积”一个特征去预测房价,忽略了地段、房龄、学区等重要因素;

训练刚开始没多久就停下了,模型还没来得及学会。

相比之下,欠拟合比较容易发现(因为训练成绩就不好),也比较容易解决;而过拟合更隐蔽,也更常见,是机器学习实践中的“头号大敌”。

🔍 四、如何诊断看两个成绩的“差距”

还记得上一篇的 训练集 和 验证集 吗诊断过拟合和欠拟合,关键就是对比模型在这两者上的表现:

表 | 用“训练成绩”和“验证成绩”的差距来诊断(表中数字为示意数据)。

我们还可以画出训练过程中两个成绩的变化曲线:

训练初期:两条曲线都在下降,模型在“学到真东西”;

越过某个点之后:训练误差继续下降,验证误差却开始 回升 ——模型开始“死记硬背”了;

这个拐点,就是我们想要的 最佳点 。上一篇讲的 “提前停止” ,就是在这里按下暂停键。

对付欠拟合:让模型“学得更多、更深”

使用更复杂的模型 :比如从直线换成曲线,从浅层网络换成深层网络;

增加更有用的特征 :给房价模型加上地段、学区等信息;

1. 增加训练数据——最有效的“良药”

例题见得越多、越丰富,就越难靠死记硬背应付,只能去理解规律。回到“哈士奇与狼”的例子:如果训练集里有很多站在草地上的狼、站在雪地里的哈士奇,模型就没法再靠“看雪”来偷懒了。

2. 数据增强(Data Augmentation)——“无中生有”地扩充数据

真实数据不够时,可以对已有数据做变换,“造”出新样本。比如一张猫的照片,经过翻转、旋转、裁剪、调亮度,就能变成十几张“新”照片。模型由此学会: 无论猫朝左还是朝右、在明处还是暗处,它都是猫。

3. 正则化(Regularization)——给模型的“复杂度”加一个惩罚

这是对付过拟合最经典的方法。它的思想是:在训练目标中加入一项“惩罚”, 模型越复杂,惩罚越大 。于是模型不得不在“贴合数据”和“保持简单”之间寻找平衡。

打个比方 :写一篇议论文,要求观点正确,同时规定“字数越多扣分越多”。这样学生就不会堆砌无关的细节,而会用最简洁的语言抓住核心论点。

这背后是一条古老的哲学原则—— 奥卡姆剃刀 :“如无必要,勿增实体。”在同样能解释数据的情况下, 越简单的模型往往越可靠 。

4. Dropout——训练时随机“让部分神经元休息”

这是深度学习中常用的技巧:每次训练时,随机让网络中一部分神经元“暂停工作”。这样,网络就不能依赖某几个特定的神经元“死记”答案,而必须让知识分散在整个网络中。

打个比方 :一个项目小组,如果每次开会都随机有几个人请假,那么每个成员都得对整个项目有所了解,而不能全靠某一位“大神”。团队反而会变得更稳健。

5. 提前停止(Early Stopping)

如前文所说,在验证误差开始上升时停止训练。

直接选择一个更简单的模型,比如减少神经网络的层数或参数。

学术上,常用 偏差 (Bias)和 方差 (Variance)来描述这两种问题。我们用“射箭”来理解:

围绕靶心,但东一支西一支 —— 过拟合

箭很集中,但都偏离靶心 —— 欠拟合

偏差高 :模型有“系统性的偏见”,太简单,总是预测不准——对应 欠拟合 ;

方差高 :模型对训练数据太敏感,换一批数据,结果就大变样——对应 过拟合 。

一般来说,模型越简单,偏差越高、方差越低;模型越复杂,偏差越低、方差越高。二者此消彼长,这就是机器学习中著名的 偏差—方差权衡 (Bias-Variance Tradeoff)。

💡 拓展思考 :有趣的是,今天的大模型拥有数千亿个参数,远远超过传统理论认为“必然过拟合”的程度,泛化能力却依然很强。研究者还观察到,模型规模继续增大时,测试误差可能会“先升后降”,这被称为 “双下降” (Double Descent)现象。为什么“超大模型”没有陷入过拟合这仍是当前深度学习理论中的前沿问题。所以,偏差—方差权衡是理解传统机器学习的重要框架,但在深度学习中,它并不是故事的全部。

过拟合和欠拟合,不只是机器学习的问题,也是 我们每个人学习时的问题 :

只刷题不总结,容易 过拟合 ——题型一变就不会;

只看书不练习,容易 欠拟合 ——道理都懂,一做就错;

真正的学习,是在大量练习中 提炼出本质规律 ,做到举一反三。

从这个意义上说,训练一个好模型,和成为一个好学生,道理是相通的。

欠拟合是“学得太浅”,训练和测试都差;过拟合是“死记硬背”,训练很好、测试很差;我们追求的,是抓住本质规律、能够举一反三的模型。

一个模型在训练集上的准确率是 98%,在验证集上是 65%。它最可能出现了什么问题你会尝试哪些方法来改进

请举一个你在生活或学习中“过拟合”的例子:你曾经从少数几次经历中得出了什么“规律”,后来发现并不成立

周志华,《机器学习》第 2 章“模型评估与选择”(2.1 节“经验误差与过拟合”、2.5 节“偏差与方差”)

伊恩·古德费洛等,《深度学习》(俗称“花书”)第 5、7 章,人民邮电出版社

Marco Tulio Ribeiro et al., "Why Should I Trust You": Explaining the Predictions of Any Classifier , 2016.(“哈士奇与狼”实验出处)

techsulian.com风险提示财经资料
本文仅用于资料整理和学习交流,不构成投资建议,不承诺收益,也不替代个人风险判断。