EM(expectation maximization)理解以及推导过程

from :http://www.hxxiaopei.com/?p=26

最近在看topic model,引入主题隐含的状态,采用EM算法求解参数,所以先系统了解EM算法,感觉比较抽象,参照一些论文以及斯坦福的机器学习视频,整理一下自己的想法。

1.引入

给定一个数据集合DataSet,观察变量是X,隐藏变量为Z,如果概率模型的变量都是观察变量,则直接利用极大似然估计法估计模型参数 l(θ)=maxθNi=1lnP(xi|θ) ,对 l(θ) 求导,采用牛顿法或者梯度下降法,求解参数。如果模型中存在隐含变量Z,则 P(X|θ)=zP(X,z|θ) l(θ)=maxθNi=1lnzP(xi,z|θ) ,采用极大似然估计,对 θ 求导,无法获取其解析形式,不能直接获取其结果。EM算法就是含有隐藏变量的概率模型参数估计方法。

2.算法

概括性的介绍,无法直接对 l(θ)=Ni=1lnzP(xi,z|θ) 求解,利用jessen不等式以及convex函数的性质,求 l(θ) 的下界,通过求下界的极大值,得到模型参数, ,所以并不是获取算法的全局最优解,而是局部最优。

EM参考手册对算法过程进行详细的推导,斯坦福视频也有一个推导过程,我理解EM参考手册中的推导更自然,而斯坦福视频推导更简练,直接match最后的结果。

推导过程:

l(θ)

=i=1NlnzP(xi,z|θ)

=i=1NlnzQ(z)P(xi,z|θ)Q(z)

=i=1NlnE(P(xi,z|θ)Q(z))

i=1NE(lnP(xi,z|θ)Q(z))

=i=1NzQ(z)lnP(xi,z|θ)Q(z)

其中  Q(z)0  ,  zQ(z)=1

Q(z)是z的分布函数,可以理解为z的概率密度函数

jensen不等式,ln E(x) >= E(ln(x))

现在将 l(θ 的参数估计转换成对其下界  Ni=1zQ(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)时,观察变量以及参数 θ 都是已知的

EM算法:

在给定Q(z)的情况下,可以利用上面的公式计算出 lθ 的下界,Estep是确定Q(z),而M-step则是利用确定的Q(z)以及公式 Ni=1zQ(z)lnP(xi,z|θ)Q(z) 计算极大似然估计

所以EM算法是:

Repeat untile convergence {

E step:

Q(z)=P(z|xi;θ)

M step:

θ=argmaxθNi=1zQ(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=1zQ(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

 

你可能感兴趣的:(算法,dataset)