EM算法以及推导

EM算法

Jensen不等式

其实Jensen不等式正是我们熟知的convex函数和concave函数性质,对于convex函数,有

[lambda f(x) + (1-lambda)f(y)ge f(lambda x + (1-lambda)f(y)), where 0lelambdale 1 ]

推广一下,便有

[f(sum_{i=1}^nlambda_ix_i)lesum_{i=1}^nlambda_if(x_i), where sum_{i=1}^nlambda_i = 1 ]

这就是Jensen不等式,写成期望的形式便有

[f(E(x))le E(f(x)) ]

对于concave函数,只需不等号反向,因为对convex函数取负得到的是concave函。

EM算法推导

我们的目的是最大化似然函数(P(X| heta)),为了计算方便,取对数,得到

[L( heta)=ln P(X| heta) ]

假设我们已知( heta^n),现在要求新的( heta),为了极大化似然函数,我们期望最大化

[max(L( heta)-L( heta')) ]

于是有

[egin{align*} L( heta) - L( heta') &= logleft(sum_ZP(Y|Z, heta)P(Z| heta) ight) - log P(Y| heta')\ &= logleft(sum_ZP(Z|Y, heta')dfrac{P(Y|Z, heta)P(Z| heta)}{P(Z|Y, heta')} ight) - log P(Y| heta')\ &ge sum_ZP(Z|Y, heta')logdfrac{P(Y|Z, heta)P(Z| heta)}{P(Z|Y, heta')} - log P(Y| heta')\ &= sum_ZP(Z|Y, heta')logdfrac{P(Y|Z, heta)P(Z| heta)}{P(Z|Y, heta')} - log P(Y| heta')sum_ZP(Z|Y, heta')\ &= sum_ZP(Z|Y, heta')log P(Y|Z, heta)P(Z| heta) - log P(Y| heta') - sum_ZP(Z|Y, heta')log P(Z|Y, heta') end{align*} ]

后面两项是常数项,去掉还是等价的。于是便有

[egin{align*} argmax_ heta L( heta) - L( heta') &= argmax_ hetasum_ZP(Z|Y, heta')log P(Y|Z, heta)P(Z| heta) \ &- log P(Y| heta') - sum_ZP(Z|Y, heta')log P(Z|Y, heta')\ &= argmax_ hetasum_ZP(Z|Y, heta')log P(Y|Z, heta)P(Z| heta)\ &= argmax_ heta sum_ZP(Z|Y, heta')log P(Y,Z| heta) end{align*}]

上面这种形式是采用李航的《统计学习方法》中的形式,与PRML中的形式初看有些不一样,我们只需要把最初的(P(Y|Z, heta)P(Z| heta))替换为(P(Y,Z| heta))就一样了。

原文地址:https://www.cnblogs.com/crackpotisback/p/6188160.html