过拟合
Overfitting
过拟合(Overfitting)是指模型在训练集上表现极好,但在测试集或新数据上表现较差的现象,是机器学习中最常见的泛化问题之一。
详细解释
过拟合(Overfitting)本质上是一种「模型把训练数据的噪声也学进去了」的现象。一个学生只刷往年真题但不做新题,上了考场遇到新题型就会崩溃——这就是过拟合。
数学上,模型在训练集上 loss 趋近于 0,但验证集 loss 反而上升(两条曲线「剪刀差」扩大),是过拟合的典型信号。
过拟合的成因
- 模型过强:7B 模型只学 100 条样本
- 数据过少:训练集 < 任务复杂度
- 训练过久:epoch 太多,模型开始「背诵」数据
- 特征噪声:数据中包含与标签无关的「虚假相关」
缓解过拟合的 8 大方法
| 方法 | 原理 |
|---|---|
| 更多数据 | 最根本,数据多样性 = 抗过拟合 |
| 数据增强 | 文本回译、同义词替换、随机掩码 |
| 正则化(L1/L2) | 限制权重幅度 |
| Dropout | 随机失活神经元 |
| Early Stopping | 验证集 loss 上升即停 |
| 降低模型容量 | 7B 改用 1.5B 蒸馏版 |
| LoRA 替代全量 | 限制可训练参数比例 |
| 交叉验证 | K-fold 评估泛化能力 |
学习曲线示意
loss
│
│ ─── train_loss (持续下降)
│
│ ╱── val_loss (先降后升 = 过拟合)
│ ╱
│──────╳─────────► epoch
理想做法:在 val_loss 最低点保存 Checkpoint(early stopping)。
常见问题
欠拟合和过拟合的区别?
欠拟合(Underfitting):训练集 loss 就很高,模型能力不足。解决:换更大的模型、加特征、减少正则化。
大模型时代还会过拟合吗?
会,而且更隐蔽。LLM 容易「幻觉化」训练集细节:把张三的私人信息背下来并在回答中泄露。SFT 时务必做数据脱敏 + 评估集覆盖度检查。