极大似然估计(MLE)和最大后验概率估计(MAP)

本文最后更新于:2022年10月22日 上午

本文介绍极大似然估计(MLE,Maximum Likelihood Estimation)和最大后验概率估计(MAP,Maximum A Posteriori Estimation)。

简介

MLE与MAP分别对应两种学派的参数估计方法,频率派和贝叶斯派。

  • 频率派认为参数是未知的常量,而样本是随机变量,可以通过样本的概率分布估计参数的值。
  • 贝叶斯派认为参数是随机变量,其符合某种潜在先验概率分布prior。根据获取的信息(likelihood/evidence)去不断调整先验分布,从而得到后验概率分布.

重要前提:训练样本的分布能代表样本的真实分布。每个样本集中的样本都是所谓独立同分布的随机变量 (iid条件),且有充分的训练样本。

极大似然估计MLE

  • 极大似然估计是建立在极大似然原理的基础上的一个统计方法,是概率论在统计学中的应用。极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。

MLE认为每个事件的发生都不是偶然的,存在即合理,为了解释这些事件的出现,决定系统的参数必须使得这些事件的出现更加合理才更好。因此MLE是求使得事件发生的概率最大化的情况下的参数。

  • 似然函数:

$$
l(\theta)=p(D \mid \theta)=p\left(x_{1}, x_{2}, \cdots, x_{N} \mid \theta\right)=\prod_{i=1}^{N} p\left(x_{i} \mid \theta\right)
$$

  • MLE
$$ \hat{\theta}=\arg \max _{\theta} l(\theta)=\arg \max _{\theta} \prod_{i=1}^{N} p\left(x_{i} \mid \theta\right) $$

为了便于计算, 我们对似然函数两边取对数,生成新的对数似然函数 (因为对数函数是单调增函数, 因此求似然函数最大化就可以转换成对数似然函数最大化) :

$$
p(X \mid \theta)=\prod_{x_1}^{x_n} p(x_i \mid \theta)=\sum_{x_1}^{x_n} \log _{t}(x_i \mid \theta)
$$

$$ \hat{\theta}=\arg \max _{\theta} \sum_{x_1}^{x_n} \log _{t}(x_i \mid \theta) $$

如果 $ \hat{\theta} $是参数空间中能使似然函数 $ l(\theta) $ 最大的 $ \theta$值, 则 $ \hat{\theta}$减该是“最可能"的参数值, 那么 $ \hat{\theta}$ 就是 $ \theta$的极大似然估计量。它是样本集的函数。

可以看出,MLE的参数估计值仅取决于样本,在数据量大的情况下还算靠谱,但是数据量小或者数据不靠谱的时候,结果也不靠谱。

现实举例

  • 假设我们需要调查我们学习的男生和女生的身高分布。你会怎么做啊?你说那么多人不可能一个一个的去问吧,肯定是抽样了。假设你在校园随便捉了100个男生和100个女生。他们共200个人(也就是200个身高的样本数据,为了方便表示,下面我们说的“人”的意思就是对应的身高)都在教室了。那么下一步怎么办?你开始喊:“男的左边,女的右边”,然后就统计抽样得到的100个男生的身高。假设他们的身高是服从高斯分布的。但是这个分布的均值 $μ$ 和方差 $σ^2$ 我们不知道,这两个参数就是我们要估计的。记做 $θ = [ μ, δ ]^ T$。

  • 用数学的语言来说就是:在学校那么多男生(身高)中,我们独立地按照概率密度 $p(x | θ)$ ,我们知道了是高斯分布 $N(μ, δ)$的形式,其中的未知参数是 $θ = [ μ, δ ]^ T$ 。抽到的样本集是 $X={X_1, X_2, X_3,…,X_n}$,其中 $X_i$ 表示抽到的第 $i $ 个人的身高,这里的 $N$ 就是 100,表示抽到的样本个数。

  • 由于每个样本都是独立地从 $p(x | θ)$ 中抽取的,换句话说这 100 个男生中的任何一个,都是随便抽取的,从我们的角度来看这些男生之间是没有关系的。那么,我们从学习这么多男生中为什么恰好抽到了这 100个人呢?抽到这 100 个人的概率是多少呢?因为这些男生(的身高)是服从同一个高斯分布 $p(x | θ)$的。那么我们抽到男生 A(的身高)的概率是 $p(x_A | θ)$,抽到男生B的概率是 $p(x_B | θ)$,那因为他们是独立的,所以很明显,我们同时抽到男生A和男生B的概率是$ p(x_A | θ) · p(x_B | θ)$,同理,我同时抽到这 100 个男生的概率就是他们各自概率的乘积了。用数学家的口吻说就是从分布是 $p(x | θ)$ 的总体样本中抽取到这 100 个样本的概率,也就是样本集 $X$ 中各个样本的联合概率,用下式表示:

$$
L(\theta)=L\left(x_{1}, \cdots, x_{n} ; \theta\right)=\prod_{i=1}^{n} p\left(x_{i} ; \theta\right), \theta \in \Theta
$$

  • 这个概率反映了,在概率密度函数的参数是 $θ$ 时,得到 X 这组样本的概率。因为这里 X 是已知的,也就是说我抽取到这100个人的身高是可以测出来的,也就是已知的。而 $θ$ 是未知的,则上面这个公式只有 $θ$ 是未知的,所以他是关于 $θ$ 的函数。这个函数反映的是在不同的参数 $θ$ 的取值下,取得当前这个样本集的可能性,因此称为参数 $θ$ 相对于样本集 X 的似然函数(likehood function),记为 L(θ)。

  • 这里出现了一个概念,似然函数。还记得我们的目标吗?我们需要在已经抽到这一组样本X的条件下,估计参数 $θ$ 的值。怎么估计呢?似然函数有什么用呢?我们下面先了解一下似然的概念。

    举个例子:

    某位同学与一位猎人一起外出打猎,一只野兔从前方窜过。只听一声枪响,野兔应声倒下,如果要你推测,这一发命中的子弹是谁打的?你就会想,只发一枪便打中,由于猎人命中的概率一般大于这位同学命中的概率,所以这一枪应该是猎人射中的。

    这个例子所作的推断就体现了极大似然法的基本思想。下面再说一个最大似然估计的例子。

    再例如:假设你去赌场了,但是不知道能不能赚钱,你就在门口堵着出来,出来一个人你就问人家赚钱还是赔钱,如果问了五个人,假设五个人都说自己赚钱了,那么你就会认为,赚钱的概率肯定是非常大的。

极大似然估计就是估计模型参数的统计学方法

  • 回到男生身高的例子。在学校那么多男生中,我一抽就抽到这 100 个男生(表示身高),加入不是其他人,那是不是表示在整个学校中,这 100 个人(的身高)出现的概率最大啊,那么这个概率怎么表示呢?就是上面那个似然函数 $L(θ)$。所以我们就只需要找到一个参数 $θ$ ,其对应的似然函数 $L(θ)$ 最大,也就是说抽到这 100 个男生(的身高)的概率最大,这个叫做 $θ$ 的最大似然估计量,记为:

$$
\hat{\theta}=\arg \max l(\theta)
$$

  • 有时,可以看到 $L(θ)$ 是连乘的,所以为了便于分析,还可以定义对数似然函数,将其变为连加的:

$$
H(\theta)=\ln L(\theta)=\ln \prod_{i=1}^{n} p\left(x_{i} ; \theta\right)=\sum_{i=1}^{n} \ln p\left(x_{i} ; \theta\right)
$$

  • 现在我们知道了,要求出 $θ$ ,只需要使 $θ$ 的似然函数 $L(θ)$ 极大化,然后极大值对应的 $θ$ 就是我们的估计。这里就回到了求最值的问题了。怎么求一个函数的最值?当然是求导,然后令导数为零,那么解这个方程得到的 $θ$ 就是了(前提是函数$L(θ)$连续可微)。那如果 $θ$ 是包含多个参数的向量,那么如何处理呢?当然是求 $L(θ)$ 对所有参数的偏导数,也就是梯度了,那么 $n$ 个未知的参数,就有 $n$ 个方程,方程组的解就是似然函数的极值点了,当然就得到了这 $n$ 个参数了。

算例举例

  • 设样本服从正态分布 $ N\left(\mu, \sigma^{2}\right) $
  • 则似然函数为:
$$ L\left(\mu, \sigma^{2}\right)=\prod_{i=1}^{N} \frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{\left(x_{i}-\mu\right)^{2}}{2 \sigma^{2}}}=\left(2 \pi \sigma^{2}\right)^{-\frac{n}{2}} e^{\frac{1}{2 \sigma^{2}} \sum^{n}\left(x_{i}-\mu\right)^{2}} $$
  • 它的对数:
$$ \ln L\left(\mu, \sigma^{2}\right)=-\frac{n}{2} \ln (2 \pi)-\frac{n}{2} \ln \left(\sigma^{2}\right)-\frac{1}{2 \sigma^{2}} \sum_{i=1}^{n}\left(x_{i}-\mu\right)^{2} $$
  • 求导, 得方程组:
$$ \left\{\begin{array}{l} \frac{\partial \ln L\left(\mu, \sigma^{2}\right)}{\partial \mu}=\frac{1}{\sigma^{2}} \sum_{i=1}^{n}\left(x_{i}-\mu\right) \\ \frac{\partial \ln L\left(\mu, \sigma^{2}\right)}{\partial \sigma^{2}}=-\frac{n}{2 \sigma^{2}}+\frac{1}{2 \sigma^{4}} \sum_{i=1}^{n}\left(x_{i}-\mu\right)^{2}=0 \end{array}\right. $$
  • 联合解得:
$$ \left\{\begin{array}{l} \mu^{*}=\bar{x}=\frac{1}{n} \sum_{i=1}^{n} x_{i} \\ \sigma^{* 2}=\frac{1}{n} \sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)^{2} \end{array}\right. $$
  • 似然方程有唯一解 $\left(\mu^{ * }, \sigma^{ * 2}\right)$ , 而且它一定是最大值点, 这是因为当 $ |\mu| \rightarrow \infty $ 或 $ \sigma^{2} \rightarrow \infty $ 或 $ 0_{\text {时, }} $ 非负函数
  • $ L\left(\mu, \sigma^{2}\right) \rightarrow 0 $.于是U和 $ \sigma^{2} $ 的极大似然估计为 $ \left(\mu^{ * }, \sigma^{ * 2}\right) $.

似然总结

  • 其实最大似然估计你可以把它看做是一个反推。多数情况下我们是根据已知条件来推断结果,而最大似然估计是已经知道了结果,然后寻找使该结果出现的可能性最大的条件,以此作为估计值。比如,如果其他条件一定的话,抽烟者发生肺癌的危险是不抽烟者的五倍,那么如果我们知道有个人是肺癌,我想问你这个人是抽烟还是不抽烟。你如何判断,你可能对这个人一无所知,你所知道的只有一件事,那就是抽烟更容易发生肺癌,那么你会猜测这个人不抽烟吗?我相信你更可能会说,这个人抽烟,为什么?这就是“最大可能”,我只能说他“最有可能”是抽烟的,“他是抽烟的”这一估计才是“最有可能”得到“肺癌” 这样的结果,这就是最大似然估计。

  • 极大似然估计,只是概率论在统计学的应用,它是参数估计的方法之一。说的是已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次实验,观察其结果,利用结果推出参数的大概值。最大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率最大,我们当然不会再去选择其他小概率的样本,所以干脆把这个参数作为估计的真实值。

  • 求最大似然估计值的一般步骤

  1. 写出似然函数

  2. 对似然函数取对数,并整理

  3. 求导数,令导数为0,得到似然方程

  4. 解似然方程,得到的参数即为所求

最大后验概率估计MAP

MAP的思想类似,但是加入了参数的先验分布的假设。估计的过程就是根据样本的信息对参数的先验概率分布进行调整的过程,进而得到参数相对于样本的后验概率分布。为了满足事件发生即合理,即参数的后验概率应尽可能大,从而保证这些事件出现的情况更加合理,因此通过最大化后验概率来确定最终的参数的概率分布。

$$
\operatorname{argmaxp}(\theta \mid X)=\operatorname{argmax} \frac{p(X \mid \theta) p(\theta)}{p(X)}=\operatorname{argmaxp}(X \mid \theta) p(\theta)=\operatorname{argmax}\left(\prod_{x_1}^{x_n} p(x_i \mid \theta)\right) p(\theta)
$$

  • 为了便于计算,对两边取对数,后验概率最大化就变成了:

$$
\operatorname{argmax}\left(\sum_{x_1}^{x_n} \operatorname{logp}(x_i \mid \theta)+\log p(\theta)\right)
$$

二者的关系

相同点:MLE和MAP均是通过直接求数值解的方式估计参数。

不同点:MAP加入先验假设$p(\theta)$,相当于在MLE的基础上增加一个先验项,即$logp(\theta)$。

参考资料


极大似然估计(MLE)和最大后验概率估计(MAP)
https://www.zywvvd.com/notes/study/probability/distributions/mle-map/mle-map/
作者
Yiwei Zhang
发布于
2021年5月18日
许可协议