EM算法公式详细推导

EM算法是什么?

EM算法是一种迭代算法,用于含隐变量概率模型参数的极大似然估计,或极大后验概率估计。EM算法由两步组成:E步,求期望;M步:求极大。EM算法的优点是简单性和普适性。


符号说明:

  • Y:观测数据,又称不完全数据
  • Z:隐变量
  • (Y,Z)完全数据
  • \theta:模型参数
  • \theta^{(i)}:第i次迭代后\theta的估计值
  • P(Y,Z|\theta):联合分布
  • P(Z|Y,\theta):条件分布
  • P(Y|\theta):似然

EM算法的导出

我们面对一个含有隐变量的概率模型,目标是极大化Y关于\theta的对数似然函数:

\arg\max\limits_{\theta}\log P(Y|\theta)

我们把Y关于Z的依赖体现到我们的模型也就是似然里面来:

L(\theta)=\log P(Y|\theta)=\log \sum\limits_{Z}P(Y,Z|\theta)=\log \biggl(\sum\limits_{Z}P(Y|Z,\theta) P(Z|\theta)\biggl)

造成这一似然的极大化困难的根源有两点

  • 未观测数据Z
  • 对数里面包含求和

我们虽然无法一次性做到极大化,但是EM算法提出,我们可以用迭代的方式来近似逼近极大化只需在迭代过程中保证新的估计值\theta能使L(\theta)不断增加:

L(\theta)-L(\theta^{(i)})=\log \biggl(\sum\limits_{Z}P(Y|Z,\theta)P(Z|\theta)\biggl)-\log P(Y|\theta^{(i)})

 利用Jensen不等式,可以得到其下界:

\because \log \sum\limits_{j}\lambda_jy_j\geq \sum\limits_{j}\lambda_j\log y_j, \ (\lambda_j\geq 0,\sum\limits_{j}\lambda_j=1)\ (\mbox{Jensen inequality})\\\therefore L(\theta)-L(\theta^{(i)})= \log \biggl(\sum\limits_{Z}P(Y|Z,\theta)P(Z|\theta)\biggl)-\log P(Y|\theta^{(i)})\\\\= \log \biggl(\sum\limits_{Z}P(Z|Y,\theta^{(i)})\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}\biggl)-\sum\limits_{Z}P(Z|Y,\theta^{(i)})\log P(Y|\theta^{(i)})\\\\\geq \sum\limits_{Z}P(Z|Y,\theta^{(i)})\log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}-\sum\limits_{Z}P(Z|Y,\theta^{(i)})\log P(Y|\theta^{(i)})\\\\ =\sum\limits_{Z}P(Z|Y,\theta^{(i)})\log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}\\\\\\ \Rightarrow L(\theta)\geq L(\theta^{(i)})+\sum\limits_{Z}P(Z|Y,\theta^{(i)})\log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}\\\mbox{Let.} \ B(\theta,\theta^{(i)})=L(\theta^{(i)})+\sum\limits_{Z}P(Z|Y,\theta^{(i)})\log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}

即函数B(\theta,\theta^{(i)})L(\theta)的一个下界,且B(\theta^{(i)},\theta^{(i)})=L(\theta^{(i)})

B(\theta^{(i)},\theta^{(i)})=L(\theta^{(i)})+\sum\limits_{Z}P(Z|Y,\theta^{(i)})\log \frac{P(Y|Z,\theta^{(i)})P(Z|\theta^{(i)})}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}\\\\=L(\theta^{(i)})+\sum\limits_{Z}P(Z|Y,\theta^{(i)})\log \frac{P(Y,Z|\theta^{(i)})}{P(Y,Z|\theta^{(i)})}\\\\=L(\theta^{(i)})

因此任何可以使B(\theta,\theta^{(i)})增大的\theta,也可以使L(\theta)增大。为了使L(\theta)有尽可能大的增长,选择\theta^{(i+1)}使B(\theta,\theta^{(i)})达到最大,计算过程中可以省去对\theta的极大化而言是常数的项:

 \theta^{(i+1)}=\arg\max\limits_{\theta} B(\theta,\theta^{(i)})\\\\ =\arg\max\limits_{\theta}\biggl( L(\theta^{(i)})+\sum\limits_{Z}P(Z|Y,\theta^{(i)})\log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}\biggl)\\\\=\arg\max\limits_{\theta}\biggl( \sum\limits_{Z}P(Z|Y,\theta^{(i)})\log P(Y|Z,\theta)P(Z|\theta)\biggl)\\\\=\arg\max\limits_{\theta}\biggl( \sum\limits_{Z}P(Z|Y,\theta^{(i)})\log P(Y,Z|\theta)\biggl)\\\\

 我们令

Q(\theta,\theta^{(i)})\\\\=\sum\limits_{Z}P(Z|Y,\theta^{(i)})\log P(Y,Z|\theta)\\=E_Z[\log P(Y,Z|\theta)|Y,\theta^{(i)}]

则EM算法的一次迭代,即极大化Q函数,这也是EM算法的核心:

\theta^{(i+1)}=\arg\max\limits_{\theta}Q(\theta,\theta^{(i)})

即EM算法是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。


EM算法的定义

  • 输入:Y,Z,P(Y,Z|\theta),P(Z|Y,\theta)
  • 输出:\theta
  • (1) 选择参数的初值\theta^{(0)},开始迭代;
  • (2) E步:计算Q函数:Q(\theta,\theta^{(i)})=\sum\limits_{Z}P(Z|Y,\theta^{(i)})\log P(Y,Z|\theta)
  • (3) M步:求第i+1次迭代的参数的估计值:\theta^{(i+1)}=\arg\max\limits_{\theta}Q(\theta,\theta^{(i)})
  • (4) 重复第(2)步和第(3)步,直到收敛,停止迭代的条件,一般是对较小的正数\varepsilon_1,\varepsilon_2,满足\left \|\theta^{(i+1)}-\theta^{(i)} \right \|<\varepsilon_1 或 \left \|Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)}) \right \|<\varepsilon_2,则停止迭代 。

EM算法的收敛性

只需说明:

P(Y|\theta^{(i+1)})\geq P(Y|\theta^{(i)})

证明:

P(Y|\theta)=\frac{P(Y,Z|\theta)}{P(Z|Y,\theta)}

Q(\theta,\theta^{(i)})=\sum\limits_{Z}P(Z|Y,\theta^{(i)})\log P(Y,Z|\theta)

H(\theta,\theta^{(i)})=\sum\limits_{Z}P(Z|Y,\theta^{(i)})\log P(Z|Y,\theta)

\log P(Y|\theta)=Q(\theta,\theta^{(i)})-H(\theta,\theta^{(i)})

\log P(Y|\theta^{(i+1)})-\log P(Y|\theta^{(i)})\\\\=[Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})]-[H(\theta^{(i+1)}),\theta^{(i)})-H(\theta^{(i)}),\theta^{(i)})]\geq 0

其中,

Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})\geq 0

H(\theta^{(i+1)},\theta^{(i)})-H(\theta^{(i)},\theta^{(i)})=\sum\limits_{Z}\biggl(\log\frac{P(Z|Y,\theta^{(i+1)})}{P(Z|Y,\theta^{(i)})}\biggl) P(Z|Y,\theta^{(i)})\\\\\leq \log\biggl(\sum\limits_{Z}\frac{P(Z|Y,\theta^{(i+1)})}{P(Z|Y,\theta^{(i)})} P(Z|Y,\theta^{(i)})\biggl)\\\\= \log \biggl(\sum\limits_{Z} P(Z|Y,\theta^{(i+1)})\biggl)=0


EM算法在高斯混合模型学习中的应用

高斯混合模型如下:

P(y|\theta)=\sum\limits_{k=1}^K\alpha_k\phi(y|\theta_k),\quad\sum_{k=1}^K\alpha_k=1

\phi(y|\theta_k)\sim N(\mu_k,\sigma^2_k),\quad \theta_k=(\mu_k,\sigma^2_k)

观测数据y_1,...,y_N 由高斯混合模型生成。我们用EM算法估计参数\theta=(\alpha_1,...,\alpha_K;\theta_1,...,\theta_K)

明确隐变量:

img

\gamma_{jk}是0-1随机变量。

有了观测数据y_j以及未观测数据\gamma_{jk},那么完全数据是(y_j,\gamma_{j1},\gamma_{j2},...,\gamma_{jK}),j=1,2,...,N

于是,可以写出完全数据的似然函数:

P(y,\gamma|\theta)\\=\prod\limits_{k=1}^K\prod\limits_{j=1}^N[\alpha_k\phi(y_j|\theta_k)]^{\gamma_{jk}}=\prod\limits_{k=1}^K\alpha_k^{n_k}\prod\limits_{j=1}^N[\frac{1}{\sqrt{2\pi}\sigma_k}\exp(-\frac{(y_j-\mu_k)^2}{2\sigma^2_k})]^{\gamma_{jk}},\\ n_k=\sum\limits_{j=1}^N\gamma_{jk},\sum\limits_{j=1}^Nn_k=N,

完全数据的对数似然:

\log P(y,\gamma|\theta)\\=\sum\limits_{k=1}^K\{n_k \log \alpha_k+\sum\limits_{j=1}^N{\gamma_{jk}}[\log(\frac{1}{\sqrt{2\pi}})-\log \sigma_k-\frac{(y_j-\mu_k)^2}{2\sigma^2_k})]\}

E步:

\hat \gamma _{jk}=\frac{\alpha_k\phi(y_j|\theta_k)}{\sum\limits_{k=1}^K\alpha_k\phi(y_j|\theta_k)}

M步:

\hat \mu_k=\frac{\sum\limits_{j=1}^N\hat \gamma_{jk}y_i}{\sum\limits_{j=1}^N\hat \gamma_{jk}}

\hat\sigma_k^2=\frac{\sum\limits_{j=1}^N\hat \gamma_{jk}(y_{j}-\mu_k)^2}{\sum\limits_{j=1}^N\hat \gamma_{jk}}

\hat \alpha_k=\frac{\sum\limits_{j=1}^N\hat \gamma_{jk}}{N}

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值