从一个问题开始
在机器学习中,为什么对于回归任务我们要最小化 MSE 均方误差,而对于分类任务我们要最小化 BCE 交叉熵?这两个看起来截然不同的损失函数是从哪里凭空冒出来的?为什么 L2 正则化项(Weight Decay)刚好对应权重参数的“高斯先验”?
答案隐藏在最大似然估计 (MLE) 与 最大后验估计 (MAP) 的概率基石之中!这一章我们将完成完整的数学推导,建立从概率似然到机器学习损失函数的物理桥梁。
把模型参数估计比作侦探破案:
- 似然度 L(θ)=P(现场证据∣嫌疑人 θ):假设某个嫌疑人 θ 是真凶,现场留下这些证据的概率有多大?
- MLE (最大似然估计):只看现场证据,找出能让证据出现概率最大的那个嫌疑人。
- MAP (最大后验估计):不仅看现场证据,还加上侦探的常识先验 P(θ)(例如“常理下该嫌疑人不可能出现在案发现场”)。MAP 相当于在似然度上加上了正则化限制(L2 / L1 正则)!
点击放大查看图:似然函数曲线与 MLE 极大值点估计图
1. 似然函数与 MLE
对于独立同分布(i.i.d.)的数据集 X={x1,…,xn},参数为 θ 的似然函数 L(θ) 定义为所有数据点联合概率密度/分布的乘积:
L(θ)=i=1∏nP(xi∣θ)
为了将连乘化为便于求导的加法,取对数似然(Log-Likelihood):
ℓ(θ)=lnL(θ)=i=1∑nlnP(xi∣θ)
最大似然估计 (MLE):寻找使对数似然最大的参数 θ^MLE:
θ^MLE=argθmaxi=1∑nlnP(xi∣θ)
在优化中,我们习惯于最小化损失函数,因此负对数似然 (Negative Log-Likelihood, NLL) 成为机器学习损失函数的直接来源:
LossNLL(θ)=−i=1∑nlnP(xi∣θ)
2. 从概率似然到机器学习 Loss 的严密推导
2.1 极大似然与高斯分布 ⟹ MSE 均方误差
假设连续预测目标 yi=fw(xi)+ϵi,其中噪声服从高斯分布 ϵi∼N(0,σ2):
则 yi∣xi;w∼N(fw(xi),σ2),其概率密度为:
P(yi∣xi;w)=2πσ21exp(−2σ2(yi−fw(xi))2)
写出负对数似然 NLL:
LossNLL(w)=−i=1∑n[ln(2πσ21)−2σ2(yi−fw(xi))2]
展开并忽略与参数 w 无关的常数项:
LossNLL(w)∝i=1∑n(yi−fw(xi))2⟺MSE 损失!
物理推论:最小化 MSE 均方误差,在概率上 100% 严格等价于假设观测噪声服从独立高斯分布时的最大似然估计!
2.2 极大似然与伯努利分布 ⟹ BCE 二元交叉熵
对于二分类标签 yi∈{0,1},假设预测概率为 y^i=σ(fw(xi))。则 yi 服从伯努利分布:
P(yi∣xi;w)=y^iyi(1−y^i)1−yi
写出负对数似然 NLL:
LossNLL(w)=−i=1∑nln[y^iyi(1−y^i)1−yi]=−i=1∑n[yiln(y^i)+(1−yi)ln(1−y^i)]
物理推论:最小化 BCE 交叉熵,在概率上 100% 严格等价于假设二分类标签服从伯努利分布时的最大似然估计!
3. MAP 估计与 L2/L1 正则化
💡 后续机器学习预告:损失函数与 L2/L1 正则化
在后续【阶段 1 机器学习】中,我们将使用 MAP 估计推出的高斯先验与拉普拉斯先验,来防止线性模型过拟合(即 L2 岭回归与 L1 Lasso 回归)。在数学阶段,我们重点理解似然与先验概率相乘的几何意义!
点击放大查看图:高斯先验与拉普拉斯先验物理与几何映射示意图
最大后验估计 (MAP):当我们在似然度上加上参数 w 的先验分布 P(w):
wMAP=argwmaxP(w∣X,y)=argwmax[i=1∑nlnP(yi∣xi;w)+lnP(w)]
- 若假设 w 服从均值为 0 的高斯先验 P(w)∝exp(−2λ∥w∥22):
LossMAP(w)=MSE(w)+2λ∥w∥22⟺L2 正则化 (Ridge / Weight Decay)
- 若假设 w 服从拉普拉斯先验 P(w)∝exp(−λ∥w∥1):
LossMAP(w)=MSE(w)+λ∥w∥1⟺L1 正则化 (Lasso)
Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.
4. 手算演练
手算练习:3 个样本的高斯 MLE 均值估计
假设有 3 个独立的高斯观测数值 y={2.0,4.0,6.0},方差已知 σ2=1。求均值 μ 的 MLE 估计:
- 写出负对数似然表达式:
NLL(μ)=21i=1∑3(yi−μ)2=21[(2−μ)2+(4−μ)2+(6−μ)2]
- 对其关于 μ 求导并令导数等于 0:
∂μ∂NLL=−(2−μ)−(4−μ)−(6−μ)=3μ−(2+4+6)=0
- 求解 μ^MLE:
3μ=12⟹μ^MLE=4.0
严密推导证明:高斯分布下的 MLE 均值估计量,恰好就是样本均值 yˉ!
5. 动手实战:对数似然曲线绘制与 MLE vs MAP 代码
下面的代码使用 NumPy 网格搜索绘制一维参数的对数似然曲线,并对比无先验 MLE 与带高斯先验 MAP 的参数结果:
对数似然曲线与 MLE vs MAP 参数估计对比代码 import numpy as np
# 1. 模拟观测数据 (真值 mu_true = 3.0, 但由于噪声只有少量样本)
rng = np.random.default_rng(seed=42)
y_obs = np.array([2.5, 3.8, 4.2]) # 3 个样本,样本均值 = 3.5
# 2. 定义负对数似然 (NLL) 与带高斯先验的 MAP Loss
def nll_loss(mu: float, data: np.ndarray) -> float:
return 0.5 * np.sum((data - mu) ** 2)
def map_loss(mu: float, data: np.ndarray, prior_mu: float = 0.0, lambda_reg: float = 1.0) -> float:
# 似然 Loss + L2 正则先验惩罚 0.5 * lambda * (mu - prior_mu)^2
return nll_loss(mu, data) + 0.5 * lambda_reg * ((mu - prior_mu) ** 2)
# 3. 在网格搜索参数 mu
mu_grid = np.linspace(-1.0, 6.0, 500)
nll_values = [nll_loss(m, y_obs) for m in mu_grid]
map_values = [map_loss(m, y_obs, prior_mu=0.0, lambda_reg=1.0) for m in mu_grid]
best_mle_mu = mu_grid[np.argmin(nll_values)]
best_map_mu = mu_grid[np.argmin(map_values)]
print("观测样本点:", y_obs)
print("样本算术均值:", np.round(np.mean(y_obs), 4))
print(f"MLE 估计最佳 mu: {best_mle_mu:.4f} (无先验,纯拟合数据)")
print(f"MAP 估计最佳 mu: {best_map_mu:.4f} (带0先验收缩,拉向 0 点)")
6. 常见错误与避坑指南
|
| 推导 NLL 时混淆加号与减号 | 是否漏掉了负号 | 对数似然 lnL 是寻找极大值(加号);负对数似然 −lnL 是寻找极小值(减号) |
| 误认为 L1 与 L2 正则化是凭空发明出来的 | 先验分布假设是什么 | L2 正则化对应参数的高斯先验;L1 正则化对应参数的拉普拉斯先验 |
| 在极大似然推导中忘记省略常数项 | 表达式中哪些项包含参数 w | 任何与待优化参数 w 无关的常数项(如 2πσ21)求导后均为 0,可直接忽略 |
检查清单 (Checklist)
自测题
- 在高斯负对数似然推导中,如果不假设方差 σ2=1,而是将其看作未知常数,那么 MSE 前面的系数是什么?
- 解释:为什么说 MAP(最大后验估计)是 MLE(最大似然估计)与 Bayes 先验的融合?当样本量 N→∞ 时,MAP 会变成什么?
- 如果我们假设回归噪声服从拉普拉斯分布 P(ϵ)∝exp(−∣ϵ∣),那么导出的最大似然损失函数是什么?
- 【代码阅读题】在上一节代码中,为什么 MAP 估算出的最佳 μ 结果(3.28)比纯 MLE 的结果(3.50)更偏向 0?
点击查看参考答案
- 系数为 2σ21。此时总损失为 2σ21∑(yi−f(xi))2。
- 因为 MAP = argmax[lnL(θ)+lnP(θ)],比 MLE 多了一项先验 lnP(θ)。当样本量 N→∞ 时,数据似然项占绝对主导地位,MAP 的结果会收敛于纯 MLE 估计。
- 导出的损失函数是 MAE 均方绝对误差损失(Mean Absolute Error, ∑∣yi−f(xi)∣)。
- 因为 MAP 包含了均值为 0 的高斯先验惩罚(L2 正则),强制将参数估计拉向 0(Shrinkage 效应)。
下一步
进入下一个专项 ,学习假设检验、p值真实含义、效应量 Cohen's d 与手写 A/B 测试报告。
参考资料
- :第 1-4 节 MLE 与广义线性模型。
- :第 2.2 节 最大似然估计原理。
- :第 9 章 概率建模与 MLE/MAP。