过拟合与正则化:一个不严谨但有用的直觉
新手最容易误解的一个词是「过拟合」:以为模型太强才会过拟合。其实反过来——过拟合恰恰是因为模型太想讨好训练数据。
记忆 ≠ 理解
想象一道题你做错,老师让你「把这道题背下来」。你背了,考试遇到原题满分,但换个数字就不会。这就是过拟合:模型记住了训练集的噪点,而不是背后的规律。
噪点是什么?是数据采集时的偶然波动、标注里的小错误、恰好出现的异常样本。真实规律则对所有类似数据都成立。
正则化:给「努力」加税
模型拟合数据时,目标通常是「预测误差最小」。如果不加约束,它会不择手段地把误差压到零——包括去拟合那些噪点。
正则化在损失函数里加一项惩罚:
新目标 = 预测误差 + λ × 模型复杂度
λ 越大,模型为了「复杂」付出的代价越高,就越倾向于用简单、平滑的函数去概括,而不是去描每一个训练点的毛刺。
L1 与 L2 的直觉差别
- L2(岭回归):惩罚权重的平方和,让权重普遍变小、更平滑,但不强制归零;
- L1(Lasso):惩罚权重的绝对值,会把不重要的特征权重直接压到 0,顺带做了特征选择。
一句话总结
过拟合是模型对训练集太忠诚;正则化是教它「差不多就行,别太较真」。
这跟人的生活也挺像:对过去的经验太较真,反而会失去对未来的适应力。