EM算法

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

算法流程

EM算法通过迭代求(L( heta)=log P(Y| heta))的极大似然估计。每次迭代包含两步:E步,求期望;M步,求极大化:

  • 输入:观测变量数据(Y),隐变量数据(Z),联合分布(P(Y,Z| heta)),条件分布(P(Z|Y, heta))

  • 输出:模型参数( heta)

    1. 选择参数的初始值( heta^{(0)}),开始迭代

    2. E步:记( heta^{(i)})为第(i)次迭代参数( heta)的估计值,在第(i+1)次迭代的E步,计算(Q)函数

    [egin{aligned} Q( heta, heta^{(i)}) &=E_Z[log P(Y,Z| heta)|Y, heta^{(i)}] \ & =sum_Z log P(Y,Z| heta) P(Z|Y, heta^{(i)}) end{aligned}]

    这里,(P(Z|Y, heta^{(i)}))是在给定观测数据(Y)和当前的参数估计下隐变量数据(Z)的条件概率分布

    1. M步:求使(Q( heta, heta^{(i)}))极大化的( heta),确定第(i+1)次迭代的参数估计值( heta^{(i+1)})

    [ heta^{(i+1)}=mathop{argmax}limits_{ heta} Q( heta, heta^{(i)}) ]

    1. 重复第2和第3步,直到收敛
  • 参数的初始值可以任意选择,但需注意EM算法对初始值是敏感的

  • 终止迭代条件,一般是对较小的正数(epsilon_1,epsilon_2),若满足

    [|| heta^{(i+1)}- heta^{(i)}||<epsilon_1 qquad ||Q( heta^{(i+1)}, heta^{(i)})-Q( heta^{(i)}, heta^{(i)})||<epsilon_2 ]

    则停止迭代

原文地址:https://www.cnblogs.com/weilonghu/p/11922346.html