from :http://www.hxxiaopei.com/?p=26
最近在看topic model,引入主题隐含的状态,采用EM算法求解参数,所以先系统了解EM算法,感觉比较抽象,参照一些论文以及斯坦福的机器学习视频,整理一下自己的想法。
给定一个数据集合DataSet,观察变量是X,隐藏变量为Z,如果概率模型的变量都是观察变量,则直接利用极大似然估计法估计模型参数 l(θ)=maxθ∑Ni=1lnP(xi|θ) ,对 l(θ) 求导,采用牛顿法或者梯度下降法,求解参数。如果模型中存在隐含变量Z,则 P(X|θ)=∑zP(X,z|θ) , l(θ)=maxθ∑Ni=1ln∑zP(xi,z|θ) ,采用极大似然估计,对 θ 求导,无法获取其解析形式,不能直接获取其结果。EM算法就是含有隐藏变量的概率模型参数估计方法。
概括性的介绍,无法直接对 l(θ)=∑Ni=1ln∑zP(xi,z|θ) 求解,利用jessen不等式以及convex函数的性质,求 l(θ) 的下界,通过求下界的极大值,得到模型参数, ,所以并不是获取算法的全局最优解,而是局部最优。
EM参考手册对算法过程进行详细的推导,斯坦福视频也有一个推导过程,我理解EM参考手册中的推导更自然,而斯坦福视频推导更简练,直接match最后的结果。
其中 Q(z)≥0 , ∑zQ(z)=1
Q(z)是z的分布函数,可以理解为z的概率密度函数
jensen不等式,ln E(x) >= E(ln(x))
现在将 l(θ 的参数估计转换成对其下界 ∑Ni=1∑zQ(z)lnP(xi,z|θ)Q(z) 的参数估计问题。
需要确定等式什么时候成立,只有等式成立时,下界的极大值最接近原始问题, lnE(P(xi,z|θ)Q(z))=E(lnP(xi,z|θ)Q(z)) 。根据Ng介绍,应该是 P(xi,z|θ)Q(z)=constant 时,等式成立。
需要 Q(z)∝ P(xi,z|θ) ,同时,又有 ∑zQ(z)=1 ,则
Q(z)=P(xi,z|θ)∑zP(xi,z|θ)
=P(xi,z|θ)P(xi|θ)
=P(z|xiθ)
由此可见,Q(z)是在观察变量已知的情况下z的分布函数,是 xi 给定时z的后验概率。在实际的计算中,EM为迭代算法,计算Q(z)时,观察变量以及参数 θ 都是已知的
在给定Q(z)的情况下,可以利用上面的公式计算出 lθ 的下界,Estep是确定Q(z),而M-step则是利用确定的Q(z)以及公式 ∑Ni=1∑zQ(z)lnP(xi,z|θ)Q(z) 计算极大似然估计
所以EM算法是:
Repeat untile convergence {
E step:
Q(z)=P(z|xi;θ)
M step:
θ=argmaxθ∑Ni=1∑zQ(z)lnP(xi,z|θ)Q(z)
}
在实际是使用中, Q(z)=P(xi,z|θ)P(xi|θ) 中 θ 为t轮迭代的结果,也就是 P(xi,z|θt)P(xi|θt)
这时M step θt+1=argmaxθ∑Ni=1∑zQ(z|θt)lnP(xi,z|θt)Q(z|θt)
关于EM算法的收敛性,不再介绍。
关于EM的例子,主要介绍mixture模型,比如gaussian mixture model,接下来整理topic model plsi时,作为对EM实例介绍。
备注:关于为什么引入Q(z),我理解是数学上的技巧,比较好的构造这个形式。通过观察其他的推导过程,最后也是引入Q(z),解释为z的后验概率
from :http://www.hxxiaopei.com/?p=26