Math-08.泛化与正则-10.过拟合诊断与调参

本页汇总过拟合诊断超参数调优实践——把 01–07 的工具串成 workflow。

段末注释学习曲线(learning curve)绘制训练集大小与 train/val 分数的关系;验证曲线(validation curve)绘制单超参与 train/val 分数的关系。

系列入口00.系列规划 | 前置:06 交叉验证


1. 学习曲线(D2–D3)

图 1 高方差 vs 高偏差曲线形状

随训练样本量 $n$ 增加:

形状 诊断 对策
train↓ val↓,gap 大 高方差 正则、更多数据、简单模型
train↑ val↑,都低 高偏差 复杂模型、更好特征
train≈val,都高 欠拟合 增容量、减正则

2. 验证曲线(D3)

图 2 lambda 与 train/val

固定其他超参,扫描 $\lambda$、树深度、hidden size:

  • train 随容量↑ 几乎单调改善
  • val 常呈 U 形 → 选谷底

3. 调参策略(D7)

图 3 调参 workflow

步骤 内容
1 建立 baseline + 合理 CV(06
2 学习曲线判断偏差/方差(02
3 粗搜 lr、正则(0304
4 早停定 epoch(05
5 封存 test,最终评一次

搜索:GridSearchCV(维数低)、RandomizedSearchCV(维数高)。


4. 跨领域调参重点(D7)

领域 优先超参 说明
深度视觉 lr、weight decay、增强强度 预训练 backbone 微调 decay 小
NLP 微调 lr(小)、epoch(少)、warmup 易 catastrophic forgetting
XGBoost 表格 max_deptheta、子采样 early_stopping_rounds
随机森林 n_estimatorsmax_features OOB 监控
小样本生物 强正则、浅模型、Group CV 避免复杂深度模型
推荐系统 嵌入维、L2、负采样比 关注冷启动 holdout

5. 局限(D8)

图 4 调参陷阱

陷阱 说明
在 test 上调参 test 失效
搜索空间过大 + 多次 CV 间接过拟合验证集 → Nested CV
只调 lr 不调正则 泛化仍差
忽视随机种子 单次结果不稳定,多次重复

6. sklearn 示例(D12)

1
2
3
4
5
6
7
8
9
10
from sklearn.model_selection import validation_curve
import numpy as np
from sklearn.linear_model import Ridge

X = np.random.randn(200, 10)
y = X @ np.random.randn(10) + 0.1*np.random.randn(200)
alphas = np.logspace(-3, 2, 10)
train_s, val_s = validation_curve(
Ridge(), X, y, param_name="alpha", param_range=alphas, cv=5)
print("best alpha ~", alphas[val_s.mean(axis=1).argmin()])

7. 小结

诊断看曲线,调参用 CV,报告靠 test。大模型特有现象见 20 Scaling Laws

系列导航07 集成 | 00 规划

-------------本文结束感谢您的阅读-------------