AI-S1-04-过拟合 (Overfitting) 与 欠拟合 (Underfitting)

78 阅读6分钟

昨天我们聊了“模型”和“训练”,知道了AI的学习成果是一个“模型”。但我们怎么知道这个模型是学得好,还是在“死记硬背”呢?这就引出了今天至关重要的概念。

学习计划第四天:过拟合 (Overfitting) 与 欠拟合 (Underfitting)

今日概念:过拟合 (Overfitting) 和 欠拟合 (Underfitting)。

一句话总结过拟合是模型把练习题背得太熟,导致一考新题就懵圈;欠拟合是模型连练习题都没学明白。

通俗比喻:两种典型的“坏”学生

我们继续用学生备考的例子:

1. 欠拟合 (Underfitting) - “学渣”

  • 你给了他一本练习册(训练数据),让他学习。结果他学得一塌糊涂,练习册上的题(训练集)他都做不对,正确率只有50%。那么正式考试(测试集)时,他自然也考不好。

  • 表现:在训练和测试中,表现都很差。

  • 原因:模型太简单了(或者说学生没用心学),连最基本的规律都没掌握。

2. 过拟合 (Overfitting) - “书呆子”

  • 这个学生极其“用功”,他把练习册(训练数据)上的每一道题,连同答案,甚至题目的标点符号都背得滚瓜烂熟。你在练习册里随便抽一道题考他,他能拿满分。

  • 但是,到了正式考试(测试集),题目稍微变了点花样(比如把“小明买苹果”换成“小红买香蕉”),他就傻眼了,因为他背的不是解题方法,而是题目的答案。结果考试成绩一塌糊涂。

  • 表现:在训练中表现极好,但在测试中表现很差。

  • 原因:模型太复杂了,它不仅学到了数据中的普遍规律(信号),还学到了训练数据里特有的、偶然的“噪声”(比如练习册的印刷错误)。它失去了泛化能力

我们想要的好学生(理想模型):他通过做练习册,掌握了通用的解题思路和原理。所以在练习册上表现不错,在正式考试中也能举一反三,取得好成绩。

“20分钟”细嚼慢咽

1. 如何科学地“考试”?—— 数据集划分

为了避免模型“偷看”考试题目,我们在训练开始前,就会把所有数据分成三份:

  • 训练集 (Training Set):占比最大(约70-80%)。这是模型的“教科书和练习册”,用来进行训练,学习参数。

  • 验证集 (Validation Set):占比约10-15%。这是“模拟考试卷”。在训练过程中,我们会时不时用它来评估模型,看看模型有没有开始“死记硬背”(出现过拟合),并根据其表现来调整“学习策略”(比如什么时候停止学习)。

  • 测试集 (Test Set):占比约10-15%。这是“最终高考卷”。这份数据模型在训练和验证阶段绝对不能看到。只有当模型完全训练好之后,才用它来做最后一次评估,得到的分数才是模型在真实世界中的“最终成绩”。

2. 欠拟合 (Underfitting) 的细节

  • 诊断:训练集的准确率和测试集的准确率都很低。

  • 病因:通常是模型本身太简单了。比如,你想用一条直线去预测一个明显是曲线关系的房价走势,那肯定预测不准。

  • 治疗方案

    • 换用更复杂的模型(比如从直线换成曲线模型)。

    • 增加更多的特征(比如预测房价时,除了面积,再加入楼层、朝向等信息)。

    • 减少“正则化”(这是防止过拟合的一种手段,我们后面可能会提到,现在可以理解为“减少对书呆子的束缚”)。

3. 过拟合 (Overfitting) 的细节

  • 诊断:训练集的准确率非常高(比如99%),但测试集的准确率很低(比如70%)。两者差距巨大。

  • 病因:模型太复杂,相对于数据的规律来说,它的“记忆力”太强了。数据量太少也容易导致过拟合,因为几道题很容易就背下来了。

  • 治疗方案

    • 增加数据量:这是最有效的方法。给“书呆子”做更多的练习题,他就很难把所有题都背下来,只能被迫去学习规律。

    • 数据增强 (Data Augmentation):在已有数据基础上创造新数据。比如在图像识别中,把一张猫的图片旋转、裁剪、改变亮度,就变成了“新”的训练数据。

    • 使用更简单的模型

    • 正则化 (Regularization):在训练时加入一个“惩罚项”,如果模型试图去记那些犄角旮旯的细节(参数变得很极端),就给它扣分,逼迫它去学习更“平滑”、更通用的规律。

    • Dropout:一种在深度学习中常用的技术,可以理解为在训练时,随机让一些“神经元”(学生脑细胞)“偷懒”,不参与本次学习。这能防止学生过分依赖某几个“记忆力超群”的细胞,从而强迫整个大脑协同学习。

聊天时可以这样用

“我们模型的训练准确率都到99.9%了,但一上线效果就崩了。这太典型了,肯定是过拟合了,它根本没学会怎么处理真实世界的新情况。”

“这个任务,我们试了好几个简单的模型,效果都不好,在训练集上连60%的准确率都达不到。我怀疑是欠拟合,问题本身的复杂度可能比我们想的要高,得试试更强大的模型了。”

“评估一个AI模型好不好,千万不能只看它在训练集上的表现。关键要看它在测试集上的泛化能力怎么样,这才是它真正的价值所在。”

明日预告:我们已经了解了AI学习的基本流程和评价标准。现在,是时候揭开近年来AI大爆发的核心引擎——深度学习——的神秘面纱了。明天,我们将深入那个“俄罗斯套娃”的最里层,聊聊构成深度学习的基础单元:神经网络 (Neural Network) 与 神经元 (Neuron)。你会发现,它的灵感真的来源于我们的大脑!

今天的内容非常关键,它解释了为什么AI工程师大部分时间都在“调参”和处理数据,因为他们就是在和“过拟合”、“欠拟合”这两种问题作斗争。我们明天见!