假设我们有一个线性回归问题:用房屋的面积(size
)和房龄(age
)两个特征来预测房价(price
)。
- 特征:
size
(面积,平方米),age
(房龄,年) - 目标:
price
(价格,万元)
1. 没有正则化的普通线性回归(最容易过拟合)
模型的公式是:
预测价格 = w1 * size + w2 * age + b
其中 w1
和 w2
是我们要学习的权重(也叫系数), b
是偏置项(也叫截距)。
模型的损失函数通常是最小均方误差:MSE = (1/N) * Σ(真实价格 - 预测价格)^2
训练目标就是找到能让 MSE
最小化的 w1
, w2
, b
。
问题: 如果我们的训练数据量很小(N 很小),或者数据中有噪音,或者特征之间相关性强(比如 size
和 age
可能有一定关系:老房子面积可能小?但这不完全成立),模型为了完美拟合这些训练数据,可能会学习到非常大(正或负) 的 w1
和 w2
。这意味着模型对训练数据中的微小波动或噪声极其敏感。这就是过拟合: 模型在训练集上表现很好,但在没见过的新房数据上预测得很差。
2. 引入 L2 正则化(岭回归 Ridge Regression)
为了解决过拟合,我们在损失函数上 加一个惩罚项:所有权重(这里指 w1
和 w2
,通常不惩罚 b
)的平方和乘以一个系数 λ
。新的损失函数变成:
新损失 = MSE + λ * (w1² + w2²)
发生了什么?
- 惩罚大权重:
λ * (w1² + w2²)
这个项。如果w1
或w2
变得很大(无论正负),w1²
或w2²
就会变得非常大,导致整个新损失变大。模型在最小化新损失时,会被迫让w1
和w2
不要变得那么大。 - 效果:
w1
和w2
会被 共同压缩、收缩,趋近于 0(但通常不会精确等于 0)。- 想象一下:原本
w1
可能学到了 1000,w2
学到了 -500(过拟合特征噪音)。加了 L2 后,可能被压缩到w1 = 150
,w2 = -80
。两个特征都还在用,但影响力都减小了。
- 想象一下:原本
- 几何解释 (权重空间): 想象
w1
和w2
构成的坐标平面。MSE 是一个复杂地形的最低点。L2 的约束w1² + w2² <= t
是一个 圆形区域。我们的解是最低点且落在圆形边界内的点。这个点通常不会在坐标轴上(除非λ
极大)。 - 防止过拟合原理: 通过限制权重的大小,模型变得更加简单、平滑,对输入数据的微小变化不敏感,提高了泛化能力。
λ
控制力度:λ = 0
就是普通回归;λ
越大,权重压缩越厉害,模型越简单(可能欠拟合)。
为什么叫“权值衰减”(Weight Decay)? 在梯度下降更新权重的过程中,L2 项引入的效果就像是每一步都在让权重按一定比例缩小。
3. 引入 L1 正则化(套索回归 Lasso Regression)
L1 也是在损失函数上加惩罚项,但惩罚的是权重的绝对值之和:
新损失 = MSE + λ * (|w1| + |w2|)
发生了什么?
- 惩罚大权重:
λ * (|w1| + |w2|)
这个项。|w1|
或|w2|
越大(绝对值),惩罚越大。 - 关键效果(特征选择): L1 有一个超凡的特性:它倾向于将不太重要的特征对应的权重精准地推到 0!
- 想象一下:
size
对预测房价真的很重要,而age
可能不太重要,或者它的信息和size
有重叠(共线性)。加了 L1 后,模型可能学出w1 = 180
,w2 = 0
。这意味着模型完全丢弃了age
这个特征! - 解变得稀疏(Sparse)。
- 想象一下:
- 几何解释 (权重空间): 在
w1
和w2
平面中,L1 的约束|w1| + |w2| <= t
是一个 菱形区域(顶点在坐标轴上)。MSE 的最低点叠加这个菱形约束,最优解常常落在菱形的顶点上,而顶点就意味着某一个权重为 0(比如 (t,0) 或 (0, t) 点)。 - 防止过拟合原理: 不仅限制了权重大小,更重要的是自动选择了最相关的特征,丢弃了无用或冗余的特征,大大简化了模型结构。同样,
λ
控制力度:λ = 0
普通回归;λ
越大,越多的权重被设为 0,模型越简单(可能欠拟合)。
L1与L2 正则化在线性回归中的几何解释:
-
灰色虚线等高线:表示损失函数的值(例如平方误差),最优解在红点 (2, 2)。
- 左图(L1 正则):蓝色菱形表示约束区域 |w1| + |w2| <= t,等高线最先接触菱形的角点 → 稀疏性(促使某些权重为0)。
- 右图(L2 正则):绿色圆形表示约束区域 w1² + w2² <= t^2,接触点平滑 → 不会完全为0,但使权重变小。
---
L1 vs L2 在线性回归中的直观对比 (核心区别!)
假设我们的普通线性回归(过拟合)解是:w1 = 1000
, w2 = -500
。模型对特征波动太敏感了。
- L2 处理后:
w1 = 150
,w2 = -80
- 权重缩小了,但两个特征都用上了。
- 模型稳定了一些,泛化更好。
- L1 处理后:
w1 = 180
,w2 = 0
w2
被精确设为了 0!特征age
被完全抛弃了。- 模型更简单、更易于解释,只依赖于
size
,泛化能力也增强了。
关键区别表格 (线性回归场景):
特性 | L2 正则化 (岭回归) | L1 正则化 (套索回归) |
---|---|---|
正则项 | λ * (w1² + w2²) | λ * (|w1| + |w2|) |
作用方式 | 挤压权重 (Shrinkage) | 挤压权重 + 特征选择 (Selection) |
权重效果 | 所有权重变小,但通常不为 0 | 不重要权重精确变为 0 |
模型结果 | 保留所有特征,但影响力减小 | 自动筛选特征,丢弃不重要特征 |
解是否稀疏 | 否 | 是 |
几何约束 | 圆形 (权重平方和小) | 菱形 (权重绝对和小) |
主要优势 | 稳定,处理特征相关性较好 | 简化模型,提高可解释性,自动特征选择 |
它们都能防止过拟合吗? - 在线性回归中的回答
是的! 在线性回归中,它们都是通过惩罚过大的权重来防止过拟合,但机制略有不同:
- L2 (岭回归): 通过压缩所有权重,使模型对训练数据中的噪声和微小变化不再那么敏感,从而平滑决策边界,提高泛化能力。适合当你认为大多数特征都可能有用,或者特征间存在相关性时。
- L1 (套索回归): 通过强制不重要的特征的权重变为 0,直接简化模型结构,只留下最关键的特征。这种简化本身就直接防止了过拟合(复杂度过高的来源之一就是用了太多特征或特征组合)。特别适合特征数量很多,但你认为只有一部分特征真正相关的情况。
总结: 在线性回归中,L1 和 L2 正则化是最常用且有效的防止过拟合技术之一。选择哪一种取决于你的需求:
- 想要尽量保留特征信息,只是让模型更稳定?选 L2。
- 怀疑有很多冗余或不相关特征,想要一个更简单、更可解释的模型?选 L1。
- 实践中也常用Elastic Net (
L1 + L2
),试图结合两者优点。J(θ) = 原始损失 + λ1|θ| + λ2θ²