Ch.11

正则化:超越死记硬背

防止模型变成只会背题集答案的「死记硬背王」的核心技术。对训练数据拟合过紧,稍有不同的新题就会出现崩盘,这就是过拟合(Overfitting)正则化(Regularization)在减小数据误差的同时,施加「不让模型变得过于复杂、生搬硬套」的惩罚(代价),从而剪掉枝杈、只学真正重要的模式,打造在实战(泛化)中更强的模型。

按章节的机器学习图示

选择章节后,下方图示会切换为该章节内容。可一览机器学习脉络。

在损失中加入「模型过于复杂」的惩罚项,使模型泛化而非死记。

对比无正则化过拟合有正则化泛化
① 无正则化 — 只最小化训练损失会导致过拟合
② 引入正则 — 损失 = 数据损失 + λ×惩罚;λ 越大权重越被压制
③ L2 — 惩罚 wj2\sum w_j^2 使权重保持较小
④ L1 — 惩罚 wj\sum |w_j| 使部分权重为 0(稀疏)
⑤ 泛化 — 合适的 λ 在训练与验证上均表现良好

正则化:损失+λ·惩罚以减轻过拟合、提升泛化。

正则化:超越死记硬背

正则化是什么?对复杂度的「惩罚」
当模型强行拟合训练数据中的细微噪声或例外时,公式会变得弯弯曲曲、毫无必要地复杂。正则化在计算总损失(Loss)时,不仅看「预测与正确答案差多少(误差)」,还会加上「模型有多复杂(权重大小)」作为惩罚。不想被罚的模型自然会保持更简单、干净的形式。
直观比喻:考前死记型 vs 吃透原理型
把题集(训练数据)逐字背下来的死记型学生,模拟考能拿满分,真考(新数据)却一塌糊涂。而吃透原理的学生,模拟考错一两题,真考却能稳定高分。正则化就像老师,强制模型「剪掉枝杈(过大权重)、只看主杆(核心模式)」,培养实战中的应变能力。
数学形式:两种「魔法公式」(L1 与 L2)
按惩罚方式,正则化大致分两种。
- L2(Ridge):用权重的平方作惩罚。目标函数为 J=MSE+λjwj2J = \text{MSE} + \lambda \sum_{j} w_j^2,把过大的权重均匀地压小。
- L1(Lasso):用权重的绝对值作惩罚。目标函数为 J=MSE+λjwjJ = \text{MSE} + \lambda \sum_{j} |w_j|,能把不重要特征的权重直接压成 0,只保留关键特征(稀疏)。
生活例子:垃圾邮件过滤与医疗诊断
过滤垃圾邮件时,若给训练垃圾邮件里偶然出现的普通词(如「你好」)很高权重,会把正常邮件也判成垃圾。加上正则化可以避免模型死盯某一个词(权重爆炸)。医疗诊断中,也能帮助 AI 在众多患者数据里不被「病服颜色」这类无关信息误导。
公式阅读:给初学者的拆解
- 总损失(L2 例)J=MSE+λjwj2J = \text{MSE} + \lambda \sum_{j} w_j^2
- JJ:我们想尽量变小的「最终成绩单」。越小模型越好。
- MSE\text{MSE}:表示预测与真实答案差多少的「误差分」
- λ\lambda(lambda):我们亲手设定的「惩罚强度」。越大越像严师,对复杂模型罚得越重;越小几乎不罚。
- jwj2\sum_{j} w_j^2(L2 惩罚):模型所有权重 ww 的平方和。权重稍大这项就猛增、JJ 变大,所以模型会自发把权重压小。
- L1 惩罚(λjwj\lambda \sum_{j} |w_j|
- L2 用平方,L1 用权重的绝对值 wj|w_j|。L1 像严格的整理师,把没用的权重毫不留情地清成 0
因为实战(泛化)表现才是真正目标
机器学习的价值不是在练习阶段,而是在遇到从未见过的数据(测试数据)时才体现。加上正则化后,训练集上的准确率可能略降,但实战中的准确率会明显提高。这种对未知数据也能应对良好的能力就叫泛化(Generalization)
平衡之美:偏差-方差权衡
模型太简单,偏差(欠拟合)变大,题都做不好;太复杂,方差(过拟合)变大,连噪声都背下来。两者像跷跷板,一边下去另一边就上来。调节正则强度 λ\lambda,就是在找这条跷跷板的水平(平衡点)
人的角色:找到 λ\lambda(超参数)
λ\lambda 不是模型自己学出来的,而是人必须亲手调的旋钮(超参数)。拧太猛模型变傻,拧太松又变回死记。所以必须尝试多个 λ\lambda,选出实战表现最好的那个。
给基础模型装上翅膀(Ridge & Lasso)
只需在常用的线性回归逻辑回归公式末尾,悄悄加上刚学的 L1、L2 惩罚即可。
- 线性回归 + L2 = Ridge 回归
- 线性回归 + L1 = Lasso 回归
计算机会沿「总损失(含惩罚)变小」的方向(如梯度下降)学习并自动调节权重。
实战中的三步流程
实战中按以下顺序使用正则化。
1. 数据划分:把数据分成[训练 / 验证 / 测试]。
2. λ\lambda 海选:将 λ\lambda 取 0.01、0.1、1、10 等不同值,用训练集训练多个模型。
3. 选出冠军并上战场:用验证集考一遍,选出得分最高的 λ\lambda 模型作为最终模型,再用测试集做仅此一次的最终实力评估。
正则化通过给损失加惩罚项来减轻过拟合
总损失 = 数据损失 + λ×惩罚。λ 越大权重越被压制,模型越简单。L2 用权重平方和,L1 用绝对值之和并可得到稀疏权重。实践中对线性/逻辑回归使用 Ridge(L2)·Lasso(L1),λ 由交叉验证选择。