标签:
最近接触了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算法通过优化对数似然的下界,来间接优化对数似然。
那么,如何优化其下界?
标签:
原文地址:http://www.cnblogs.com/Determined22/p/5776791.html