【机器学习】EM算法详解

1 引言

  EM算法用于具有隐变量模型的参数估计,如高斯混合模型,VAE算法推导的前置知识等,了解EM算法更能深刻理解许多复杂算法模型。

  本文为自学内容的记录,其中多有参考他人博客的地方在参考文献一并给出链接。

2 为什么需要EM算法

3 EM算法的推导

  对于 m m m个相互独立的样本 x = ( x 1 , x 2 , … , x m ) x=(x_1, x_2,\dots,x_m) x=(x1,x2,,xm),对应的隐含数据 z = ( z 1 , z 2 , … , z m ) z=(z_1,z_2,\dots,z_m) z=(z1,z2,,zm),此时 ( x , z ) (x,z) (x,z)为完全数据,样本模型的参数为 θ \theta θ 则观察数据 x i x_i xi的概率为 P ( x i ∣ θ ) P(x_i|\theta) P(xiθ),完全数据 ( x i , z i ) (x_i,z_i) (xi,zi)的似然函数为 P ( x i , z i ∣ θ ) P(x_i,z_i|\theta) P(xi,ziθ)

  假如没有隐含变量 z z z,仅需要找到合适的 θ \theta θ 极大对数似然函数即可:
θ = arg ⁡ max ⁡ θ L ( θ ) = arg ⁡ max ⁡ θ ∑ i = 1 m log ⁡ P ( x i ∣ θ ) \theta=\arg \max _{\theta} L(\theta)=\arg \max _{\theta} \sum_{i=1}^{m} \log P\left(x_{i} \mid \theta\right) θ=argθmaxL(θ)=argθmaxi=1mlogP(xiθ)
增加隐含变量 z z z之后,我们的目标变成了找到合适的 θ \theta θ z z z让对数似然函数最大:
θ , z = arg ⁡ max ⁡ θ , z L ( θ , z ) = arg ⁡ max ⁡ θ , z ∑ i = 1 m log ⁡ ∑ z i P ( x i , z i ∣ θ ) \theta, z=\arg \max _{\theta, z} L(\theta, z)=\arg \max _{\theta, z} \sum_{i=1}^{m} \log \sum_{z_{i}} P\left(x_{i}, z_{i} \mid \theta\right) θ,z=argθ,zmaxL(θ,z)=argθ,zmaxi=1mlogziP(xi,ziθ)

  如果上式在 l o g log log里面会出现积分(求和)符号,导致对似然函数的求导变得困难,无法求解。对于这种无法直接求解的问题,我们通常会采用迭代求解的策略,一步一步逼近最终的结果,在EM算法中就是E步和M步的交替进行,直至收敛。

4 ELBO+KL形式

根据条件概率公式则
P ( X ∣ θ ) = P ( X , Z ∣ θ ) P ( Z ∣ X , θ ) P(X \mid \theta)=\frac{P(X, Z \mid \theta)}{P(Z \mid X, \theta)} P(Xθ)=P(ZX,θ)P(X,Zθ)
其中,上式引入了隐变量 Z Z Z和参数 θ \theta θ P ( Z ∣ X , θ ) P(Z \mid X, \theta) P(ZX,θ)是后验概率。
对上式两边取对数
log ⁡ P ( X ∣ θ ) = log ⁡ P ( X , Z ∣ θ ) − log ⁡ P ( Z ∣ X , θ ) \log P(X \mid \theta)=\log P(X, Z \mid \theta)-\log P(Z \mid X, \theta) logP(Xθ)=logP(X,Zθ)logP(ZX,θ)

下面的构造就比较有技巧性了,引入 Z Z Z的概率分布 q ( Z ) q(Z) q(Z) q ( Z ) q(Z) q(Z)可以是任意一个分布,个人感觉这里是为了凑 K L KL KL散度公式,十分巧妙(见参考文献【8】))并且
∫ Z q ( Z ) d Z = 1 \int_{Z} q(Z) d Z=1 Zq(Z)dZ=1,则上式可以写为:

log ⁡ P ( X ∣ θ ) = log ⁡ P ( X , Z ∣ θ ) q ( Z ) − log ⁡ P ( Z ∣ X , θ ) q ( Z ) \log P(X \mid \theta)=\log \frac{P(X, Z \mid \theta)}{q(Z)}-\log \frac{P(Z \mid X, \theta)}{q(Z)} logP(Xθ)=logq(Z)P(X,Zθ)logq(Z)P(ZX,θ)

然后两边同时求关于变量 Z Z Z的期望

E Z [ log ⁡ P ( X ∣ θ ) ] = E Z [ log ⁡ P ( X , Z ∣ θ ) q ( Z ) ] − E Z [ log ⁡ P ( Z ∣ X , θ ) q ( Z ) ] \mathbb{E}_{Z}[\log P(X \mid \theta)]=\mathbb{E}_{Z}\left[\log \frac{P(X, Z \mid \theta)}{q(Z)}\right]-\mathbb{E}_{Z}\left[\log \frac{P(Z \mid X, \theta)}{q(Z)}\right] EZ[logP(Xθ)]=EZ[logq(Z)P(X,Zθ)]EZ[logq(Z)P(ZX,θ)]

将期望写成积分的形式(见参考文献【10】

∫ Z q ( Z ) log ⁡ P ( X ∣ θ ) d Z = ∫ Z q ( Z ) log ⁡ P ( X , Z ∣ θ ) q ( Z ) d Z − ∫ Z q ( Z ) log ⁡ P ( Z ∣ X , θ ) q ( Z ) d Z \int_{Z} q(Z) \log P(X \mid \theta) d Z=\int_{Z} q(Z) \log \frac{P(X, Z \mid \theta)}{q(Z)} d Z-\int_{Z} q(Z) \log \frac{P(Z \mid X, \theta)}{q(Z)} d Z Zq(Z)logP(Xθ)dZ=Zq(Z)logq(Z)P(X,Zθ)dZZq(Z)logq(Z)P(ZX,θ)dZ

同时由于 l o g ( P ( X ∣ θ ) ) log(P(X|\theta)) log(P(Xθ)) Z Z Z无关,上式又可变换为:

log ⁡ P ( X ∣ θ ) = ∫ Z q ( Z ) log ⁡ P ( X , Z ∣ θ ) q ( Z ) d Z − ∫ Z q ( Z ) log ⁡ P ( Z ∣ X , θ ) q ( Z ) d Z \log P(X \mid \theta)=\int_{Z} q(Z) \log \frac{P(X, Z \mid \theta)}{q(Z)} d Z-\int_{Z} q(Z) \log \frac{P(Z \mid X, \theta)}{q(Z)} d Z logP(Xθ)=Zq(Z)logq(Z)P(X,Zθ)dZZq(Z)logq(Z)P(ZX,θ)dZ
此处细节不了解的可见参考文献【9】,注意上式最右边的积分项 − ∫ Z q ( Z ) log ⁡ P ( Z ∣ X , θ ) q ( Z ) d Z -\int_{Z} q(Z) \log \frac{P(Z \mid X, \theta)}{q(Z)} d Z Zq(Z)logq(Z)P(ZX,θ)dZ 这个其实就是 q ( Z ) q(Z) q(Z) P ( Z ∣ X , θ ) P(Z|X,\theta) P(ZX,θ)之间的相对熵Kullback-Leibler divergence (KL divergence),记作:

D K L ( q ( Z ) ∥ P ( Z ∣ X , θ ) ) = ∫ Z q ( Z ) log ⁡ q ( Z ) P ( Z ∣ X , θ ) d Z D_{K L}(q(Z) \| P(Z \mid X, \theta))=\int_{Z} q(Z) \log \frac{q(Z)}{P(Z \mid X, \theta)} d Z DKL(q(Z)P(ZX,θ))=Zq(Z)logP(ZX,θ)q(Z)dZ

所以有

log ⁡ P ( X ∣ θ ) = ∫ Z q ( Z ) log ⁡ P ( X , Z ∣ θ ) q ( Z ) d Z + D K L ( q ( Z ) ∥ P ( Z ∣ X , θ ) ) \log P(X \mid \theta)=\int_{Z} q(Z) \log \frac{P(X, Z \mid \theta)}{q(Z)} d Z+D_{K L}(q(Z) \| P(Z \mid X, \theta)) logP(Xθ)=Zq(Z)logq(Z)P(X,Zθ)dZ+DKL(q(Z)P(ZX,θ))

根据KL divergence的性质 D K L ( q ( Z ) ∥ P ( Z ∣ X , θ ) ) ≥ 0 D_{K L}(q(Z) \| P(Z \mid X, \theta)) \geq 0 DKL(q(Z)P(ZX,θ))0 当且仅当 q ( Z ) = P ( Z ∣ X , θ ) q(Z)=P(Z \mid X, \theta) q(Z)=P(ZX,θ)取等号,因此有

log ⁡ P ( X ∣ θ ) ≥ ∫ Z q ( Z ) log ⁡ P ( X , Z ∣ θ ) q ( Z ) d Z \log P(X \mid \theta) \geq \int_{Z} q(Z) \log \frac{P(X, Z \mid \theta)}{q(Z)} d Z logP(Xθ)Zq(Z)logq(Z)P(X,Zθ)dZ

因此便得到了 log ⁡ P ( X ∣ θ ) \log P(X \mid \theta) logP(Xθ)的一个下界称为Evidence Lower Bound (ELBO),后面就可以通过迭代的方式不断抬高ELBO使得 log ⁡ P ( X ∣ θ ) \log P(X \mid \theta) logP(Xθ)增大。但目前还有一个问题, q ( Z ) q(Z) q(Z)是未知的下界还是没法求。我们可以直接在每一轮迭代时令 q ( Z ) = P ( Z ∣ X , θ ( t ) ) q(Z)=P\left(Z \mid X, \theta^{(t)}\right) q(Z)=P(ZX,θ(t)),此时 D K L ( q ( Z ) ∥ P ( Z ∣ X , θ ( t ) ) ) = 0 D_{K L}\left(q(Z) \| P\left(Z \mid X, \theta^{(t)}\right)\right)=0 DKL(q(Z)P(ZX,θ(t)))=0
,因为我们想要ELBO和 log ⁡ P ( X ∣ θ ) \log P(X \mid \theta) logP(Xθ)的差距尽可能的小,这样抬高ELBO才会使得 log ⁡ P ( X ∣ θ ) \log P(X \mid \theta) logP(Xθ)的增益更大,所以将KL这一项直接置为0是比较合理的,此时ELBO就变为:
∫ Z P ( Z ∣ X , θ ( t ) ) log ⁡ P ( X , Z ∣ θ ) P ( Z ∣ X , θ ( t ) ) d Z = E Z ∣ X , θ ( t ) [ log ⁡ P ( X , Z ∣ θ ) P ( Z ∣ X , θ ( t ) ) ] \int_{Z} P\left(Z \mid X, \theta^{(t)}\right) \log \frac{P(X, Z \mid \theta)}{P\left(Z \mid X, \theta^{(t)}\right)} d Z=\mathbb{E}_{Z \mid X, \theta^{(t)}}\left[\log \frac{P(X, Z \mid \theta)}{P\left(Z \mid X, \theta^{(t)}\right)}\right] ZP(ZX,θ(t))logP(ZX,θ(t))P(X,Zθ)dZ=EZX,θ(t)[logP(ZX,θ(t))P(X,Zθ)]
展开有
E Z ∣ X , θ ( t ) [ log ⁡ P ( X , Z ∣ θ ) P ( Z ∣ X , θ ( t ) ) ] = E Z ∣ X , θ ( t ) [ log ⁡ P ( X , Z ∣ θ ) ] − E Z ∣ X , θ ( t ) [ log ⁡ P ( Z ∣ X , θ ( t ) ] \mathbb{E}_{Z \mid X, \theta^{(t)}}\left[\log \frac{P(X, Z \mid \theta)}{P\left(Z \mid X, \theta^{(t)}\right)}\right]=\mathbb{E}_{Z \mid X, \theta^{(t)}}[\log P(X, Z \mid \theta)]-\mathbb{E}_{Z \mid X, \theta^{(t)}}\left[\log P\left(Z \mid X, \theta^{(t)}\right]\right. EZX,θ(t)[logP(ZX,θ(t))P(X,Zθ)]=EZX,θ(t)[logP(X,Zθ)]EZX,θ(t)[logP(ZX,θ(t)]

因为我们最终的目标是求出某个 θ ^ \hat \theta θ^ 使得ELBO最大,上式的第二项与 θ \theta θ无关,可看成是一个常数,所以可以直接扔掉,则上式变为:

E Z ∣ X , θ ( t ) [ log ⁡ P ( X , Z ∣ θ ) ] \mathbb{E}_{Z \mid X, \theta^{(t)}}[\log P(X, Z \mid \theta)] EZX,θ(t)[logP(X,Zθ)]

这样我们得到了EM算法E-step求期望的那个式子。紧接着就是求解 θ \theta θ ,使得该期望达到最大,即M-step
θ ( t + 1 ) = arg ⁡ max ⁡ θ E Z ∣ X , θ ( t ) [ log ⁡ P ( X , Z ∣ θ ) ] \theta^{(t+1)}=\arg \max _{\theta} \mathbb{E}_{Z \mid X, \theta^{(t)}}[\log P(X, Z \mid \theta)] θ(t+1)=argθmaxEZX,θ(t)[logP(X,Zθ)]

以上便是EM算法的ELBO+KL形式的推导过程。

4.1 QA

  在上面的推到中得到ELBO之后,其实求解参数的问题就转化为使得ELBO最大的问题,参考文献【9】
在这里插入图片描述
在这里插入图片描述

为什么要最大化ELBO,而不是直接最大化KL?
  因为ELBO没有大于等于0的保证,在kl最大化的同时,不能保证kl增加的幅度大于ELBO下降的幅度。

5 算法收敛性证明

6 参考文献

[1]Jensen不等式初步理解及证明
[2]联合概率、边缘概率、条件概率之间的关系&贝叶斯公式[3]凸函数
[4]原函数图像与导函数图像的关系探究
[5]人人都能看懂的EM算法推导
[6]机器学习-白板推导系列(十)-EM算法(Expectation Maximization)
[7]EM算法之KL散度和Jensen不等式
[8]关于KL散度(Kullback-Leibler Divergence)的笔记
[9]EM算法总结:从 ELBO + KL散度出发
[10]如何计算数学期望
[11]深入理解EM算法(ELBO+KL形式)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值