其实你早已经了解过拟合了:
在这两种情况下,当你遇到从未见过的问题时,之前所学的专业知识就派不上用场了。
过拟合简单总结
过拟合是指机器学习模型记住了包括噪声和一次性细节在内的模式,它在训练集上表现完美,但遇到新数据时却表现不佳。
其实人也会出现过拟合,我们往往会假设未来的经历会和过去一样,而忽略了不确定性和情境的变化。
在本指南中,我们将探讨过拟合是如何发生的、如何识别它,以及如何避免它。
我们将从传统机器学习开始,然后再探讨过拟合在大语言模型(LLMs)中的表现。
想象一下,你绘制了一张学习时长与考试成绩的图表,你发现了一个上升趋势:学习时间越长,分数越高。
于是,你在这些点之间画了一条简单的直线(就像代数课上学过的斜截式):
分数 = 5 × 学习时长 + 60
这条直线无法完美地穿过每一个点或匹配每一个学生的成绩,但它抓住了两者之间的大致关系。
这就是一个良好的拟合,就像下面图中的蓝线一样。
但也许你想要更高的准确度,于是增加了模型的复杂度。
用一条弯弯曲曲的曲线来代替直线,试图穿过尽可能多的点,就像玩一个连点游戏,这就是图中的红线。

这样一来,模型除了学习到学习时长与成绩之间的一般规律外,还记住了异常值和噪声。
模型会认为,小王学习了三个小时,但在考试当天生病了,这件事很重要。
因此,当你给模型输入新数据时,它就会感到困惑,因为那些弯弯曲曲的曲线无法推广到新数据上。
在现实生活中观察到的数据总是存在差异,这就是为什么推广能力更重要。
你可以看到,下面右边那个过拟合的模型在面对不同的点时,会朝着小王曾经所在的位置弯曲。
它试图去捕捉小王,但小王已经不在那里了,当模型面对新输入的数据时,它会感到困惑,因为“小王规则”无法推广,这就是过拟合。

可以看到,上面左边图表中的红线(代表模型预测)正确捕捉到了多少实际学生考试成绩(黑点):大约十二个,从纸面上看,这看起来很棒,因为误差非常小。
但右边图表中的红线只与大约四个点相交,因此为了追求完美,模型对新一组学生的预测结果非常糟糕。
这些差距,即点与曲线之间的垂直距离,就是模型的误差。
在训练模型时,它试图尽可能接近这些点,以尽可能减少误差。你可以清楚地看到模型认为会发生的情况与实际发生的情况之间的差距。
在面对新的、未见过的数据时,点会出现在图表上的不同位置,此时误差会很大且不可预测。
这意味着,当模型面对未见过的测试数据或需要进行现实预测时,它的表现会很差。
在如今这个被人工智能包围的世界里,你可能会好奇,大语言模型是否也会出现同样的问题。
大语言模型(LLMs)会过拟合吗?
是的,大语言模型也会出现过拟合。
现代大语言模型的优点在于它们能够学习一般规律,坦率地说,它们的非确定性让它们感觉更像人类,而不那么机械。
但即便如此,大语言模型在处理小规模或过于具体的数据集进行微调时,也可能开始记住训练数据。
例如,想象一下,你用一家公司的内部客户支持聊天记录来对大语言模型进行微调。
如果操作不当,模型可能会开始重复真实的对话内容,包括私人信息或投诉摘要。
当训练数据包含敏感信息(如姓名或账号)时,这种情况尤其令人担忧,因为模型可能会记住并重复这些信息。
如果数据集过于狭窄或同质化,模型可能会“陷入”单一的情境中,而且如果模型训练过度,却没有足够的正则化,它可能会对见过的数据过于自信,但在新情况下却不可靠。
即使在海量数据上进行预训练(相当于模型的“小学教育”)时,开发人员也必须找到一个平衡点:训练太少,模型会欠拟合,表现混乱;
训练太多,模型又会开始记住那些不应该逐字记住的事实,我们希望教孩子们如何学习和应用知识,而不是让他们死记硬背,大语言模型也是如此。
这就是为什么现代大语言模型训练会采用以下技术:
Dropout 和权重衰减(类似于简单模型中的正则化)。这些技术可以防止模型对任何一个模式过于自信。
数据去重,以减少重复的例子。如果你反复给模型输入相同的句子,它可能会认为这是最重要的事情,并开始在回答中重复它。
精心策划的数据集,以避免偏差。并非所有数据都是好数据。如果你只用硅谷男性写的科技博客来训练模型,它就会开始认为这就是整个世界的样子。我们的目标是使用多样化的训练数据。
通过检查与训练数据逐字匹配的高置信度输出来监控记忆情况。训练结束后,研究人员会检查模型是否泄露了任何训练材料,尤其是姓名、电话号码或私人文件等敏感信息。
大语言模型的过拟合表现与传统机器学习模型略有不同,它可能表现为幻觉、对错误答案过于自信,以及失去适应性。
这会让模型变得缺乏创造力、更加偏见,并且尽管接受了海量的训练数据,却更容易自信地编造东西。
那么为什么一开始会出现过拟合呢?让我们换个角度,看看这在传统机器学习中是如何表现的,以及贪婪和懒惰的行为是如何开始的。
另外我们精心打磨了一套基于数据与模型方法的AI科研入门学习方案(已经迭代第7次),对于人工智能来说,任何专业,要处理的都只是实验数据,所以我们根据实验数据将课程分为了三种方向的针对性课程,包含 时序、影像、AI+实验室,我们会根据你的数据类型来帮助你选择合适的实验室,根据规划好的路线学习 只需3-5个月左右(很多同学通过学习已经发表了 sci 一区及以下、和同等级别的会议论文)学习形式为直播+录播,多位老师为你的论文保驾护航。
大家感兴趣可以直接添加小助手微信:ai000686通过后回复“咨询”既可。
6.2期课程大纲

为什么会出现过拟合?
机器学习模型既贪婪又懒惰。
我们可以把训练数据想象成一桌丰盛的自助大餐,而模型则如同一位饥肠辘辘的食客走进餐厅。
它没有像精明的食客那样,挑选一份营养均衡、包含各类典型食材的餐盘,而是将所有东西一股脑儿地堆在盘子里:既有真正有价值的信息,也有随机的异常数据,甚至混入了些不新鲜的“残羹冷炙”。
为什么会这样呢?因为它从未被告知哪些信息是关键相关的,哪些又是无关紧要的。
它只是单纯地试图“吞下”尽可能多的数据,以此“填饱肚子”(也就是最小化误差)。
实际上,模型并不具备人类那种有意识的懒惰、贪婪或是饥饿感。但从数学原理上讲,它们会沿着梯度方向不断探索,直至找到损失最小的点。当从数据中归纳出普遍规律(即推广)比直接死记硬背(即记忆)更加困难时,模型就会选择记忆数据这种捷径。
你可以将其想象成在损失的“地形图”中,模型总是沿着阻力最小的路径前行。
过拟合可能会在以下情况下发生:
过拟合只是模型按照我们的指示行事而已,但作为从业者,我们必须引导它去理解规则,而不仅仅是赢得游戏。
如果我们希望它具有推广能力,我们就需要停止奖励它只在当下表现完美,而要开始奖励它在任何时候都表现得相当不错。
那么,我们在构建模型时如何识别过拟合呢?
如何识别过拟合
我们怎么知道一个传统的机器学习模型是否过拟合了呢?
最简单的方法是比较它在训练数据和测试数据上的表现,一个过拟合的模型在见过的数据上表现极好,但在未见过的数据上表现却明显较差。
虽然没有确切的临界值,但一个好的经验法则是:如果你的模型在训练和测试之间的表现下降超过 10 - 15 个百分点,那就是一个危险信号。
这可能会是什么样子呢?
分类示例(使用准确率):
训练准确率 = 98%
测试准确率 = 82%
这 16 个百分点的差距表明模型对训练集过拟合了。
回归示例(使用 R²“拟合优度”指标):
训练集上的 R² = 0.92
测试集上的 R² = 0.65
该模型能够很好地解释训练数据,但在未见过的数据上却失去了预测能力。
其他警告信号:
如何避免过拟合
一个好的模型可能并不完美,但它始终接近完美,这才是关键。以下是一些我们可以避免模型过拟合的方法:
划分你的数据
永远不要用训练模型的数据来测试模型。使用训练集来训练模型,验证集来调整模型,测试集来评估模型。如果你的模型在训练数据上表现很好,但在测试数据上表现很差,那么它很可能过拟合了。
尽可能使用简单的模型
如果一个简单的线性模型效果很好,那就使用它。简单的模型不太可能去追逐噪声,因为它们做不到。
正则化
这就像给你的模型套上一个缰绳。正则化会对过于复杂的模型施加一个小惩罚,阻止它为了追求训练准确率的额外几分而过度弯曲。(如果你懂一些技术知识:L1/LASSO 和 L2/岭回归是常见的正则化技术。)
限制特征数量
仅仅因为你可以把数百个变量输入到模型中,并不意味着你应该这么做。你包含的特征越多,模型找到虚假模式的可能性就越大。使用领域知识、特征选择或降维技术(如主成分分析,PCA)来保持输入的有意义性。
交叉验证
不要依赖一次随机的训练/测试划分,交叉验证会在许多不同的划分上测试模型,并取结果的平均值。这样可以让你更可靠地估计模型在真正未见过的数据上的表现。
获取更多数据
这并不总是可能的,但更多的数据(尤其是多样化、有代表性的数据)可以帮助模型学习真实的模式,而不是噪声。更多的数据会让模型更少地找借口去记忆,而更多地有动力去推广。
我们已经了解了过拟合的“是什么”“如何发生”以及“为什么发生”。那么,让我们回顾一下我们所学到的内容。
总结
过拟合是指模型记住了数据,而不是学习了数据,它在训练数据上表现很好,但在面对新的、未见过的数据时却会失败,因为它追逐的是噪声,而不是真实的模式。
过拟合通常发生在模型过于复杂、数据过于有限或充满噪声,或者评估方法不当时。
防止过拟合的最佳方法是良好的实践:
将你的数据划分为训练集、验证集和测试集。
尽可能使用简单的模型。
应用正则化来控制复杂度。
限制不必要的特征。
使用交叉验证来获得更可靠的性能估计。
如果可能的话,增加更多的数据。
注意警告信号:从训练数据到测试数据的表现大幅下降、训练损失持续下降而验证损失上升,或者做出毫无意义的自信预测,最终目标是创造出能够适应新情况的模型。