最大似然估计基础介绍

一、两个简单的栗子

第一颗栗子

有两个外形完全相同且不透明的黑箱子,甲箱子里装有99个白球和1个黑球,乙箱子里装有1个白球和99个黑球。一次试验里随机选中一个箱子,然后从中取出一个球发现是黑球。请问,这个箱子最有可能是哪个箱子?

很显然,人们最直观的感觉是这个黑球最有可能是从甲箱子里取出来的,因为甲箱子里的黑球多呀。这个推断符合人们的日常经验,这里的最有可能就是“最大似然(maximum-likelihood)”的意思,而这个问题答案背后的原理就是“最大似然原理”。

第二颗栗子

我们来看下用于决策的经典公式之一贝叶斯公式:

\[p( w | x ) = \frac{p( x | w ) \cdot p( w ) }{ p( x ) } \]

在机器学习当中,其中\(p(w)\)称为先验概率,\(p(x|w)\)称为类条件概率,\(p(w|x)\)称为后验概率,后验概率表示的某事发生了那该事件属于某一类的概率,这个概率越大我们越有理由把该事件划分到这一类中。

以上的表述比较抽象,我们用一个相对实际的例子说明下。夏天到了,我们想调查一下附近一个广场上穿凉鞋遛弯的情况。已知这个广场上男女比例大约在2:1,然后男生穿凉鞋出门的概率大约在1/2,而女生穿凉鞋出门的概率大约在2/3,这就是先验概率。我们看见前方有一个人脚上光溜溜的似乎是一双凉鞋,那么这个人是男生的概率是多少?是女生的概率是多少?

记广场上出现男生的概率\(p(w_1)=2/3\),出现女生的概率\(p(w_1)=1/3\)。记男生穿凉鞋的概率为\(p(x|w_1)=1/2\),女生穿穿凉鞋的概率为\(p(x|w_2)=2/3\),这就是条件概率。现在需要求解的概率实际上是后验概率\(p(w_1|x)\)\(p(w_2|x)\)

我们首先计算广场上有人穿凉鞋的概率:

\[p(x) =p(x|w_1)p(w_1) + p(x|w_2)p(w_2) = \frac{5}{9} \]

根据贝叶斯公式可得:

\[p(w_1|x) = \frac{p(x|w_1) \cdot p(w_1)}{p(x)} = \frac{3}{5} \\ p(w_2|x) = \frac{p(x|w_2) \cdot p(w_2)}{p(x)} = \frac{2}{5} \]

二、问题引出

以上的举例都比较简单,在实际问题并不都是这么幸运的,往往先验概率和条件概率都是未知的。根据仅有的样本数据进行分类时,一种可行的办法是我们需要先对先验概率和条件概率进行估计,然后再套用贝叶斯公式。像穿不穿凉鞋、是男是女这类离散有限随机变量的分布似乎还能通过统计来估计。如果是连续型随机变量,我们就要对它的概率密度进行估计。然而困难还不止于此,像卷积神经网络等机器学习算法中随机变量几乎都是多维的,也有可能出现样本数量有限的问题。

问题似乎有点棘手,但解决办法总会有的。既然估计随机变量的分布在某些情况下较难,我们不妨先假设随机变量服从某种分布,然后对分布参数进行估计,最后通过样本校验估计出的分布是否合适。在这种思路下,最大似然估计就是其中一种可行的方法。总结起来,最大似然估计的目的就是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。

三、最大似然估计的原理

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

对于随机变量\(X\),我们想要对它的分布进行估计。为此我们对X进行了n次观察获取了样本集\(D = \{x_1, x_2, ..., x_n \}\),其中每个样本都是独立同分布的。我们假设X服从参数为$ \theta$的某种分布并给出似然函数的定义:

定义1 (似然函数,likelihood function) 联合概率密度函数\(f(D| \theta)\)称为相对于样本集\(D = \{x_1, x_2, ..., x_n \}\)的$ \theta\(的似然函数,记为\)l( \theta)$:

\[l( \theta) = f(D| \theta) = \prod_{i=1}^n{f(x_i | \theta)} \]

如果\(\hat{\theta}\)是使似然函数$ l( \theta)\(最大的\) \theta\(值,则\)\hat{ \theta}\(是参数\) \theta\(的最大似然估计值,它最终应该是样本集的某个函数,即\)\theta(D)$。

四、求解最大似然函数

最大似然估计的过程就是求解参数$ \theta$为何值时似然函数取得最大值的过程,这个过程用以下公式来表示:

\[\hat{ \theta} = \mathop{\rm{arg}} \ \mathop{\rm{max}}\limits_{\theta} l(\theta) = \mathop{\rm{arg}} \ \mathop{\rm{max}}\limits_{\theta} \prod_{i=1}^n{f(x_i | \theta)} \]

为了便于分析,在实际分析过程中往往构造一种似然函数的对数形式(对数似然函数):

\[H(\theta) = ln(l(\theta)) \]

这样一来,求解过程可以转化为:

\[\hat{ \theta} = \mathop{\rm{arg}} \ \mathop{\rm{max}}\limits_{\theta} H(\theta) = \mathop{\rm{arg}} \ \mathop{\rm{max}}\limits_{\theta} \sum_{i=1}^n{ln(f(x_i | \theta))} \]

以下分两种情况讨论:

第一种: 当似然函数只有一个参数时,我们可以求导对数似然函数。在对数似然函数满足连续、可微的正则条件下,最大似然估计量是下面微分方程的解:

\[\frac{\mathrm{d} H(\theta)}{\mathrm{d} \theta} = \frac{\mathrm{d} lnl(\theta)}{\mathrm{d} \theta} = 0 \]

第二种: 当似然函数有多个参数时,则\(\theta\)可以表示为具有\(n\)个分量的未知向量:

\[\vec{\theta} = (\theta_1, \theta_2, ..., \theta_n)^\top \]

记梯度算子:

\[\nabla_\theta = (\frac{\partial}{\partial \theta_1}, \frac{\partial}{\partial \theta_2}, ..., \frac{\partial}{\partial \theta_n})^\top \]

若似然函数满足连续可导的条件,则最大似然估计量就是如下方程的解:

\[\nabla_\theta H(\theta) = \sum_{i=1}^n \nabla_\theta ln(f(x_i | \theta)) \]

记住, 方程的解只是一个估计值,只有在样本数趋于无限多的时候,它才会接近于真实值。

五、实例演示

4.1 似然函数连续可导

设样本服从正太分布\(N(\mu,\sigma^2)\),则似然函数为:

\[L(\mu,\sigma^2) = \prod_{i=1}^n \frac{1}{\sqrt{2\pi} \sigma} e^{- \frac{(x_i - \mu)^2}{2 \sigma^2}} = (2 \pi \sigma^2)^{- \frac{n}{2}} e^{-\frac{1}{2\sigma^2} \sum_{i=1}^n (x_i-\mu)^2} \]

其对数形式为:

\[H(\mu,\sigma^2) = -\frac{n}{2}ln(2\pi)-\frac{n}{2}ln(\sigma^2)-\frac{1}{2\sigma^2} \sum_{i=1}^n (x_i-\mu)^2 \]

求其偏导数,得到方程组:

\[\frac{\partial H}{\partial \mu} = \frac{1}{\sigma^2}\sum_{i=1}^n(x_i-\mu) = 0 \]

\[\frac{\partial H}{\partial \sigma^2} = -\frac{n}{2\sigma^2}+\frac{1}{2\sigma^4}\sum_{i=1}^n(x_i-\mu)^2 = 0 \]

最终解得:

\[\hat{\mu} = \bar{x} = \frac{1}{n}\sum_{i=1}^n x_i \]

\[\hat{\sigma^2} = \frac{1}{n}\sum_{i=1}^n(x_i-\bar{x}) \]

不难通过似然函数极其偏导数的单调性可知,此处的似然函数值就是最大值。

4.2 似然函数连续不可导

设样本服从均匀分布\([a,b]\),则随机变量X的概率密度函数为:

\[f(x) = \begin{cases} \frac{1}{b-a},&a \leq x \leq b \\ 0,&other \end{cases} \]

对于样本\(D=\{x_1,x_2,...,x_n \}\),其似然函数为:

\[L(a,b)= \begin{cases} \frac{1}{(b-a)^n}, &a \leq x \leq b \\ 0, &other \end{cases} \]

很显然该似然函数不是连续可导函数,所以必须从似然函数的出发求似然函数的最大值。当\(x \in [a,b]\)时显然似然函数大于0,所以最大值一定在\(x \in [a,b]\)时达到。为了使似然函数函数达到最大值,那么就要使\(b-a\)尽可能地小,但是又必须满足\(b \leq \mathrm{max} \{x_1,x_2,...,x_n\}\)\(a \geq \mathrm{min} \{x_1,x_2,...,x_n\}\)。因此\(a\)\(b\)的最大似然估计值为:

\[\hat{a} = \mathrm{min} \{x_1,x_2,...,x_n\} \\ \hat{b} = \mathrm{max} \{x_1,x_2,...,x_n\} \]

总结

现在我们理一下本文的思路,首先我们通过两个简单的例子粗浅地解释了最大似然估计的意义,然后利用最大似然原理推导了最大似然估计的方法,最后我们又求解了正太分布和均匀分布参数的最大似然估计值。

总而言之,最大似然估计具备以下几个特点:

  1. 比其他估计方法更加简单;
  2. 收敛性:无偏或者渐近无偏,当样本数目增加时,收敛性质会更好;
  3. 如果假设的类条件概率模型正确,则通常能获得较好的结果。但如果假设模型出现偏差,将导致非常差的估计结果。

那么最后的最后,我们总结下最大似然估计的方法流程吧:

  1. 预估随机变量的分布,给出其概率密度函数;
  2. 写出对于样本的似然函数,判断似然函数的连续性和可导性;
  3. 如果似然函数连续可导,求解似然函数导数为0时时参数的取值,并根据似然函数及其导数的单调性,判断此处的似然函数值是否是否为最大值;
  4. 如果似然函数不是连续可导的,则视情况判断是否存在最大值。
posted @ 2022-03-31 15:29  拍呀拍皮球  阅读(631)  评论(0编辑  收藏  举报