极大似然估计
最近读LLM的文章遇到了很多Model与Loss,突然想彻底理解极大似然估计、最大后验概率估计等参数估计方法的本质和底层,做了一下调研和理解,现总结如下。
概率vs统计
我们都学过的一门数学核心专业课《概率论与数理统计》经常被简称为“概率论”,但这是不恰当不合适的,因为这门课的核心思想有两个,即“概率”和“统计”,分别代表了两种研究方向与研究问题。
概率(probability)
已知模型的相关参数设置,去检验一下模型在特定问题、特定数据上的性能表现。
统计
已知现有的大量数据,去探索用什么模型和模型的参数设置。
这么一看,真的是经典的那句:
概率是已知模型和参数,推数据。统计是已知数据,推模型和参数。
似然函数
似然(likelihood)≈ 概率(probability)。似然函数的形式化表示如下:
P(x|θ)
这个函数的输入有两个:
- 某一具体的数据x
- 模型的参数的θ
这里根据输入数据x 和模型参数θ 的固定与否,分成以下几种情况:
- 若θ已知确定,x是未知变量,那么这是概率函数,含义是:已知的模型参数,对于不同的样本输入x,其不同的出现概率是多少。更常见的形式化表示为:P(X=x),其中X代表随机变量。
- 若x已知确定,θ 是未知变量,那么这是似然函数,含义是:已知样本点,对于不同的模型参数θ ,出现当前这个输入的概率是多少,通常用于参数估计和模型选择。
感觉有些小绕,但静下心来细想,有些悟了,确实是这样的。那么接下来就正式开始梳理最大似然估计(Maximum likelihood estimation, MLE)
例子1:掷硬币问题
假设我们有一个硬币,我们不知道它是均匀的还是有偏的,想要估计正面朝上的概率p。
-
数据收集:投掷硬币10次,记录了正面朝上的次数为7次。
-
建立模型:假设投掷正面朝上的概率是p,那么反面概率为1−p。因为每次投掷硬币均为独立事件,那么10次的结果就可以用二项分布描述。
-
似然函数表示:L(p)=P(x|θ)。其中x是观测的数据(10次投掷正面向上的次数),θ 是模型参数,即硬币正面朝上的概率p。那么就可以写出如下具体表示:
L(p)=P(正面朝上7次|p)=p7(1−p)3 -
求解最大似然估计:我们的目标是找到对应的参数设置p使得似然函数L(p)最大,那么就可以求导令导数为0求解得到其最大值和对应的参数即可。我们可以求出p=0.7的时候是一个解。
虽然这和常识p=0.5有出入,但不得不承认,这就是利用最大似然估计所求出的最直观的结果,可以说不合理,但是不能说不正确。
例子2:正态分布参数估计问题
假设我们有一个机器,它生产出的小零件的重量服从正态分布,但机器出现了一些问题,导致零件的重量分布发生了变化。我们需要估计新的正态分布的均值(μ)和标准差(σ)。
-
数据收集:从机器中随机抽取了5个小零件,并测量了它们的重量,得到以下数据(以克为单位):[4.9, 5.1, 4.8, 5.0, 5.2]。
-
建立模型:我们假设零件的重量X服从正态分布N(μ,σ2) ,其中μ 是均值,σ2是方差。
-
似然函数表示:L(μ,σ2) 是在已知数据x1,x2,x3,…,xn的前提下,对于参数μ和σ2 的寒函数,表示如下:
L(μ,σ2)=n∏i=11σ√2πe−12(xi−μσ)2 -
求解最大似然估计:由于直接对似然函数进行最大化比较复杂,我们通常取似然函数的对数(称为对数似然),这样乘积变成了求和,更容易处理。对数似然函数为:
L(μ,σ2)=n∑i=1(−ln(σ)−12ln(2π)−12(xi−μσ2))
为了找到最大似然估计,我们需要对 μ 和σ2分别求偏导,并令这些偏导数等于零。这会得到两个方程,需要同时求解。
n∑i=1(xi−μ)=0→ˆμ=1nn∑i=1xiσ2=1nn∑i=1(xi−μ)2
带入数据求解即可。
以上就能真实直观理解最大似然估计的原理和系统过程,其实就以下几步:
- 收集数据
- 根据数据建立模型
- 写出有关参数的似然函数表示
- 求导/偏导,令导数为0,得到似然方程
- 解似然方程,得出参数的最优解
最大后验概率估计
我们上面理解的都是最大似然估计,即最大化P(x|θ) 。而最大后验概率估计是对最大似然估计(MLE)的一个补充,通过引入先验知识来提高估计的准确性,即最大化P(x|θ)P(θ),即不仅让似然函数能取最大, 同时让参数自己出现的概率也得大,这也就是最大后验概率估计(Maximum a posteriori estimation, MAP)。这里需要补充一下为什么是最大化二者的乘积,其实是简化后的,严格意义而言,是最大化以下部分:
P(θ|x)=P(x|θ)P(θ)P(x)
看到这,我们都知道了,就是贝叶斯定理的应用。但我们知道,分母其实是常数,因为根据已知的数据,是可以利用统计的方法求解出的,P(x)的取值和参数θ 没有关系。因此我们就可以最大化分子了。
ˆθ=argmax
那么我们就思考MLE 和MAP的区别与联系了。
- 从形式化表示来看,MLE就是一个认为P(\theta)=1 的MAP
也就是说:其中参数\theta 的先验概率P(\theta)被假设为一个均匀分布,所有参数值被认为是等可能的。在这种情况下,先验概率对于参数的不同取值没有偏好,因此对似然函数的最大化没有影响。所以,当我们假设一个无信息的先验(即均匀分布)时,MLE和MAP会给出相同的参数估计。
-
MAP结合了先验知识与观测数据的似然行,使用贝叶斯定理将先验知识和似然函数结合起来,得到了参数的后验概率。而MLE是不考虑任何先验知识或对参数的先验信念,它完全基于观测数据来寻找最有可能产生这些数据的参数值。
-
MLE 适用于没有先验信息或我们希望忽略先验信息的情况。MAP 适用于我们拥有关于参数的有用先验信息,并且希望在估计过程中利用这些信息的情况。