【机器学习】047--⼀维⾼斯分布:极⼤似然 与⽆偏性

Posted by ShawnD on September 23, 2020

我们开篇⾸先介绍⾼斯分布,它的重要性体现在两点:

  • 第⼀:依据中⼼极限定理,当样本量⾜够⼤的时候,任意分布的均值都趋近于⼀个⾼斯分布,这是在整个⼯程领域体 现出该分布的⼀种普适性;
  • 第⼆:⾼斯分布是后续许多模型的根本基础,例如线性⾼斯模型(卡尔曼滤波)、⾼斯过程等等。

因此我们⾸先在这⼀讲当中,结合⼀元⾼斯分布,来讨论⼀下极⼤似然估计,估计有偏性、⽆偏性等基本建模问题。

极⼤似然估计问题背景

我们来回顾⼀下⼀元⾼斯分布的概率密度函数$pdf$,假设我们有⼀组观测样本数据$X = (x_1, x_2, x_3, …, x_N)$,它们 服从参数$\theta = (\mu, \sigma^2)$的⼀元⾼斯分布,那么我们如何利⽤这组样本来对分布的参数$\theta$进⾏估计呢,换句话说也就是估计出样本所服从⾼斯分布的均值和⽅差?

这⾥需要使⽤极⼤似然估计⽅法,我们⾸先来看⼀下⼀元⾼斯分布的概率密度函数的表达式:

\[p(x) = \frac{1}{\sqrt{2 \pi} \sigma}e^{- \frac{(x - \mu)^2}{2 \sigma^2}}\]

极⼤似然估计的本质就是估计出模型的参数$\theta$,使得 我们所观测出的这组样本$X = (x_1, x_2, x_3, …, x_N)$出现的概率最⼤。

这⾥我们还要熟悉另⼀个表达式的写法,那就是$p(x \mid \theta)$,我们常常能够看到这个条件概率的写法,它在这⾥就是指明确了参数$\theta$(也就是$\mu, \sigma^2$)的情况下, 服从高斯分布的样本$x$出现的概率, 实际上这个表达式最终的写法和上⾯的概率密度函数形 式上是⼀样的:

\[p(x \mid \theta) = \frac{1}{\sqrt{2 \pi} \sigma}e^{- \frac{(x - \mu)^2}{2 \sigma^2}}\]

那么对于服从⾼斯分布的这⼀组样本而⾔$X = (x_1, x_2, x_3, …, x_N)$,我们的⽬标是估计出(换做更直⽩的语⾔,就是求 出)这个分布的参数$\theta$,也就是$\mu, \sigma^2$,使得在这个⾼斯分布的框架下,这组样本出现的概率最⼤,也就是$p(X \mid \theta)$的概率值最⼤,这样就确定了$p(X \mid \theta)$是我们的求取参数的优化⽬标了。

极⼤似然估计的求法

由于这⼀组样本$X = x_1, x_2, x_3, …, x_N$中的每⼀个样本$x_i$都是独⽴同分布的,即满⾜同⼀个⾼斯分布,并且彼此之间相互独⽴,那么依据随机变量独⽴的性质,优化⽬标$p(X \mid \theta)$进 ⼀步被变化为:

\[p(X \mid \theta) = \prod_{i=1}^{n} p(x_i \mid \theta)\]

我们的⽬标就是找到⼀组参数$\theta$,使得上述概率值取得最⼤。同时,为了能够简化后续计算,我们对⽬标函数取对数,⼀⽅ ⾯因为对数满⾜单调递增,另⼀⽅⾯对数函数能够使得连乘运算变化为连加运算,可以说是⼀个不错的选择:

\[log p(X \mid \theta) = log \prod_{i=1}^n p(x_i \mid \theta) = \sum_{i=1}^n log p(x_i \mid \theta)\]

我们进⼀步带⼊概率密度函数的表达式:

\[\sum_{i=1}^n log p(x_i \mid \theta) = \sum_{i=1}^n log \frac{1}{\sqrt{2 \pi} \sigma} e^{- \frac{(x_i - \mu)}{2 \sigma^2}} = \sum_{i=1}^n[log \frac{1}{\sqrt{2 \pi}} + \log \frac{1}{\sigma} - \frac{(x_i - \mu)^2}{2 \sigma^2}]\]

那么,现在⽬标明确了,我们来寻找最佳的$\mu_{mle}$和$\sigma_{mle}$ ,使得:

\[\sum_{i=1}^{n} [log \frac{1}{\sqrt{2 \pi}} + log \frac{1}{\sigma} - \frac{(x_i - \mu)^2}{2 \sigma^2}]\]

取得最⼤。

我们对这两个参数,⼀个个来看,具体处理⽅法很简单,就是求使得上⾯式⼦偏导数为0的$\mu$和$\sigma$取值。

先看参数$\mu$:

\[argmax \mu_{mle} = argmax_\mu \sum_{i=1}^n [log \frac{1}{\sqrt{2 \pi}} + log \frac{1}{\sigma} - \frac{(x_i - \mu)^2}{2 \sigma^2}]\]

由于前⾯两项都与$\mu$⽆关,最终:

\[argmax \mu_{mle} = argmax_\mu \sum_{i=1}^n [- \frac{(x_i - \mu)^2}{2 \sigma^2}] = argmax_\mu \sum_{i=1}^n [(x_i - \mu)^2]\]

后⾯的就很好办了,直接求$\mu$的偏导即可:

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

最终我们得出:

\[\mu_{mle} = \frac{1}{N} \sum_{i=1}^N x_i\]

也就是说,样本的均值就是⾼斯分布参数 的极⼤似然估计值。

同样地,我们再看如何利⽤样本数据对⾼斯分布的⽅差进⾏极⼤似然估计:

\[\text{argmax } \sigma_{mle} = argmax_{\sigma} \sum_{i=1}^{n}[log \frac{1}{\sqrt{2 \pi}} + \log \frac{1}{\sigma} - \frac{(x_i - \mu)^2}{2 \sigma^2}] = argmax_\sigma \sum_{i=1}^n [log \frac{1}{\sigma} - \frac{(x_i - \mu)^2}{2 \sigma^2}]\]

同样地,我们还是利⽤求偏导的⽅法来解决问题:

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

因此,最终我们也得出了⾼斯分布⽅差的极⼤似然估计值:

\[\sigma^2_{mle} = \frac{1}{N} \sum_{i=1}^n (x_i - \mu_{mle})^2\]

参数估计的有偏性和⽆偏性

我们在前⾯已经花了较⼤的篇幅,通过样本$X = x_1, x_2, x_3, …, x_N$求得了⾼斯分布两个参数$\mu$和$\sigma^2$的极⼤似然估计值,那么此时我们⾃然就要关⼼了:

通过这种求解⽅法得到的参数估计值,它和模型参数的真实值有没有差距?我们如何来衡量极⼤似然估计值的性质?

这⾥我们来回顾⼀下⽆偏估计的概念:如果估计量的期望等于被估计参数的真实值,那么这个估计值就满⾜⽆偏性。那么从 ⾼斯分布的样本中推断出来的均值和⽅差的极⼤似然估计$\mu_{mle}$和$\sigma^2_{mle}$是否满⾜⽆偏性呢?

⽆偏性的验证

⾸先我们还是从均值的极⼤似然估计⼊⼿,我们对$\mu_{mle}$求期望:

\[E[\mu_{mle}] = E[\frac{1}{N} \sum_{i=1}^n x_i] = \frac{1}{N} E[x_i] = \frac{1}{N}\sum_{i=1}^{n}\mu = \mu\]

估计值的期望等于模型参数的真实值,因此均值的极⼤似然估计$\mu_{mle}$是⽆偏的。

而⽅差的情况就要特殊⼀些,我们通过下⾯的公式推导就会看到⽅差的极⼤似然估计并不是⽆偏的,这个推导过程⽐较复 杂,我们⼀点⼀点来解析:

\[\begin{aligned} \sigma_{mle}^2 &= \frac{1}{N} \sum_{i=1}^N(x_i - \mu_{mle})^2 = \frac{1}{N} \sum_{i=1}^N(x_i^2 + \mu_{mle}^2 - 2x_i \mu_{mle}) \\ &= \frac{1}{N} \sum_{i=1}^N x_i^2 + \frac{1}{N} \sum_{i=1}^N \mu_{mle}^2 - \frac{1}{N} \sum_{i=1}^N 2 x_i \mu_{mle} \\ &= \frac{1}{N} \sum_{i=1}^N x_i^2 + \frac{1}{N} \sum_{i=1}^N \mu_{mle}^2 - 2 \mu_{mle} \frac{1}{N} \sum_{i=1} ^N x_i\end{aligned}\]

我们发现最后⼀项当中的$\frac{1}{N} \sum_{i=1}^N x_i$就是模型均值的极⼤似然估计$\mu_{mle}$,因此我们稍作代换就有:

\[\begin{aligned} \sigma_{mle}^2 & = \frac{1}{N} \sum_{i=1}^N x_i^2 + \frac{1}{N} \sum_{i=1}^N \mu_{mle}^2 - 2 \mu_{mle} \frac{1}{N} \sum_{i=1}^N x_i \\ & = \frac{1}{N} \sum_{i=1}^N x_i^2 + \mu_{mle}^2 - 2 \mu_{mle}^2 = \frac{1}{N} \sum_{i=1}^N x_i^2 - \mu_{mle}^2 \end{aligned}\]

因此,我们的⽬标就明确为求取下⾯式⼦的期望:

\[E[\sigma_{mle}^2] = E[\frac{1}{N}\sum_{1=1}^N x_i^2 - \mu_{mle}^2]\]

这个期望的求取有⼀定的技巧,我们引⼊模型均值的真实值$\mu$:

\[\begin{aligned} E[\sigma^2_{mle}] &= E[\frac{1}{N} \sum_{i=1}^N x_i^2 - \mu^2 - (\mu_{mle}^2 - \mu^2)] \\ & = E[\frac{1}{N} \sum_{i=1}^N x_i^2 - \mu^2] - E[\mu_{mle}^2 - \mu^2] \end{aligned}\]

这前后两个期望的式⼦,我们分开来看,⾸先看$E[\frac{1}{N} \sum_{i=1}^N x_i^2 - \mu^2]$:

\[\begin{aligned} E[\frac{1}{N} \sum_{i=1}^N x_i - \mu^2] & = E[\frac{1}{N}\sum_{i=1}^N x_i^2 - \frac{1}{N} \sum_{i=1}^N \mu^2] \\ & = \frac{1}{N} E[\sum_{i=1}^N(x_i - \mu^2)] = \frac{1}{N} \sum_{i=1}^N E[(x_i^2 - \mu^2)] \end{aligned}\]

这个式⼦有何端倪?我们仔细观察⼀下变换后的形式:

\[E[(x_i^2 - \mu^2)] = E[x_i^2] - \mu^2 = E[x_i^2] - E[x_i]^2 = var(x_i) = \sigma^2\]

经过这么⼀变换,发现$E[x_i^2] - E[x_i]^2$就是⽅差的定义,因此$E[(x_i^2 - \mu^2)]$表⽰的就是⽅差的实际值$\sigma^2$,前⾯⼀部分期望的结果就是:

\[E[\frac{1}{N} \sum_{i=1}^N x_i^2 - \mu^2] = \frac{1}{N} \sum_{i=1}^N \sigma^2 = \sigma^2\]

之前说过了,由于均值的极⼤似然估计是⽆偏估计,因此$\mu = E[\mu_{mle}]$,我们进⾏替换可以得到:

\[\begin{aligned} E[\mu_{mle}^2]-\mu^2 &= E[\mu_{mle}^2]-E[\mu_{mle}]^2 = var(\mu_{mle}) \\ & = var(\frac{1}{N}\sum_{i=1}^Nx_i)=\frac{1}{N^2}var(\sum_{i=1}^Nx_i)=\frac{1}{N^2}\sum_{i=1}^Nvar(x_i)\\ & = \frac{1}{N^2}\sum_{i=1}^N\sigma^2=\frac{1}{N}\sigma^2 \end{aligned}\]

真是千回百转啊,我们现在把前后两个化简后的期望结果进行合并,就可以得到方差的极大似然估计值的期望值了:

\[\begin{aligned} E[\sigma_{mle}^2] &= E[\frac{1}{N}\sum_{i=1}^Nx_i^2-\mu^2]-E[\mu_{mle}^2-\mu^2]\\ & = \sigma^2-\frac{1}{N}\sigma^2=\frac{N-1}{N}\sigma^2 \end{aligned}\]

结果出来了,我们发现方差的极大似然估计值并不等于该参数的真实值 $\sigma^2$,而是要偏小的,因此方差的极大似然估计是有偏的。

那么,如果想要它变得无偏,进行一下系数的简单修正,在前面乘上一个 $\frac{N}{N-1}$ 即可:

\[\begin{aligned} \hat{\sigma^2} &= \frac{N}{N-1}\sigma^2_{mle}=\frac{N}{N-1}\frac{1}{N}\sum_{i=1}^N(x_i-\mu_{mle})^2\\ &=\frac{1}{N-1}\sum_{i=1}^N(x_i-\mu_{mle})^2 \end{aligned}\]