码迷,mamicode.com
首页 > 编程语言 > 详细

EM算法学习笔记

时间:2016-08-16 19:57:14      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:

      最近接触了pLSA模型,由于该模型中引入了主题作为隐变量,所以需要使用期望最大化(Expectation Maximization)算法求解。

为什么需要EM算法

      数理统计的基本问题就是根据样本所提供的信息,对总体的分布或者分布的数字特征作出统计推断。所谓总体,就是一个具有确定分布的随机变量,来自总体的每一个iid样本都是一个与总体具有相同分布的随机变量。

      参数估计是指这样一类问题——总体所服从的分布类型已知,但某些参数未知:设 $Y_1,...,Y_n$ 是来自总体 $\textbf Y$ 的 $iid$ 样本,记 $Y=(y_1,...,y_n)^\top$ 是样本观测值,如果随机变量 $Y_1,...,Y_n$ 是可观测的,那么直接用极大似然估计法就可以估计参数 $\theta$ 。

      但是,如果里面含有不可观测的隐变量,使用MLE就没那么容易。EM算法正是服务于求解带有隐变量的参数估计问题。

EM算法的推导与流程

      下面考虑带有隐变量 $\textbf Z$ 的参数估计问题。将观测数据记为 $Y=(y_1,...,y_n)^\top$ ,不可观测数据记为 $Z=(z_1,...,z_n)^\top$ ,那么观测数据的似然函数为$$P(Y|\theta)=\prod_{j=1}^nP(y_j|\theta)=\prod_{j=1}^n\sum_Z[P(Z|\theta)P(y_j|Z,\theta)]$$

      其中求和号表示对 $Z$ 的所有可能取值求和。

      为了省事,表述成这个形式:$$P(Y|\theta)=\sum_ZP(Z|\theta)P(Y|Z,\theta)$$

      对数似然:$$L(\theta)=\ln P(Y|\theta)=\ln \sum_ZP(Z|\theta)P(Y|Z,\theta)$$

      EM算法是一种迭代算法,通过迭代的方式求取目标函数的极大值。因此,希望每一步迭代之后的目标函数值会比上一步迭代结束之后的值大。设第 $n$ 次迭代后参数取值为 $\theta_n$ ,我们的目的是使 $L(\theta_{n+1})>L(\theta_n)$ 。那么考虑:

$$L(\theta)-L(\theta_n)=\ln P(Y|\theta)=\ln \sum_Z[P(Z|\theta)P(Y|Z,\theta)]-\ln P(Y|\theta_n)$$

      使用Jensen不等式:

$$\ln\sum_j\lambda_jy_j\geq \sum_j\lambda_j\log y_j,\quad \lambda_j\ge 0,\sum_j\lambda_j=1$$

      因为 $\sum_ZP(Z|Y,\theta_n)=1$ ,所以 $L(\theta)-L(\theta_n)$ 的第一项有

$$\begin{aligned} \ln (\sum_ZP(Z|\theta)P(Y|Z,\theta))&=\ln (\sum_ZP(Z|Y,\theta_n)\frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta_n)})\\&\ge \sum_ZP(Z|Y,\theta_n)\frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta_n)}\end{aligned}$$

      第二项有

$$ -\ln P(Y|\theta_n)=-\sum_Z[P(Z|Y,\theta_n)\ln P(Y|\theta_n)] $$

      则 $L(\theta)-L(\theta_n)$ 的下界为

$$\begin{aligned} L(\theta)-L(\theta_n)&\ge\sum_ZP(Z|Y,\theta_n)\ln\frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta_n)}-\sum_Z[P(Z|Y,\theta_n)\ln P(Y|\theta_n)]\\&=\sum_Z[P(Z|Y,\theta_n)\ln\frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta_n)}-P(Z|Y,\theta_n)\ln P(Y|\theta_n)]\\&=\sum_Z[P(Z|Y,\theta_n)\ln\frac{P(Z|\theta)P(Y|Z,\theta)}{P(Y|\theta_n)P(Z|Y,\theta_n)}] \end{aligned}$$

      定义一个函数 $l(\theta|\theta_n)$ :

$$l(\theta|\theta_n)\triangleq L(\theta_n)+\sum_Z[P(Z|Y,\theta_n)\ln\frac{P(Z|\theta)P(Y|Z,\theta)}{P(Y|\theta_n)P(Z|Y,\theta_n)}]$$

      从而有 $L(\theta)\ge l(\theta|\theta_n)$ ,也就是说 $L(\theta)$ 的一个下界为$l(\theta|\theta_n)$。(另外,有等式 $L(\theta_n)=l(\theta_n|\theta_n)$ 成立。)

      我们的目的是使 $L(\theta_{n+1})>L(\theta_n)$ ,而 $L(\theta)$ 的下界为 $l(\theta|\theta_n)$ 。

      因此,任何能让 $l(\theta|\theta_n)$ 增大的 $\theta$ ,也可以让$L(\theta)$ 增大。

      换句话说,EM算法通过优化对数似然的下界,来间接优化对数似然。

      那么,如何优化其下界?

      

     

 

EM算法学习笔记

标签:

原文地址:http://www.cnblogs.com/Determined22/p/5776791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!