EM算法

1.与极大似然估计的关系:
极大似然估计:已知结果和概率分布估计概率分布的参数 θ
EM算法:已知结果估计概率分布的参数 θ,EM算法是含有隐变量的概率模型参数的极大似然估计法。

  一般的用Y表示观测随机变量的数据,Z表示隐随机变量的数据。Y和Z连在一起称为完全数据,观测数据Y称为不完全数据。
  假设给定观测数据Y,其概率分布是P(Y | θ), 其中 θ 为要估计的模型参数,那么Y的似然函数为L(θ) = log P(Y | θ),假设Y和Z的联合概率分布是P(Y,Z | θ),那么完全数据的对数似然函数是log P(Y,Z | θ)。

例子:http://blog.csdn.net/u011300443/article/details/46763743

2. EM算法思想:

(1)选择参数的初始值 θ(0),重复以下步骤
(2)E步:记θ(i)为第i次迭代参数θ的估计值,计算第i+1次的隐形变量的期望:
EM算法
这是完全数据对数似然函数log P(Y,Z | θ)关于在给定个观测数据Y和当前参数θ(i)下对未观测数据Z的条件概率分布P(Y,Z | θ(i))的期望。

(3)M步:求使似然函数最大化的参数 θ(i+1)
EM算法

(4)重复(2)(3)直到收敛。
EM算大与初始值的选择有关,选择不同的初始值可能会有不同的参数估计值。

3. EM算法的推导:
  对于一个含有隐形变量的概率模型,我们的目标是极大化不完全数据Y对于参数θ的对数似然函数,即极大化:
EM算法
我们想找到合适的 θ 和z使得L(θ) 最大,但是以往的分别对θ 和z求偏导并使其为0的方法并不适用,因为目标函数里有关于z的概率密度和,是关于z的和的对数。
  EM算法是通过迭代逐步近似极大化L(θ),我们希望第i+1次的估计值比第i次的估计值使得L(θ)增加,并逐步达到极大值。考虑两者之差:
EM算法
其中利用Jensen不等式(log(i=1nxin)i=1nlog(xi)n)进行了转换.
EM算法
即为L(θ)的一个下界。任何使得 B(θ,θ(i))增大的θ,也使得L(θ)增大,所以问题等价为选择θ(i+1))使得B(θ,θ(i))极大。
EM算法
上式等价于EM算法的一次迭代。EM算法是不断求解下界的极大化来逼近求解对数似然函数的极大化。

4. EM算法直观解释:
EM算法
图中上方实线为L(θ),下方细实线为B(θ,θ(i)),在 θ(i) 处两个函数相等,EM算法计算的下一个点θ(i+1) 使得B(θ,θ(i))极大化,函数B(θ,θ(i))的增加,保证对数似然函数L(θ)在每次迭代中也是增加的,但是EM算法不能保证全局最优值。

学习参考:
http://blog.csdn.net/zouxy09/article/details/8537620