一句话定义:过拟合(overfitting)是模型把训练数据的细节甚至噪声都记住了,换到新数据上就表现变差;正则化(regularization)是一类防止过拟合的手段,通过给「把训练集做到极致」这件事增加成本,逼模型去学规律,而不是背答案。
打个比方
两个学生备考。第一个把往年真题的答案全背下来,真题重做能拿满分,换一套新题就崩——这就是过拟合。第二个理解了公式怎么推、题型怎么变,真题分数未必满分,但新题也稳——这叫泛化(generalization)。
正则化相当于老师加了一条规矩:「解题步骤不许超过三行」「必须能口述思路」。死记硬背这条路被堵住,学生只能去理解结构。
为什么会发生
当模型容量(参数量、层数)远大于数据所包含的信息量时,它有足够的自由度去拟合每一个样本点,连标注错误都一起学进去。极端情况是模型几乎记住了整张训练集:训练损失接近 0,验证损失却开始往上走。
判断信号其实很朴素:
| 现象 | 诊断 |
|---|---|
| 训练损失低、验证损失高,且差距大 | 过拟合 |
| 训练损失和验证损失都高 | 欠拟合 |
| 两者都低且彼此接近 | 拟合恰当 |
常见做法
- L1 / L2 正则:在损失函数里加上权重的绝对值之和或平方和,惩罚「权重过大」,让模型输出更平滑。L1 容易把一部分权重压到 0,顺带起到特征选择的作用。
- AI 词典:Dropout">Dropout:训练时随机「关掉」一部分神经元,逼网络不要依赖某几条固定通路。
- 早停(early stopping):验证损失开始反弹就停下,别硬练。
- 数据增强(data augmentation):把图片翻转、裁剪、加噪,等效于把数据变多。
- 简化模型:减层、减参数,最朴素也常常最有效。
- 更多数据:最根本的解法,没有之一。
容易混淆的地方
过拟合和欠拟合是两种相反的失败方向,不是一回事;正则化也不是唯一解药,增加数据、降低模型复杂度同样有效,而且通常更治本。正则化本质是刹车——它牺牲一点训练集上的表现,换验证集上的稳定。
对实际工作意味着什么
做模型的人看到「训练集准确率很高、线上却掉一大截」,第一反应不该是调超参,而是先确认数据量够不够、验证集划分是否靠谱、训练和线上的数据分布是否一致。这几件事没查清楚,加多少正则化都是治标。
不写模型的职场人也能用上这个视角:一个在演示数据上完美、换个场景就开始胡说八道的系统,往往就是过拟合的痕迹。评估 AI 产品时,多问一句「它在新场景下测过吗」,比看演示更有信息量。
至于各框架里正则化项的具体参数默认值和推荐范围,各家实现不同,以官方文档为准。
