EM算法学习笔记1:简介

    EM(Expectation Maximization)算法是以迭代的方式来解决一类最大似然(maximum likelihood)问题的方法,这类问题通常比较难直接求解,通常需要引入隐变量,在假设隐变量已知的情况下,再求最大似然解,求解时隐变量一般用它的期望代替,这样反复迭代,直到收敛。

    现在观测到一个样本集 X ,它对应隐变量集为 Z ,模型参数为 θ
要使用最大似然的方法确定模型参数,其log似然函数为:

lnp(X|θ)=lnZp(X,Z|θ)

    这里Z是离散的,如果是连续的,把求和改为积分就可以。
    从公式中可以看到,ln函数的内容中包含了求和,求和是对于联合概率 p(X,Z|θ) 的,如果直接求解,这将导致非常复杂的运算。

    所以我们在这里假设 Z 也是已知的,那么 X,Z 是当前的complete data set,对这个data set来说,似然函数为:

lnp(X,Z|θ)

    此时这个似然函数可以直接求解。

    然而事实并不是那么美好,隐变量 Z 是未知的,关于 Z 的值的信息,只能通过后验概率 p(Z|X,θ) 来获得。于是考虑用 Z 的后验概率的期望,来代替 Z ,然后就可以求解似然函数。

以上是EM算法的主要思路。

EM算法主要分两步:
1,Expectation,求隐变量的后验概率的期望;
2,Maximization,最大化log似然函数。
所以EM算法是期望最大化算法。

对于上述的例子,EM算法的流程如下:
1,初始化一个 θold
2,E-step,计算隐变量后验概率的期望:

E(θ,θold)=zp(Z|X,θ)lnp(X,Z|θ)

3,M-step,将原log似然函数中的隐变量z用它的期望来代替,最大化 E(θ,θold) ,求解 θnew
θnew=argmax(θ)E(θ,θold)

    用E对 θ 求偏导,令其等于0,即可解出 θnew .
4,检查是否符合收敛条件(一般是指 θnew θold 相等或十分相近):
    如不符合,令 θold=θnew ,回到第2步。
    如符合,此时的 θnew 是最优参数 θ ,结束。

下一篇GMM高斯混合模型学习笔记(EM算法求解)中将使用EM算法解决实际问题。

主要参考资料:
《Pattern Recognition and Machine Learning》
这两篇博客帮助理解:
http://www.cnblogs.com/zhangchaoyang/articles/2623364.html
http://blog.pluskid.org/?p=81

你可能感兴趣的:(方法,迭代,em)