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