最大似然估计求解中,我们经常使用的方法是对所有参数求导,令其偏导数为0,解出可以让log似然函数最大的$\theta$, 如下:

$$ ⁍ $$

求出log-likelihood对$\theta$的偏导数,并使其为0,即可解出$\theta_{MLE}$

$$ \frac{\partial log[P(x|\theta)]}{\partial \theta} = 0 $$

但在复杂模型中,例如高斯混合模型(GMM),直接求偏导数是很难的,另外$\theta$并不是一维的,这时候可以考虑使用EM算法,进行迭代计算

EM算法公式

$$ \theta^{(g+1)}= \underset{\theta}{argmax}\left ( \int_{z}(logP(X, Z|\ \theta))\ \ P(Z|X, \theta^{(g)})dz \right ) $$

其中,X是数据,是已知的,Z为潜在变量(latent variable),$\theta^{(g)}$和$\theta^{(g+1)}$ 分别为上一次迭代的结果和此次迭代的结果,其中Z比较关键,不同模型Z的选取也不同,但引入Z之后要保证不影响X的边缘分布$P(x|\theta)=\int_{z}P(x | z ,\theta)P(z|\theta)dz$,后面会结合GMM模型进行说明。

EM算法证明

我们需要证明:

$$ L(\theta^{(g+1)}) >= L(\theta^{(g)}) $$

即:

$$ \\ logP(x|\theta^{(g+1)}) >=logP(x|\theta^{(g)}) $$

log-likelihood可以拆成如下形式:

$$ logP(x|\theta)\ = logP(x, z |\theta) - logP(z|x,\theta) $$

两边同时对分布$P(z|x, \theta^{(g)})$求期望:

$$ \int_{z}logP(x|\theta)P(z|x, \theta^{(g)})dz=\int_{z}(logP(x, z |\theta) - logP(z|x,\theta))P(z|x, \theta^{(g)})dz $$

左边$logP(x|\theta)$不包含z,所以对z积分可以当做常数,$\int_zP(z|x, \theta^{(g)})dz = 1$,所以左边求期望之后仍是其本身,即:

$$ logP(x|\theta)=\int_{z}(logP(x, z |\theta) - logP(z|x,\theta))P(z|x, \theta^{(g)})dz\\ =\int_{z}logP(x, z |\theta)P(z|x, \theta^{(g)}) - logP(z|x,\theta)P(z|x, \theta^{(g)})dz $$