MLE(最大似然估计)是统计学中最核心的思想之一。
一句话总结:
MLE 从所有可能的模型参数中,选出那个「让观测数据最有可能出现」的参数。
下面,你拿到一枚纹理不均匀的残次硬币。所以你不知道它是否公平。也就是说,抛这枚硬币时,你不知道正面或反面的概率。你想知道:出现正面的概率 p 是多少。
于是你决定连抛 10 次,得到如下结果:正面 8 次,反面 2 次。
假设这是一枚公平硬币,那么设先验假设 p=0.5。
在这一先验假设下,出现上述结果的概率为:
P(D∣p=0.5)=0.510≈0.000976也就是说,如果这是一枚公平硬币,那么抛 10 次得到 8 次正面、2 次反面的概率约为 0.000976——在概率统计里,这个数显然被视为几乎不可能。所以你能清楚地感觉到这枚硬币不公平。
现在提出另一个假设:假设正面的概率是 p=0.8。那么上述结果的概率为:
P(D∣p=0.8)=0.88×0.22≈0.0067我们还发现,当 p=0.8 时,上述结果的概率最大,达到最大值 0.0067。
0.0067>0.000976这说明:如果正面概率是 0.8,那么观察到这份数据的可能性最大。
因此:p^=0.8
这就是最大似然估计。
给定数据:
D={x1,x2,⋯,xn}假设我们有模型参数:θ。
似然函数定义为:
L(θ)=P(D∣θ)最大似然估计(MLE)是:
θ^=argθmaxP(D∣θ)=argθmaxL(θ)很多人初学时感到困惑:
既然 P(D∣θ) 和 L(θ) 的表达式完全一样,为什么要换一个名字?
关键在于视角不同:
- 概率 P(D∣θ) 的视角:
参数 θ 是固定的已知值,而数据 D 是随机的。
我们问:「在给定参数的情况下,不同的数据结果出现的可能性有多大?」
- 似然 L(θ) 的视角:
数据 D 是固定的观测值,而参数 θ 是变化的未知量。
我们问:「在不同的参数取值下,这份观测数据出现的可能性有多大?」
根据条件公式:
P(D∣θ)=xi∈D∏P(xi∣θ)如果数据 D 包含很多样本,很多小数相乘会得到一个趋近于零的结果,在计算机里可能导致数值下溢。
于是我们取对数,把乘法变成加法:
ℓ(θ∣D)=logP(D∣θ)=xi∈D∑logP(xi∣θ)取对数后,数值保持在可接受的范围内,更利于优化。
因此,几乎所有实际训练都在优化:
θmaxℓ(θ∣D)这种形式叫作对数似然。
在似然函数中,我们要找到使似然最大的参数 θ^MLE。
如果 ℓ(θ∣D) 可微,θ^MLE 通常满足:
∂θ∂ℓ(θ∣D)=0二阶条件保证取到最大值:
∂θ2∂2ℓ(θ∣D)<0以最简单的伯努利分布为例:
- 数据 xi∈{0,1}
- 模型:P(X=1)=p,P(X=0)=1−p
我们有似然函数:
L(p∣D)=i=1∏npxi(1−p)1−xi转化为对数似然:
ℓ(p∣D)=i=1∑nxilogp+(1−xi)log(1−p)对 p 求导并令其为零:
∂p∂ℓ=p∑xi−1−pn−∑xi=0解得:
p^MLE=n∑i=1nxi在神经网络中,MLE 的参数 θ 对应网络的权重和偏置,通常记为:
θ=W1,b1,W2,b2,…,WL,bL其中 L 是层数,Wi 是第 i 层的权重矩阵,bi 是偏置向量。
换言之:神经网络是一个函数族 fθ(x)
它定义了条件概率分布:
Pθ(y∣x)训练神经网络 = 选择使观测数据出现概率最大的参数 θ:
θ^MLE=argθmaxi∏Pθ(yi∣xi)以分类为例:一个二分类神经网络的输出为:
y^=σ(fθ(x))我们看到,最大化似然可以写成最小化交叉熵损失函数作为代价函数:
θ^MLE=argθmaxi∏y^iyi(1−y^i)1−yi最终得到交叉熵损失:
L(θ)=−i∑[yilogy^i+(1−yi)log(1−y^i)]这里的 θ 表示所有权重和偏置。
再以回归为例:假设
yi=fθ(xi)+ϵi,ϵi∼N(0,σ2)对数似然:
ℓ(θ)=−2σ21i∑(yi−fθ(xi))2+C我们看到,最大似然目标等价于最小化均方误差,其中 θ = 神经网络的权重和偏置。
这里隐含的假设是误差服从高斯分布。如果我们改为假设拉普拉斯分布,MLE 就会导出 MAE 损失。这就解释了为什么不同任务选择不同的损失函数——它们对应着关于数据分布的不同假设。
在神经网络中,最大似然估计就是在所有权重和偏置的组合中,找出最可能让训练数据出现的那一组。
因此,每次我们用梯度下降更新权重时,本质上都在做 MLE 优化。