📑 本页目录(点开跳转)
02 · MAP 与正则化的真身
⏱ 28 分钟 | ⭐⭐⭐ 全教程最漂亮的一个结论
🎯 一句话
L2 正则化不是一个「技巧」,它是「假设权重服从高斯分布」的必然结果。 你以为你在防过拟合,其实你在表达一个先验信念。
🧠 一、从 MLE 到 MAP:加入常识
第 1 章的毛病:抛 3 次全正面,MLE 说 p = 1.0(这枚硬币永远不出反面)。
但你心里其实有个先验:「硬币一般是均匀的,p 应该在 0.5 附近」。
MLE:只看数据 max p(D|θ)
MAP:数据 + 先验 max p(θ|D) ⭐
↑ 注意方向反了!
贝叶斯定理把两者连起来
$$\underbrace{p(\theta\mid D)}_{\text{后验}} = \frac{\overbrace{p(D\mid\theta)}^{\text{似然}}\cdot\overbrace{p(\theta)}^{\text{先验}}}{\underbrace{p(D)}_{\text{和 }\theta\text{ 无关}}}$$
💡 人话:看到数据之后我对参数的信念 ∝ 数据有多支持它 × 我事先有多相信它。
因为分母和 θ 无关,最大化后验等价于:
$$\hat\theta_{MAP} = \arg\max_\theta \left[\underbrace{\log p(D\mid\theta)}_{\text{第 1 章的对数似然}} + \underbrace{\log p(\theta)}_{\text{⭐ 新增的这一项}}\right]$$
🔑 看那个加号——第一项是损失函数的来源(第 1 章), 第二项
log p(θ)会变成什么?下面就是答案。
⭐ 二、高光时刻:L2 正则 = 高斯先验
假设权重服从零均值高斯分布
先验信念:「权重不应该太大,应该集中在 0 附近」
数学表达:w ~ N(0, τ²I)
╱▔▔╲ τ² 大 → 钟形宽 → 我对权重没什么成见
╱ ╲ τ² 小 → 钟形窄 → 我强烈认为权重该接近 0
─────────
0
📐 推导(想看再点,不看不影响)
高斯先验的对数:
$$\log p(w) = \log\left[\prod_j \frac{1}{\sqrt{2\pi\tau^2}}e^{-w_j^2/(2\tau^2)}\right] = C - \frac{1}{2\tau^2}\sum_j w_j^2$$
代入 MAP(似然部分用第 1 章的高斯噪声结果):
$$\hat w = \arg\max_w \left[ -\frac{1}{2\sigma^2}\sum_i (y_i - w^\top x_i)^2 - \frac{1}{2\tau^2}\|w\|^2 \right]$$
取负号变成最小化,同乘 $2\sigma^2$:
$$\boxed{\hat w = \arg\min_w \sum_i (y_i-w^\top x_i)^2 + \underbrace{\frac{\sigma^2}{\tau^2}}_{=\;\lambda}\|w\|^2}$$
💡 结论(不看推导也要记住)
岭回归(L2 正则)= 高斯先验下的 MAP 估计。
而且正则强度有了明确含义: $$\lambda = \frac{\sigma^2}{\tau^2} = \frac{\text{噪声方差}}{\text{先验方差}}$$
这个式子解释了一切:
| 情况 | λ | 直觉 |
|---|---|---|
| 数据噪声大(σ² 大) | λ 大,正则强 | 数据不可信,多听先验的 |
| 数据很干净(σ² 小) | λ 小 | 数据可信,让它说话 |
| 先验很宽松(τ² 大) | λ 小 | 我对权重没成见 |
| 先验很强(τ² 小) | λ 大 | 我坚信权重该小 |
| τ² → ∞(完全无先验) | λ → 0 | 退化回 MLE(第 1 章) |
🔑 调 λ 不再是玄学:你在调「相信数据 vs 相信先验」的比例。
💡 一个实用推论:噪声大的数据集应该用更强的正则。 这不是经验法则,是从公式直接读出来的。
🔀 三、L1 正则 = 拉普拉斯先验
同样的套路,换个先验分布:
拉普拉斯分布:p(w) ∝ exp(−|w|/b)
↑ 指数上是【绝对值】不是平方
→ log p(w) = C − (1/b)·Σ|wⱼ|
→ 正则项变成 λΣ|wⱼ| = L1 正则 ✅
为什么 L1 会产生稀疏(把权重压成 0)
高斯先验(L2) 拉普拉斯先验(L1)
╱▔▔╲ ╱▔╲
╱ ╲ ╱│ │╲
╱ ╲ ╱ │ │ ╲
───────── ───┴─┴───
顶端【平滑】 顶端是【尖的】⭐
0 附近没有特别偏好 强烈偏好"恰好等于 0"
💡 人话:拉普拉斯分布在 0 处有个尖峰,表达的先验是 「很多权重应该恰好是 0」——所以 L1 会做特征选择。
🔑 这不是算法的副作用,是先验的直接后果。 你选 L1,就是在说「我相信只有少数特征真正有用」。
📐 几何直觉:为什么解会落在坐标轴上
从优化的角度看,正则化相当于把解限制在一个区域内:
L2 约束区域:圆 L1 约束区域:菱形
╭───╮ ◇
│ ● │ ╱ ╲
╰───╯ ◇ ◇ ← 尖角在【坐标轴】上
╲ ╱
损失函数的等高线从外面收缩, ◇
第一次碰到约束区域的点就是解
碰到圆 → 通常在圆弧上,各分量都非零
碰到菱形 → 【很容易碰在尖角上】= 某些分量恰好为 0 ⭐
📋 四、一张表看懂对应关系
| 你在用的 | 它的真身 | 先验假设 |
|---|---|---|
| 最小二乘 | 高斯噪声的 MLE | 无先验 |
| 岭回归 / L2 / weight_decay | MAP | 权重 ~ 高斯(都小,但不为 0) |
| Lasso / L1 | MAP | 权重 ~ 拉普拉斯(很多恰好为 0) |
| ElasticNet | MAP | 两种先验的混合 |
| 早停 | 近似正则 | 隐式地限制了权重能走多远 |
| Dropout | 近似贝叶斯推断 | (更复杂,但同源思想) |
🔗 你在基础教程第 10 章学的 「正则化是故意给模型制造困难」—— 更准确的说法是:正则化是把你的先验知识写进目标函数。
🌡️ 五、数据量如何冲淡先验
对数似然项:随样本数 n 【线性增长】
先验项: 【固定不变】
→ n 越大,似然越主导
→ MAP → MLE
回到抛硬币(先验:p 应该在 0.5 附近):
| 数据 | MLE | MAP(带弱先验) |
|---|---|---|
| 3 次全正 | 1.00 | ≈ 0.80 |
| 30 次全正 | 1.00 | ≈ 0.97 |
| 300 次全正 | 1.00 | ≈ 0.997 |
💡 这解释了一个实践现象:数据越多,正则化越不重要。
小数据 → 先验主导 → 正则化是救命稻草
大数据 → 似然主导 → 正则化影响变小
⭐ 这就是为什么大模型时代正则化的地位下降了
—— 数据量足够时,先验的影响本来就该被冲淡
⚠️ 但别过度推论:这说的是「相对于数据量的正则强度」。 大模型仍然用 weight decay、dropout —— 只是权重更小、更依赖数据本身。
🎓 六、再往前一步:完全贝叶斯
MLE: 给一个点估计 θ̂ (不带不确定性)
MAP: 给一个点估计 θ̂(考虑了先验) (仍不带不确定性)
完全贝叶斯: 给整个后验分布 p(θ|D) ⭐ (带不确定性!)
完全贝叶斯的预测是对所有可能的 θ 加权平均:
$$p(y^*\mid x^*, D) = \int p(y^*\mid x^*,\theta)\,p(\theta\mid D)\,d\theta$$
💡 人话:不挑一个最好的模型,而是让所有模型按各自的可信度投票。
它能做到 MAP 做不到的事:
| 能力 | 说明 |
|---|---|
| 给出预测的不确定性 ⭐ | 「我预测是 5.2,但可能在 3~8 之间」 |
| 知道自己不知道 | 遇到训练分布外的输入时,不确定性会变大 |
| 自动的模型选择 | 边际似然天然惩罚复杂模型 |
代价:那个积分通常算不出来,要用近似方法(MCMC、变分推断)——贵。 所以实践中大多数时候还是用 MAP(也就是加正则化的普通训练)。
💡 一个实用的折中:深度学习里用 MC Dropout(推理时也开 Dropout,跑多次看方差) 或模型集成来近似不确定性——它们都可以看作粗糙的贝叶斯近似。
🔗 七、和站内其他章的关系
| 相关的地方 | 真身 |
|---|---|
weight_decay=0.01 |
高斯先验的 MAP |
| L1 能做特征选择 | 拉普拉斯先验在 0 处的尖峰 |
| λ 太大欠拟合、太小过拟合 | λ = 噪声方差/先验方差,在调"信数据还是信先验" |
| 数据多了正则可以放松 | 似然项随 n 增长,先验被冲淡 |
| 噪声大的数据要更强正则 | 直接从 λ = σ²/τ² 读出来 |
| 推荐算法第 5 章 MF 的 λ(‖p‖²+‖q‖²) | 对用户/物品向量加高斯先验 |
| 模型集成效果好 | 粗糙的贝叶斯模型平均 |
✅ 检查点
- MLE 和 MAP 在数学上差了什么?那一项从哪来?
- L2 正则的真身是什么?λ 的确切含义是什么?
- 噪声大的数据集该用更强还是更弱的正则?为什么(从公式说)?
- 为什么 L1 会把权重压成 0,L2 不会?(两种解释)
- 为什么数据越多正则化越不重要?
- 完全贝叶斯比 MAP 多给了什么?代价是什么?实践中怎么近似?
👀 答案
- MAP 在对数似然后面多加了一项
log p(θ)(先验的对数)。它来自贝叶斯定理——后验 ∝ 似然 × 先验。 - 高斯先验下的 MAP 估计。λ = σ²/τ² = 噪声方差 / 先验方差——它衡量「相信数据 vs 相信先验」的比例。
- 更强。因为 λ = σ²/τ²,σ²(噪声方差)大则 λ 大。直觉:数据不可信,多听先验的。
- ①概率解释:L1 对应拉普拉斯先验,它在 0 处有尖峰,表达「很多权重应恰好为 0」;②几何解释:L1 的约束区域是菱形,尖角在坐标轴上,损失等高线容易碰在尖角上。
- 对数似然项随样本数 n 线性增长,先验项固定不变,所以 n 大时似然主导,MAP → MLE。
- 给出整个后验分布而非点估计,因此带不确定性(能"知道自己不知道")。代价是积分算不出来,需要 MCMC/变分推断。实践近似:MC Dropout、模型集成。
🛑 可以停在这里
⚡ 走神救援
MAP = MLE + 先验:
argmax [log p(D|θ) + log p(θ)],那个加号就是正则项的来源(来自贝叶斯定理:后验 ∝ 似然 × 先验)。⭐⭐核心结论:假设 w ~ N(0, τ²I),推出来的正是岭回归——L2 正则 = 高斯先验下的 MAP,正则强度也有了确切含义:λ = σ²/τ² = 噪声方差 / 先验方差。这式子解释了一切:噪声大(σ² 大)→ λ 大 → 数据不可信,多听先验的;τ² 趋于无穷即无先验时 λ → 0,退化回 MLE。⭐调 λ 不再是玄学,调的是「相信数据 vs 相信先验」的比例;噪声大的数据集就该用更强的正则——不是经验法则,是从公式直接读出来的。换个先验就换个正则:拉普拉斯先验 exp(−|w|/b) 推出 L1,它在 0 处有尖峰,表达「很多权重应该恰好是 0」,所以 L1 做特征选择;几何上它的约束区域是菱形、尖角落在坐标轴上,等高线容易碰上去。⭐稀疏不是算法的副作用,是先验的直接后果——选 L1 就是在说「我相信只有少数特征有用」。对应关系:weight_decay 与岭回归是高斯 MAP,Lasso 是拉普拉斯 MAP,早停与 Dropout 只是近似。所以正则化更准确的说法是「把先验知识写进目标函数」,而不是「故意制造困难」。⚠️对数似然项随样本数 n 线性增长,先验项固定不变,n 越大似然越主导,MAP → MLE:抛硬币全正时 MLE 恒为 1.00,而带弱先验的 MAP 从 3 次的 0.80 涨到 300 次的 0.997。这就是数据越多正则化越不重要、大模型时代正则地位下降的原因。再往前是完全贝叶斯:给整个后验而非点估计,带不确定性、能「知道自己不知道」;但积分通常算不出来(MCMC、变分推断很贵),实践中用 MC Dropout 或集成近似。
下一节 👉 03-感知机.md