EM算法以及推导

EM算法

Jensen不等式

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

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

推广一下,便有

\[f(\sum_{i=1}^n\lambda_ix_i)\le\sum_{i=1}^n\lambda_if(x_i),\ where \sum_{i=1}^n\lambda_i = 1 \]

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

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

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

EM算法推导

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

\[L(\theta)=\ln P(X|\theta) \]

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

\[\max(L(\theta)-L(\theta')) \]

于是有

\[\begin{align*} L(\theta) - L(\theta') &= \log\left(\sum_ZP(Y|Z,\theta)P(Z|\theta)\right) - \log P(Y|\theta')\\ &= \log\left(\sum_ZP(Z|Y,\theta')\dfrac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta')}\right) - \log P(Y|\theta')\\ &\ge \sum_ZP(Z|Y,\theta')\log\dfrac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta')} - \log P(Y|\theta')\\ &= \sum_ZP(Z|Y,\theta')\log\dfrac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta')} - \log P(Y|\theta')\sum_ZP(Z|Y,\theta')\\ &= \sum_ZP(Z|Y,\theta')\log P(Y|Z,\theta)P(Z|\theta) - \log P(Y|\theta') - \sum_ZP(Z|Y,\theta')\log P(Z|Y,\theta') \end{align*} \]

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

\[\begin{align*} \arg\max_\theta L(\theta) - L(\theta') &= \arg\max_\theta\sum_ZP(Z|Y,\theta')\log P(Y|Z,\theta)P(Z|\theta) \\ &- \log P(Y|\theta') - \sum_ZP(Z|Y,\theta')\log P(Z|Y,\theta')\\ &= \arg\max_\theta\sum_ZP(Z|Y,\theta')\log P(Y|Z,\theta)P(Z|\theta)\\ &= \arg\max_\theta \sum_ZP(Z|Y,\theta')\log P(Y,Z|\theta) \end{align*}\]

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

posted @ 2016-12-16 19:22  狂徒归来  阅读(1391)  评论(0编辑  收藏  举报