为什么极大似然估计求导为 0 就是要求的值呢?

最近做数学题 一碰到极大似然基本就是对数求导 或者分析 我想问的是 对数求导之后得到的是极值点 应该还要加以验证才知道是不是极大值 然后分析可能得出,进而是最大值 为什么现在题目直接一个求导 就完事了呢
关注者
216
被浏览
20794

17 个回答

说来有点惭愧,我竟从来没想过这个问题,感觉微积分学的很不扎实。不过思考了一下,确实绝大部分情况下,这个最大值是不需要验证、自然就可以成立的。我们常用的分布基本都属于指数分布族,而指数分布族的性质就可以保证似然函数是个凹函数,因此极大值自然就是最大值了。反正我就从头讲一下吧,懂得就跳读。


1。指数分布族

指数分布族是一类概率分布的总称,这类分布的密度函数可以写成这样的形式:

p_\theta(x)=h(x)\exp\left(\theta^T\phi(x)-A(\theta)\right)

这里  x 是密度函数的自变量,也是随机变量 X 的取值,

\phi(X) 叫做充分统计量,是 X 的向量值函数,也就是个随机向量, \phi( x)\phi(X) 的取值,

\theta 是一个参数向量,维度和充分统计量相同,

h(x) 是一个只和  x 有关的函数,一般叫base measure,不知道怎么翻译,

A(\theta) 叫做log partition function,统计物理里面好像翻译叫配分函数,机器学习领域我好像还没见过中文怎么翻译。本质上就是个归一化常量(常量是相对于  x 来说的),以保证整个密度函数对  x 积分为1,


给定 h(x)\phi( x)\theta ,这个分布其实就是确定的了。因为我们只要算出 A(\theta)=\log \int h(x)\exp(\theta^T\phi(x)) dx ,就一定有 \int h(x)\exp\left(\theta^T\phi(x)-A(\theta)\right) dx = 1 ,那么 p_\theta(x)=h(x)\exp\left(\theta^T\phi(x)-A(\theta)\right) 就是一个密度函数。


这里举个例子,我们最常用的正态分布就属于指数分布族,因为

p_{\mu,\sigma}(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}=\frac{1}{\sqrt{2\pi}}e^{-\frac{1}{\sigma^2}\frac{x^2}{2}+\frac{\mu}{\sigma^2}x-\frac{\mu^2}{2\sigma^2}-\log\sigma}

因此,令 \phi(x)=\left[\frac{x^2}{2},x\right]\theta=\left[\frac{1}{\sigma^2},\frac{\mu}{\sigma^2}\right]h(x)=\frac{1}{\sqrt{2\pi}}A(\theta)=\frac{\mu^2}{2\sigma^2}+\log\sigma ,就可以把正态分布的密度化为指数分布族的形式。

我们常用的分布,比如伯努利分布、二项分布、指数分布、泊松分布、高斯分布、beta分布、gamma分布、Diricilet分布,都是指数分布族,参考资料[1]里面有个表,列了很多分布。


2。 A(\theta) 的凸性

指数分布族和这个问题最相关的部分还是这个log partition function A(\theta) :这个 A(\theta) 是个凸函数。

证明也不是很复杂,我这里找了两个参考资料[2][3]。[2]直接通过 A(\theta) 的定义,利用Holder不等式证明的凸性。[3]则证明了 A(\theta) 的海森矩阵等于充分统计量的协方差阵,协方差阵半正定,从而证明 A(\theta) 是凸函数。

顺带一提,[3]也证明了 A(\theta) 的梯度等于充分统计量的期望,这也是 A(\theta) 有趣的两条性质。


3。最大似然问题

一个最大似然问题是这样定义的:给定数据集 \mathcal{X}=\{x_1,x_2...,x_ n\} ,一个待拟合的分布族 p_\theta(x) ,求 \hat{\theta} 使得似然 L(\theta|\mathcal{X})=\log p_\theta(\mathcal{X})=\sum_{i=1}^N\log p_\theta(x_i) 最大。

而如果这里 p_\theta(x) 属于指数分布族的话,我们就有 L(\theta|\mathcal{X})=\log h(\mathcal{X})+\theta^T\sum_{i=1}^{n}x_i-n A(\theta) ,这里 h(\mathcal{X})=\prod_{i=1}^nh(x_i) 是个常数, A(\theta) 是个关于 \theta 的凸函数, -A(\theta) 就是凹函数, \theta^T\sum_{i=1}^{n}x_i 是个关于 \theta 的线性函数,三者求和还是个凹函数。

所以如果导数等于零有解的话,一定只有一个,而且就是最大值。


4。一般情况下验证最大值是否是必要的?

是必要的,考虑如下例子:

待拟合的概率密度族 p_\theta(x)\propto p_\mathcal{N}(x|\theta-1,0.1)+p_\mathcal{N}(x|\theta,0.1)+p_\mathcal{N}(x|\theta+1,0.1) ,这里 p_\mathcal{N}(x|\mu,\sigma) 表示正态分布的密度函数, \propto 是正比于符号,表示归一化常数懒得写了。

数据集 \mathcal{X}=\{x_0\} 为单点集,那么似然函数导数为零的点有五个,极大值三个,分别为 \theta=x_0\theta=x_0\pm1 ,极小值两个,大概在 \theta\pm0.5 附近,但最大似然在 \theta=x_0 取得。

更一般的,给定定义在实数集上的积分有界且可导函数 f(x) ,这里 f(x) 可以包含极大值、极小值、驻点,各种各样导数为零但是不是最大值的情况。

考虑平移族 p_\theta(x) \propto f(x-\theta) ,数据集为单点集 \mathcal{X}=\{0\} ,那么似然函数 L(\theta|\mathcal{X})=\text{const}+p_\theta(0)=\text{const}+f(-\theta) ,求导并令导数为0,可以解出所有 f'(-\theta)=0\theta 值,但这里面最大值只有一个,因此是需要逐一验证的。


[1] Exponential family

[2] web.stanford.edu/class/, Proposition 6.4

[3] cs.princeton.edu/~bee/c, chapter 2.4

说白了就是不严谨呗……

@lixin liu 所说的指数分布族等等可以保证似然函数是global strictly concave的问题,Critical Points(导数为0的点)一定是唯一极大值点(于是是最大值点),那自然是没有问题的。

但是很多时候并没有这种保证,可就是有坑货敢拍脑袋就上求导等于0……

这还不够坑,更坑的是,很多时候MLE求导等于0是解不出来的,于是考虑比如Newton-Raphson迭代法等等数值解法,但是这种迭代法理论上来说要先证明收敛性(以及,如果有多个极值点,从某个初值出发会收敛到哪个点),但是一般哪管那么多,直接上迭代,收不收敛看天意……

这还不是最坑的,最坑的是,现在有些作者的文章,既证不出来,也算不动,竟然就解析地做一步Newton-Raphson迭代,然后就claim:这就是我们要找的Estimator啦~

萧老师在计量课上跟我们说起这事,当时我们都震惊了……