极大似然与最大后验:训练到底在「极大化」什么
亲手推导伯努利与高斯的 MLE,看清交叉熵/均方误差从哪来,以及先验如何变成正则项
- 似然和概率的视角不一样,得搞明白这个区别。独立同分布的情况下,要会写似然,还有对数似然。
- 能从零推导伯努利 MLE=p̂=k/n、高斯 MLE=样本均值
- MAP 是似然项加先验项,高斯先验对应 L2 正则,拉普拉斯先验对应 L1 正则。
- 知道共轭先验与伪计数,解释 MLE 与 MAP、贝叶斯估计的差别
「选让数据最可能出现的参数」——这一句话就是极大似然,也是训练损失的源头
线性回归最小化均方误差、逻辑回归与分类网络最小化交叉熵,这些损失不是拍脑袋定的,都能从同一个原则推出:极大似然估计 MLE。直接动手求导,把「最像数据的参数」算出来,再引入先验得到 MAP,亲眼看到 L2/L1 正则如何从贝叶斯视角自然长出来。因果链:固定数据、把联合概率看成参数的函数即似然 → 取对数把连乘变连加 → 求导令零解出 MLE → 乘上先验得 MAP → 不同先验正好对应不同正则。
3.1 似然函数:同一个表达式,换个视角看
概率 P(data|θ) 是把参数 θ 固定,看不同数据出现的可能性;似然 L(θ)=P(data|θ) 反过来,把已经观测到的数据固定,看不同参数 θ 谁更贴合这份数据。似然是 θ 的函数,但它一般不是 θ 的概率分布——对 θ 积分结果不一定是 1,这是它和概率的本质区别。极大似然估计就是 θ̂_MLE=argmaxθ L(θ),选让当前数据联合概率最大的参数。
n个样本独立同分布(i.i.d.),联合似然是逐样本似然的连乘:L(θ)=∏ᵢ₌₁ⁿ P(xᵢ|θ)。独立同分布假设让联合分布可分解为乘积,也是训练时「损失对所有样本求和/平均」的合法性来源。如果样本间存在未建模的强依赖,这个乘积分解就不成立,损失的统计意义也打折。
关于似然函数 L(θ)=P(data|θ),正确的说法是?
3.2 对数似然:连乘变连加,求导才可行
直接最大化连乘很糟:成百上千个小于1的概率相乘会下溢到0,且乘积求导要反复用乘法法则。取对数解决一切:对数在正数上严格单调递增,所以argmax L(θ)=argmax ln L(θ),最优点不变;而ln把乘法变加法ℓ(θ)=Σᵢ ln P(xᵢ|θ),既不下溢又便于求导。MLE三步法固定为:写联合似然乘积;取对数写对数似然;对θ求导、令其为0并验证是最大。
分类网络最小化「负对数似然」等价于最小化交叉熵:每个样本的目标类别概率是模型给出的 softmax 概率,最大化这些概率之积,等价于最小化 −Σ log p(yᵢ|xᵢ),也就是 NLL/交叉熵损失。你每次调用 CrossEntropyLoss,都在对模型参数做一次极大似然。
为什么取对数:单调性、下溢与求导三笔账
第一笔是单调性:ln 严格递增,不改变 argmax,最大化似然与最大化对数似然是同一个参数,放心替换。第二笔是数值稳定:n 个 0.5 相乘是 0.5ⁿ,n=1000 时约 10⁻³⁰¹,直接乘必然下溢成 0;n·ln0.5≈−693,是普通负数,工程上配合 log-sum-exp 技巧就稳定了。第三笔是求导:ln(ab)=ln a+ln b 让积的导数变成各项导数之和,ln 正好抵消指数族分布里的 e,求导后得到干净的线性方程——高斯、伯努利、泊松的 MLE 之所以都是简单的样本均值或频率,根源就在指数族取对数后的简洁形式。
3.3 两个必须会手推的 MLE:伯努利频率与高斯均值
推导一·伯努利。n次试验成功k次,似然L(p)=pᵏ(1−p)ⁿ⁻ᵏ,对数似然ℓ(p)=k ln p+(n−k)ln(1−p)。求导dℓ/dp=k/p−(n−k)/(1−p),令其为0:k(1−p)=(n−k)p → k=np → p̂=k/n。二阶导d²ℓ/dp²=−k/p²−(n−k)/(1−p)²<0,确为最大。结论:伯努利成功概率的极大似然估计就是成功频率——「数出来的比例」背后有似然依据。数据 [1,1,0,1,0] 的 p̂=3/5=0.6。
推导二·高斯均值(方差已知)。样本 x₁…xₙ 来自 N(μ,σ²),似然 L(μ)=∏(1/√(2πσ²))·exp[−(xᵢ−μ)²/(2σ²)]。取对数 ℓ(μ)=常数−Σ(xᵢ−μ)²/(2σ²),最大化 ℓ 等价于最小化 Σ(xᵢ−μ)²。求导 dℓ/dμ=Σ(xᵢ−μ)/σ²=0 → Σxᵢ−nμ=0 → μ̂=(1/n)Σxᵢ=x̄,正是样本均值。这说明「最小二乘/均方误差」就是高斯噪声假设下的极大似然——回归用 MSE 不是巧合,而是假设残差服从均值为 0 的高斯。
顺带把方差也估了:对 σ² 求导可得 σ̂²=(1/n)Σ(xᵢ−x̄)²。注意:这是有偏估计,平均会偏小,无偏估计用 1/(n−1)(贝塞尔校正)。手算数据 [1,2,3,4]:μ̂=2.5;有偏方差=((−1.5)²+(−0.5)²+0.5²+1.5²)/4=5/4=1.25,无偏方差=5/3≈1.667。
补充MLE的大样本性质,帮你判断它何时可信:在正则条件下,样本量n变大时,MLE有一致性——依概率收敛到真值;渐近正态性——围绕真值近似正态,方差是Fisher信息量的倒数;渐近有效性——没有方差更小的无偏估计。这就是数据越多,MLE训出的参数越稳定的原因。小样本时这些性质不成立,MLE方差大,还容易出极端估计,这就是需要MAP或正则来兜底的原因。
高斯样本 [1,2,3,4] 的 MLE 均值 μ̂ 等于多少?3.4 MAP:在先验的约束下最大化,估计被往回拉
MLE只看数据,数据少的时候容易给极端估计——掷3次硬币全正,它就估p=1。 MAP把贝叶斯先验加进来,公式是θ̂_MAP=argmax P(data|θ)·P(θ),取对数后就是argmax[ℓ(θ)+ln P(θ)],相当于在对数似然的基础上多了一项「对数先验」。 先验就是数据之外提前说的「参数更可能在哪」,数据少的时候它说了算,数据多了似然占上风,估计自然就从先验往数据那边靠。
用共轭先验看得最清楚。Beta(α,β) 是伯努利/二项的共轭先验,意思是「先验是 Beta、看过二项数据后后验仍是 Beta」:后验 Beta(α+k, β+n−k),可把 α−1、β−1 理解为成功、失败的伪计数。MAP 为 (α+k−1)/(α+β+n−2),后验均值为 (α+k)/(α+β+n)。取均匀先验 Beta(1,1)、观察到 k=3、n−k=2,后验为 Beta(4,3),后验均值=4/7≈0.571,比 MLE 的 0.6 略向 0.5 收缩——这正是先验「防止小样本极端化」的作用。
3.5 从先验到正则,再到完整贝叶斯
现在把 l2 模块的正则与本节打通。若参数先验是高斯 θ~N(0,τ²),ln P(θ)=−θ²/(2τ²)+常数,MAP 目标=「数据负对数似然 + λθ²」,正是损失加 L2 正则(权重衰减);若先验是拉普拉斯分布(尖峰厚尾),ln P(θ)=−λ|θ|+常数,对应 L1 正则,其尖峰鼓励更多参数恰为 0、产生稀疏解。所以「正则」并非纯工程 trick,它在贝叶斯语言里就是「你事先相信权重应该接近 0」。
只最大化似然,没有先验。点估计在数据少的时候方差大,容易出极端结果,等价于最小化负对数似然、交叉熵或者最小二乘。
三者是递进光谱:MLE是先验完全平坦的MAP,MAP是只取后验众数的贝叶斯,完整贝叶斯保留参数的整个不确定性分布。深度学习参数量巨大,几乎都用MLE/MAP形式(损失+正则),但在不确定性重要的场景(医疗、自动驾驶)会回到完整贝叶斯或深度集成来估计置信度。
完整贝叶斯预测时,不是只用一个最优参数,而是对整个后验积分:p(y*|data)=∫p(y*|θ)·p(θ|data)dθ,这叫贝叶斯模型平均,相当于把无数组参数按后验权重凑一块,能缓解过拟合,还能给出预测的不确定性。深度集成(deep ensemble)算它的廉价近似:训练多个初始化不一样的模型,再把预测结果平均,实际用起来比单模型校准效果好,方差更低,这和l4的「集成降方差」是一回事。
均方误差=高斯噪声假设下的 MLE;平均绝对误差=拉普拉斯噪声下的 MLE;二分类交叉熵=伯努利 MLE;softmax 交叉熵=类别分布 MLE。面试问「为什么分类用交叉熵而不用准确率做损失」,标准答案是:交叉熵是负对数似然、光滑可导且概率校准,而准确率不可导、梯度为零无法优化。
把有偏的 1/n 高斯方差当成无偏方差,小样本会系统性低估离散度;模型可完美拟合时 MLE 给出 0/1 极端概率(如逻辑回归 separable 数据权重趋于无穷),必须靠正则/先验或迭代早停约束,否则概率过度自信、泛化变差。
伯努利、二项、泊松、高斯、类别分布都属指数族,它们都有形式简洁的共轭先验(Beta↔伯努利、Dirichlet↔类别、高斯↔高斯)。共轭让后验与先验同分布、可闭式更新,是朴素贝叶斯、主题模型与贝叶斯线性回归能高效计算的基础。
遇到陌生分布别慌:写单样本 P(x|θ) 与 i.i.d. 连乘;取对数、把常数项与含 θ 项分开;对 θ 求导令 0 解出闭式解;用二阶导或二阶条件确认是最大。卡住时先验证特例(n=1)往往能发现代数错误。
MAP 估计与 MLE 的关系是?
本节小结
一条推导链:似然固定数据、以参数为自变量,i.i.d. 下写成逐样本连乘 → 对数单调递增使连乘变连加且不改最优,得到 MLE 三步法 → 伯努利 MLE=p̂=k/n(数据例 0.6),高斯 MLE μ̂=x̄(例 2.5),故 MSE/交叉熵都是特定分布假设下的负对数似然 → MAP 加对数先验,Beta 共轭使后验均值向先验收缩(0.6→0.571),高斯先验=L2、拉普拉斯先验=L1 → MLE/MAP/完整贝叶斯构成从点估计到后验分布的递进光谱。
资深工程师加餐
底层原理 · 大厂视角 · 工程经验,点卡片展开
一条样本是一个特征向量,一批样本堆成矩阵,神经网络一层的变换本质就是矩阵乘法加激活。换基/特征值分解相当于找数据的主要方向(PCA 降维),GPU 之所以适合深度学习,正是因为它能大规模并行做矩阵运算。把「向量=对象、矩阵=变换」建立起直觉,后面公式就不再抽象。