最大似然估计 Maximum likelihood estimation,MLE

最大似然估计 Maximum likelihood estimation,MLE

Posted by Chunfu Shawn on 2023/01/30
Last Updated by Chunfu Shawn on 2023/01/30

一、统计推断

推断统计学(或称统计推断,英语:statistical inference), 指统计学中,研究如何根据样本(sample)数据去推断总体(population)特征(或者参数)的方法。

比如,我们要研究中国人的身高分布,那么全国14亿人的身高数据就是总体(population), 这14亿身高数据所属的数据分布称为 总体分布 (population distribution), 其中每一个人的身高数据,即单个数据称为个体(individual)。 然而在实际中,我们不可能得到14亿的全部数据,也就是总体数据通常是无法得知的。 这时,可以选择抽样(sampling),即从总体当中随机抽取出部分个体,然后得到这部分抽样个体的数据, 一次抽样的结果称为一份样本(sample)。 比如,从14亿的人群中随机抽取出1万的个体,然后去测量这1万人的身高数据, 这样就得到了一份包含1万个数据的样本。

统计推断就是根据这些样本的统计参数值去估计总体的参数。 它是在对样本数据进行描述的基础上,对统计总体的未知数量特征做出以概率形式表述的推断。 更概括地说,是在一段有限的时间内,通过对一个随机过程的观察来进行推断的。 在统计学中,利用样本推断(估计)总体分布参数方法有很多, 比如矩估计、最大似然估计、贝叶斯估计等等,这里我们讨论其中应用最为广泛的极大似然估计算法

二、最大似然估计

最大似然估计,Maximum likelihood estimation,MLE),通俗理解来说,就是在已知随机变量属于哪种概率分布的前提下,利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值。换句话说,极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。

1、独立同分布的联合概率分布

假设有一个离散随机变量,其概率质量函数是 ,其中  是这个概率分布的参数,其值是未知的。 函数   本身是已知的,也就是我们知道所属何种概率分布,比如是高斯分布等等。

现在假设我们有一些变量 的观测值,这些观测值集合用符号  表示。这些观测值都是从同一个概率分布 得到的, 并且这些样本是独立获取的,即每条样本值不依赖其它样本值, 我们可以称这些样本是独立同分布的。

对于一个随机变量的一组观测样本集,其中任何一条样本的发生概率是,那么所有样本发生的联合概率是,又由于所有样本满足独立同分布的,根据联合概率分布的分解法则有:

取不同的值,这个样本集的联合概率也会不同,说明产生这组样本的概率会不同。但是我们无从得知参数的真实值,但是如果样本集已知,如何挑一个最好的

2、最大可能性

常识告诉我们,概率越大的事情越容易发生,概率越小的事情越不容易发生。 观测样本集的发生概率  越大, 我们就越容易见到我们现在看到的样本。 既然现在这个样本集  已经真实的发生了(我们观测到了),是不是可以认为这个样本集的  概率是最大的, 使其最大的  也是最优的选择呢?

在概率统计中,把观测样本的联合概率称为 似然(likelihood), 一般用符号  表示, 有时也称为似然函数(likelihood function)。

3、最大似然估计

观测样本集的似然(联合概率)取得最大值时参数的值作为参数估计值的方法称为最大似然估计。

观测样本集的似然函数就是样本集的联合概率:

最优的就是使样本集发生概率最大的值,也就是令似然函数取最大的值。似然函数是

每条样本概率的连乘, 而概率值都是在[0,1]之间的,一系列小于1的数字连乘会趋近于0。 而计算机在处理浮点数时存在精度问题,太小的值是无法表示的。 所以一般我们会为似然函数加上一个对数操作来解决计算机的精度问题, 我们把加了对数的似然函数称为对数似然函数(log-likelihood function), 一般用符号表示。

极大化对数似然函数得到的和极大化似然函数是等价的。

虽然这里我们是以离散随机变量为例,但最大似然估计同样可以应用于连续值随机变量的参数估计。 连续值随机变量用的是概率密度函数函数表示其每个状态的概率大小情况, 概率密度函数表示是每一个点的”密度”,而不是概率值, 但每个点的密度是和它的概率呈正比的。 假设连续值随机变量  的概率密度函数是  ,则有

最大似然估计是通过极大化对数似然函数求解,对于连续值随机变量用概率密度函数  替换 ,对极大化求解没有任何影响。 因此在使用最大似然估计概率模型的分布时,如果是离散随机变量就用概率质量函数, 如果是连续值随机变量就是概率密度函数

那么如何进行极大化求解呢?通常有如下三种方法:

  1. 解析法(Analytic),又叫直接求解法。我们知道一个函数在取得极值时其一阶导数是为 0 的, 因此可以通过令对数似然函数的一阶导数为 0 得到一个方程等式,然后解这个方程得到。这种方法得到的解称为解析解。

    函数的一阶导数为 0 的点称为“驻点”(stationary point),可能为(局部)极大或者极小值点,也可能为鞍点(saddle point), 可以通过极值点的二阶导数判断是极大值点还是极小值点。 并不是所有情况都能得到解析解的,很多时候是无法直接求得的。

  2. 网格搜索法(Grid Search)。如果我们知道  的值在空间 Θ 中, 可以对这个空间进行搜索来得到使得似然函数最大的参数值。 换句话说,就是尝试这个空间中的每个值,找到令似然函数取得最大的参数值。 网格搜索方法是一种很好的方法,它表明可以通过重复逼近和迭代来找到似然函数的最大值。 但是,它在大多数情况下不切实际,并且当参数数量变多时变得更加困难。

  3. 数值法(Numerical)。这是现在最常用的算法。本质上就是先为  赋予一个初始值, 然后利用爬山法找到最优解。梯度下降(上升)法(Gradient descent),牛顿法(Newton-Raphson),BHHH,DFP等等都属于这类。

4、问题

  1. 虽然最大似然估计使用十分广泛,但是它不是完美的,在样本较少时,或者样本有偏时,得到的估计值偏差较大。 例如投掷一个普通的硬币3次,每次都是正面朝上,这时最大似然估计正面朝上的概率时结论会是1, 表示所有未来的投掷结果都是正面向上。这明显是有问题的,当数据集(观测样本集)较少时非常容易出现错误的结果, 当然也不是没有解决办法,比如可以使用贝叶斯估计,贝叶斯估计可以算是最大似然估计的升级版, 通过增加先验的方式解决这种极端的场景。
  2. 如果样本之间”不独立”,根据链式法则,联合概率就需要分解成一系列条件概率的乘积,显然这样变复杂很多。 实际上样本独立性并不是必须得,与你的概率模型相关,比如马尔科夫链,其中既有独立也有不独立,这里暂时不过多讨论了。
  3. 对数问题。首先是为什么加对数,或者说加对数的好处的是什么? 前文已经提到了一点,加对数后连乘变成连加,避免了计算机无法处理极小浮点数的问题。除此外,还有一个好处是求导变简单了。 似然函数求极值的过程需要求导,乘法求导是十分困难的,加法就简单了很多。 最后一个问题,对数的底数有什么特别要求没有?答案是没有。理论上,底数是多少都行,但如果你的概率分布是指数族, 即概率质量(密度)函数是自然常数的指数形式,此时用以为底的对数是十分合适的, 正好把给抵消掉。

三、参考

最大似然估计-张振虎的博客