机器学习-白板推导系列笔记(十)-EM算法

此文章主要是结合哔站shuhuai008大佬的白板推导视频:EM_100min

全部笔记的汇总贴:机器学习-白板推导系列笔记

一、EM算法简介

假设有如下数据:

X X X:observed data
Z Z Z:unobserved data(latent variable)
( X , Z ) (X,Z) (X,Z):complete data
θ \theta θ:parameter

EM算法的目的是解决具有隐变量的参数估计(MLE、MAP)问题。EM算法是一种迭代更新的算法,其计算公式为:

θ t + 1 = E z ∣ x , θ t [ l o g    p ( x , z ∣ θ ) ] = a r g m a x θ ∫ z l o g    p ( x , z ∣ θ ) ⋅ p ( z ∣ x , θ t ) d z \theta ^{t+1}=E_{z|x,\theta^{t}}[log\; p(x,z|\theta )]\\ =\underset{\theta }{argmax}\int _{z}log\; p(x,z|\theta )\cdot p(z|x,\theta ^{t})\mathrm{d}z θt+1=Ezx,θt[logp(x,zθ)]=θargmaxzlogp(x,zθ)p(zx,θt)dz

这个公式包含了迭代的两步:

①E-Step:计算 p ( x , z ∣ θ ) p(x,z|\theta ) p(x,zθ)在概率分布 p ( z ∣ x , θ t ) p(z|x,\theta ^{t}) p(zx,θt)下的期望
②S-Step:计算使这个期望最大化的参数得到下一个EM步骤的输入

二、收敛性证明

现在要证明迭代求得的 θ t \theta ^{t} θt序列会使得对应的 p ( x ∣ θ t ) p(x|\theta ^{t}) p(xθt)是单调递增的,也就是说要证明 p ( x ∣ θ t ) ≤ p ( x ∣ θ t + 1 ) p(x|\theta ^{t})\leq p(x|\theta ^{t+1}) p(xθt)p(xθt+1)。首先我们有:

l o g    p ( x ∣ θ ) = l o g    p ( x , z ∣ θ ) − l o g    p ( z ∣ x , θ ) log\; p(x|\theta )=log\; p(x,z|\theta )-log\; p(z|x,\theta ) logp(xθ)=logp(x,zθ)logp(zx,θ)

接下来等式两边同时求关于 p ( z ∣ x , θ t ) p(z|x,\theta ^{t}) p(zx,θt)的期望:

左 边 = ∫ z p ( z ∣ x , θ t ) ⋅ l o g    p ( x ∣ θ ) d z = l o g    p ( x ∣ θ ) ∫ z p ( z ∣ x , θ t ) d z = l o g    p ( x ∣ θ ) 右 边 = ∫ z p ( z ∣ x , θ t ) ⋅ p ( x , z ∣ θ ) d z ⏟ Q ( θ , θ t ) − ∫ z p ( z ∣ x , θ t ) ⋅ l o g    p ( z ∣ x , θ ) d z ⏟ H ( θ , θ t ) 左边=\int _{z}p(z|x,\theta ^{t})\cdot log\; p(x|\theta )\mathrm{d}z\\ =log\; p(x|\theta )\int _{z}p(z|x,\theta ^{t})\mathrm{d}z\\ =log\; p(x|\theta )\\ 右边=\underset{Q(\theta ,\theta ^{t})}{\underbrace{\int _{z}p(z|x,\theta ^{t})\cdot p(x,z|\theta )\mathrm{d}z}}-\underset{H(\theta ,\theta ^{t})}{\underbrace{\int _{z}p(z|x,\theta ^{t})\cdot log\; p(z|x,\theta )\mathrm{d}z}} =zp(zx,θt)logp(xθ)dz=logp(xθ)zp(zx,θt)dz=logp(xθ)=Q(θ,θt) zp(zx,θt)p(x,zθ)dzH(θ,θt) zp(zx,θt)logp(zx,θ)dz

因此有:

l o g    p ( x ∣ θ ) = ∫ z p ( z ∣ x , θ t ) ⋅ p ( x , z ∣ θ ) d z − ∫ z p ( z ∣ x , θ t ) ⋅ l o g    p ( z ∣ x , θ ) d z log\; p(x|\theta )=\int _{z}p(z|x,\theta ^{t})\cdot p(x,z|\theta )\mathrm{d}z-\int _{z}p(z|x,\theta ^{t})\cdot log\; p(z|x,\theta )\mathrm{d}z logp(xθ)=zp(zx,θt)p(x,zθ)dzzp(zx,θt)logp(zx,θ)dz

这里我们定义了 Q ( θ , θ t ) Q(\theta ,\theta ^{t}) Q(θ,θt),称为 Q Q Q函数( Q Q Q function),这个函数也就是上面的概述中迭代公式里用到的函数,因此满足 Q ( θ t + 1 , θ t ) ≥ Q ( θ t , θ t ) Q(\theta ^{t+1},\theta ^{t})\geq Q(\theta ^{t},\theta ^{t}) Q(θt+1,θt)Q(θt,θt)

接下来将上面的等式两边 θ \theta θ分别取 θ t \theta ^{t} θt θ t + 1 \theta ^{t+1} θt+1并相减:

l o g    p ( x ∣ θ t + 1 ) − l o g    p ( x ∣ θ t ) = [ Q ( θ t + 1 , θ t ) − Q ( θ t , θ t ) ] − [ H ( θ t + 1 , θ t ) − H ( θ t , θ t ) ] log\; p(x|\theta ^{t+1})-log\; p(x|\theta ^{t})=[Q(\theta ^{t+1},\theta ^{t})-Q(\theta ^{t},\theta ^{t})]-[H(\theta ^{t+1},\theta ^{t})-H(\theta ^{t},\theta ^{t})] logp(xθt+1)logp(xθt)=[Q(θt+1,θt)Q(θt,θt)][H(θt+1,θt)H(θt,θt)]

我们需要证明 l o g    p ( x ∣ θ t + 1 ) − l o g    p ( x ∣ θ t ) ≥ 0 log\; p(x|\theta ^{t+1})-log\; p(x|\theta ^{t})\geq 0 logp(xθt+1)logp(xθt)0,同时已知 Q ( θ t + 1 , θ t ) − Q ( θ t , θ t ) ≥ 0 Q(\theta ^{t+1},\theta ^{t})-Q(\theta ^{t},\theta ^{t})\geq 0 Q(θt+1,θt)Q(θt,θt)0,现在来观察 H ( θ t + 1 , θ t ) − H ( θ t , θ t ) H(\theta ^{t+1},\theta ^{t})-H(\theta ^{t},\theta ^{t}) H(θt+1,θt)H(θt,θt)

H ( θ t + 1 , θ t ) − H ( θ t , θ t ) = ∫ z p ( z ∣ x , θ t ) ⋅ l o g    p ( z ∣ x , θ t + 1 ) d z − ∫ z p ( z ∣ x , θ t ) ⋅ l o g    p ( z ∣ x , θ t ) d z = ∫ z p ( z ∣ x , θ t ) ⋅ l o g p ( z ∣ x , θ t + 1 ) p ( z ∣ x , θ t ) d z ≤ l o g ∫ z p ( z ∣ x , θ t ) p ( z ∣ x , θ t + 1 ) p ( z ∣ x , θ t ) d z = l o g ∫ z p ( z ∣ x , θ t + 1 ) d z = l o g    1 = 0 H(\theta ^{t+1},\theta ^{t})-H(\theta ^{t},\theta ^{t})\\ =\int _{z}p(z|x,\theta ^{t})\cdot log\; p(z|x,\theta ^{t+1})\mathrm{d}z-\int _{z}p(z|x,\theta ^{t})\cdot log\; p(z|x,\theta ^{t})\mathrm{d}z\\ =\int _{z}p(z|x,\theta ^{t})\cdot log\frac{p(z|x,\theta ^{t+1})}{p(z|x,\theta ^{t})}\mathrm{d}z\\ \leq log\int _{z}p(z|x,\theta ^{t})\frac{p(z|x,\theta ^{t+1})}{p(z|x,\theta ^{t})}\mathrm{d}z\\ =log\int _{z}p(z|x,\theta ^{t+1})\mathrm{d}z\\ =log\; 1\\ =0 H(θt+1,θt)H(θt,θt)=zp(zx,θt)logp(zx,θt+1)dzzp(zx,θt)logp(zx,θt)dz=zp(zx,θt)logp(zx,θt)p(zx,θt+1)dzlogzp(zx,θt)p(zx,θt)p(zx,θt+1)dz=logzp(zx,θt+1)dz=log1=0

这里应用了Jensen不等式:

l o g ∑ j λ j y j ≥ ∑ j λ j l o g y j , 其 中 λ j ≥ 0 , l o g ∑ j λ j = 1 { {log\sum _{j}\lambda _{j}y_{j}\geq \sum _{j}\lambda _{j}logy_{j},其中\lambda _{j}\geq 0,log\sum _{j}\lambda _{j}=1}} logjλjyjjλjlogyj,λj0logjλj=1

也可以使用KL散度来证明,

∫ z p ( z ∣ x , θ t ) ⋅ l o g p ( z ∣ x , θ t + 1 ) p ( z ∣ x , θ t ) d z ≤ 0 \int _{z}p(z|x,\theta ^{t})\cdot log\frac{p(z|x,\theta ^{t+1})}{p(z|x,\theta ^{t})}\mathrm{d}z\leq 0 zp(zx,θt)logp(zx,θt)p(zx,θt+1)dz0

两个概率分布P(x)和Q(x)的KL散度的定义为

D K L ( P ∣ ∣ Q ) = E x ∼ P [ l o g P ( x ) Q ( x ) ] , K L 散 度 是 恒 ≥ 0 的 。 D_{KL}(P||Q)=E_{x\sim P}[log\frac{P(x)}{Q(x)}],KL散度是恒\geq 0的。 DKL(PQ)=ExP[logQ(x)P(x)]KL0

因此

∫ z p ( z ∣ x , θ t ) ⋅ l o g p ( z ∣ x , θ t + 1 ) p ( z ∣ x , θ t ) d z = − K L ( p ( z ∣ x , θ t ) ∣ ∣ p ( z ∣ x , θ t + 1 ) ) ≤ 0 \int _{z}p(z|x,\theta ^{t})\cdot log\frac{p(z|x,\theta ^{t+1})}{p(z|x,\theta ^{t})}\mathrm{d}z=-KL(p(z|x,\theta ^{t})||p(z|x,\theta ^{t+1}))\leq 0 zp(zx,θt)logp(zx,θt)p(zx,θt+1)dz=KL(p(zx,θt)p(zx,θt+1))0

因此得证 l o g    p ( x ∣ θ t + 1 ) − l o g    p ( x ∣ θ t ) ≥ 0 log\; p(x|\theta ^{t+1})-log\; p(x|\theta ^{t})\geq 0 logp(xθt+1)logp(xθt)0。这说明使用EM算法迭代更新参数可以使得 l o g    p ( x ∣ θ ) log\; p(x|\theta) logp(xθ)逐步增大。

另外还有其他定理保证了EM的算法收敛性。首先对于 θ i ( i = 1 , 2 , ⋯   ) \theta ^{i}(i=1,2,\cdots ) θi(i=1,2,)序列和其对应的对数似然序列 L ( θ t ) = l o g    p ( x ∣ θ t ) ( t = 1 , 2 , ⋯   ) L(\theta ^{t})=log\; p(x|\theta ^{t})(t=1,2,\cdots ) L(θt)=logp(xθt)(t=1,2,)有如下定理:

①如果 p ( x ∣ θ ) p(x|\theta ) p(xθ)有上界,则 L ( θ t ) = l o g    p ( x ∣ θ t ) L(\theta ^{t})=log\; p(x|\theta ^{t}) L(θt)=logp(xθt)收敛到某一值 L ∗ L^* L
②在函数 Q ( θ , θ ′ ) 与 L ( θ ) Q(\theta,\theta^{'})与L(\theta ) Q(θ,θ)L(θ)满足一定条件下,由EM算法得到的参数估计序列 θ t \theta ^{t} θt的收敛值 θ ∗ \theta ^{*} θ L ( θ ) L(\theta ) L(θ)的稳定点。

三、EM的算法的导出

(一)ELBO+KL散度的方法

由EM算法公式可得:

l o g    p ( x ∣ θ ) = l o g    p ( x , z ∣ θ ) − l o g    p ( z ∣ x , θ ) = l o g    p ( x , z ∣ θ ) q ( z ) − l o g    p ( z ∣ x , θ ) q ( z )      q ( z ) ≠ 0 log\; p(x|\theta )=log\; p(x,z|\theta )-log\; p(z|x,\theta )\\ =log\; \frac{p(x,z|\theta )}{q(z)}-log\; \frac{p(z|x,\theta )}{q(z)}\; \; q(z)\neq 0 logp(xθ)=logp(x,zθ)logp(zx,θ)=logq(z)p(x,zθ)logq(z)p(zx,θ)q(z)=0

以上引入一个关于z的概率分布 q ( z ) q(z) q(z),然后式子两边同时求对 q ( z ) q(z) q(z)的期望

左 边 = ∫ z q ( z ) ⋅ l o g    p ( x ∣ θ ) d z = l o g    p ( x ∣ θ ) ∫ z q ( z ) d z = l o g    p ( x ∣ θ ) 右 边 = ∫ z q ( z ) l o g    p ( x , z ∣ θ ) q ( z ) d z ⏟ E L B O ( e v i d e n c e    l o w e r    b o u n d ) − ∫ z q ( z ) l o g    p ( z ∣ x , θ ) q ( z ) d z ⏟ K L ( q ( z ) ∣ ∣ p ( z ∣ x , θ ) ) 左边=\int _{z}q(z)\cdot log\; p(x|\theta )\mathrm{d}z=log\; p(x|\theta )\int _{z}q(z)\mathrm{d}z=log\; p(x|\theta )\\ 右边=\underset{ELBO(evidence\; lower\; bound)}{\underbrace{\int _{z}q(z)log\; \frac{p(x,z|\theta )}{q(z)}\mathrm{d}z}}\underset{KL(q(z)||p(z|x,\theta ))}{\underbrace{-\int _{z}q(z)log\; \frac{p(z|x,\theta )}{q(z)}\mathrm{d}z}} =zq(z)logp(xθ)dz=logp(xθ)zq(z)dz=logp(xθ)=ELBO(evidencelowerbound) zq(z)logq(z)p(x,zθ)dzKL(q(z)p(zx,θ)) zq(z)logq(z)p(zx,θ)dz

因此我们得出 l o g    p ( x ∣ θ ) = E L B O + K L ( q ∣ ∣ p ) log\; p(x|\theta )=ELBO+KL(q||p) logp(xθ)=ELBO+KL(qp),由于KL散度恒 ≥ 0 \geq0 0,因此 l o g    p ( x ∣ θ ) ≥ E L B O log\; p(x|\theta )\geq ELBO logp(xθ)ELBO,则 E L B O ELBO ELBO就是似然函数 l o g    p ( x ∣ θ ) log\; p(x|\theta ) logp(xθ)的下界。

使得 l o g    p ( x ∣ θ ) = E L B O log\; p(x|\theta )=ELBO logp(xθ)=ELBO时,就必须有 K L ( q ∣ ∣ p ) = 0 KL(q||p)=0 KL(qp)=0,也就是 q ( z ) = p ( z ∣ x , θ ) q(z)=p(z|x,\theta ) q(z)=p(zx,θ)时。

在每次迭代中我们取 q ( z ) = p ( z ∣ x , θ t ) q(z)=p(z|x,\theta ^{t}) q(z)=p(zx,θt),就可以保证 l o g    p ( x ∣ θ t ) log\; p(x|\theta ^{t}) logp(xθt) E L B O ELBO ELBO相等,也就是:

l o g    p ( x ∣ θ ) = ∫ z p ( z ∣ x , θ t ) l o g    p ( x , z ∣ θ ) p ( z ∣ x , θ t ) d z ⏟ E L B O − ∫ z p ( z ∣ x , θ t ) l o g    p ( z ∣ x , θ ) p ( z ∣ x , θ t ) d z ⏟ K L ( p ( z ∣ x , θ t ) ∣ ∣ p ( z ∣ x , θ ) ) log\; p(x|\theta )=\underset{ELBO}{\underbrace{\int _{z}p(z|x,\theta ^{t})log\; \frac{p(x,z|\theta )}{p(z|x,\theta ^{t})}\mathrm{d}z}}\underset{KL(p(z|x,\theta ^{t})||p(z|x,\theta ))}{\underbrace{-\int _{z}p(z|x,\theta ^{t})log\; \frac{p(z|x,\theta )}{p(z|x,\theta ^{t})}\mathrm{d}z}} logp(xθ)=ELBO zp(zx,θt)logp(zx,θt)p(x,zθ)dzKL(p(zx,θt)p(zx,θ)) zp(zx,θt)logp(zx,θt)p(zx,θ)dz

θ = θ t \theta =\theta ^{t} θ=θt时, l o g    p ( x ∣ θ t ) log\; p(x|\theta ^{t}) logp(xθt) E L B O ELBO ELBO,即

l o g    p ( x ∣ θ t ) = ∫ z p ( z ∣ x , θ t ) l o g    p ( x , z ∣ θ t ) p ( z ∣ x , θ t ) d z ⏟ E L B O − ∫ z p ( z ∣ x , θ t ) l o g    p ( z ∣ x , θ t ) p ( z ∣ x , θ t ) d z ⏟ = 0 = E L B O log\; p(x|\theta ^{t})=\underset{ELBO}{\underbrace{\int _{z}p(z|x,\theta ^{t})log\; \frac{p(x,z|\theta ^{t})}{p(z|x,\theta ^{t})}\mathrm{d}z}}\underset{=0}{\underbrace{-\int _{z}p(z|x,\theta ^{t})log\; \frac{p(z|x,\theta ^{t})}{p(z|x,\theta ^{t})}\mathrm{d}z}}=ELBO logp(xθt)=ELBO zp(zx,θt)logp(zx,θt)p(x,zθt)dz=0 zp(zx,θt)logp(zx,θt)p(zx,θt)dz=ELBO

也就是说 l o g    p ( x ∣ θ ) log\; p(x|\theta ) logp(xθ) E L B O ELBO ELBO都是关于 θ \theta θ的函数,且满足 l o g    p ( x ∣ θ ) ≥ E L B O log\; p(x|\theta )\geq ELBO logp(xθ)ELBO,也就是说 l o g    p ( x ∣ θ ) log\; p(x|\theta ) logp(xθ)的图像总是在 E L B O ELBO ELBO的图像的上面。对于 q ( z ) q(z) q(z),我们取 q ( z ) = p ( z ∣ x , θ t ) q(z)=p(z|x,\theta ^{t}) q(z)=p(zx,θt),这也就保证了只有在 θ = θ t \theta =\theta ^t θ=θt l o g    p ( x ∣ θ ) log\; p(x|\theta ) logp(xθ) E L B O ELBO ELBO才会相等,因此使 E L B O ELBO ELBO取极大值的 θ t + 1 \theta ^{t+1} θt+1一定能使得 l o g    p ( x ∣ θ t + 1 ) ≥ l o g    p ( x ∣ θ t ) log\; p(x|\theta ^{t+1})\geq log\; p(x|\theta ^{t}) logp(xθt+1)logp(xθt)

所以, E L B O ELBO ELBO取极大值的过程为:

θ t + 1 = a r g m a x θ E L B O = a r g m a x θ ∫ z p ( z ∣ x , θ t ) l o g    p ( x , z ∣ θ ) p ( z ∣ x , θ t ) d z = a r g m a x θ ∫ z p ( z ∣ x , θ t ) l o g    p ( x , z ∣ θ ) d z − a r g m a x θ ∫ z p ( z ∣ x , θ t ) p ( z ∣ x , θ t ) d z ⏟ 与 θ 无 关 = a r g m a x θ ∫ z p ( z ∣ x , θ t ) l o g    p ( x , z ∣ θ ) d z = a r g m a x θ E z ∣ x , θ t [ l o g    p ( x , z ∣ θ ) ] \theta ^{t+1}=\underset{\theta }{argmax}ELBO\\ =\underset{\theta }{argmax}\int _{z}p(z|x,\theta ^{t})log\; \frac{p(x,z|\theta )}{p(z|x,\theta ^{t})}\mathrm{d}z\\ =\underset{\theta }{argmax}\int _{z}p(z|x,\theta ^{t})log\; p(x,z|\theta )\mathrm{d}z-\underset{与\theta 无关}{\underbrace{\underset{\theta }{argmax}\int _{z}p(z|x,\theta ^{t})p(z|x,\theta ^{t})\mathrm{d}z}}\\ {\color{Red}{=\underset{\theta }{argmax}\int _{z}p(z|x,\theta ^{t})log\; p(x,z|\theta )\mathrm{d}z}} \\ {\color{Red}{=\underset{\theta }{argmax}E_{z|x,\theta ^{t}}[log\; p(x,z|\theta )]}} θt+1=θargmaxELBO=θargmaxzp(zx,θt)logp(zx,θt)p(x,zθ)dz=θargmaxzp(zx,θt)logp(x,zθ)dzθ θargmaxzp(zx,θt)p(zx,θt)dz=θargmaxzp(zx,θt)logp(x,zθ)dz=θargmaxEzx,θt[logp(x,zθ)]

由此我们就导出了EM算法的迭代公式。

(二)ELBO+Jensen不等式的方法

Jensen不等式可以理解为先求期望再求函数 ≥ \geq 先求函数再求期望,即 f ( E ) ≥ E [ f ] f(E)\geq E[f] f(E)E[f]
应用Jensen不等式来导出EM算法:

l o g    p ( x ∣ θ ) = l o g ∫ z p ( x , z ∣ θ ) d z = l o g ∫ z p ( x , z ∣ θ ) q ( z ) ⋅ q ( z ) d z = l o g    E q ( z ) [ p ( x , z ∣ θ ) q ( z ) ] ≥ E q ( z ) [ l o g p ( x , z ∣ θ ) q ( z ) ] ⏟ E L B O log\; p(x|\theta )=log\int _{z}p(x,z|\theta )\mathrm{d}z\\ =log\int _{z}\frac{p(x,z|\theta )}{q(z)}\cdot q(z)\mathrm{d}z\\ =log\; E_{q(z)}[\frac{p(x,z|\theta )}{q(z)}]\\ \geq \underset{ELBO}{\underbrace{E_{q(z)}[log\frac{p(x,z|\theta )}{q(z)}]}} logp(xθ)=logzp(x,zθ)dz=logzq(z)p(x,zθ)q(z)dz=logEq(z)[q(z)p(x,zθ)]ELBO Eq(z)[logq(z)p(x,zθ)]

这里应用了Jensen不等式得到了上面出现过的 E L B O ELBO ELBO,这里的 f ( x ) f(x) f(x)函数也就是 l o g log log函数,显然这是一个凹函数。当 l o g P ( x , z ∣ θ ) q ( z ) log\frac{P(x,z|\theta )}{q(z)} logq(z)P(x,zθ)这个函数是一个常数时会取得等号:

p ( x , z ∣ θ ) q ( z ) = C ⇒ q ( z ) = p ( x , z ∣ θ ) C ⇒ ∫ z q ( z ) d z = ∫ z 1 C p ( x , z ∣ θ ) d z ⇒ 1 = 1 C ∫ z p ( x , z ∣ θ ) d z ⇒ C = p ( x ∣ θ ) \frac{p(x,z|\theta )}{q(z)}=C\\ \Rightarrow q(z)=\frac{p(x,z|\theta )}{C}\\ \Rightarrow \int _{z}q(z)\mathrm{d}z=\int _{z}\frac{1}{C}p(x,z|\theta )\mathrm{d}z\\ \Rightarrow 1=\frac{1}{C}\int _{z}p(x,z|\theta )\mathrm{d}z\\ \Rightarrow C=p(x|\theta ) q(z)p(x,zθ)=Cq(z)=Cp(x,zθ)zq(z)dz=zC1p(x,zθ)dz1=C1zp(x,zθ)dzC=p(xθ)

C C C代入 q ( z ) = p ( x , z ∣ θ ) C q(z)=\frac{p(x,z|\theta )}{C} q(z)=Cp(x,zθ)得,

q ( z ) = p ( x , z ∣ θ ) p ( x ∣ θ ) = p ( z ∣ x , θ ) \\ { {q(z)=\frac{p(x,z|\theta )}{p(x|\theta )}=p(z|x,\theta )}} q(z)=p(xθ)p(x,zθ)=p(zx,θ)

这种方法到这里就和上面的方法一样了,总结来说就是:

l o g    p ( x ∣ θ ) ≥ E q ( z ) [ l o g p ( x , z ∣ θ ) q ( z ) ] ⏟ E L B O log\; p(x|\theta )\geq \underset{ELBO}{\underbrace{E_{q(z)}[log\frac{p(x,z|\theta )}{q(z)}] }} logp(xθ)ELBO Eq(z)[logq(z)p(x,zθ)]

q ( z ) = p ( z , x ∣ θ ) q(z)=p(z,x|\theta ) q(z)=p(z,xθ)时取等号,因此在迭代更新过程中取 q ( z ) = p ( z ∣ x , θ t ) q(z)=p(z|x,\theta ^{t}) q(z)=p(zx,θt),接下来的推导过程就和第1种方法一样了。

四、广义EM

上面介绍的EM算法属于狭义的EM算法,它是广义EM的一个特例。在上面介绍的EM算法的E步中我们假定 q ( z ) = p ( z ∣ x , θ t ) q(z)=p(z|x,\theta ^{t}) q(z)=p(zx,θt),但是如果这个后验 p ( z ∣ x , θ t ) p(z|x,\theta ^{t}) p(zx,θt)无法求解,那么必须使⽤采样(MCMC)或者变分推断等⽅法来近似推断这个后验。前面我们得出了以下关系:

l o g    p ( x ∣ θ ) = ∫ z q ( z ) l o g    p ( x , z ∣ θ ) q ( z ) d z − ∫ z q ( z ) l o g    p ( z ∣ x , θ ) q ( z ) d z log\; p(x|\theta )=\int _{z}q(z)log\; \frac{p(x,z|\theta )}{q(z)}\mathrm{d}z-\int _{z}q(z)log\; \frac{p(z|x,\theta )}{q(z)}\mathrm{d}z logp(xθ)=zq(z)logq(z)p(x,zθ)dzzq(z)logq(z)p(zx,θ)dz = E L B O + K L ( q ∣ ∣ p ) =ELBO+KL(q||p) =ELBO+KL(qp)

当我们对于固定的 θ \theta θ,我们希望 K L ( q ∣ ∣ p ) KL(q||p) KL(qp)越小越好,这样就能使得 E L B O ELBO ELBO更大:

q ^ = a r g m i n q    K L ( q ∣ ∣ p ) = a r g m a x q    E L B O \hat{q}=\underset{q}{argmin}\; KL(q||p)=\underset{q}{argmax}\; ELBO q^=qargminKL(qp)=qargmaxELBO

E L B O ELBO ELBO是关于 q q q θ \theta θ的函数,写作 L ( q , θ ) L(q,\theta) L(q,θ)。以下是广义EM算法的基本思路:

E − S t e p : q t + 1 = a r g m a x q    L ( q , θ t ) M − S t e p : θ t + 1 = a r g m a x q    L ( q t + 1 , θ ) E-Step:q^{t+1}=\underset{q}{argmax}\; L(q,\theta^{t})\\ M-Step:\theta^{t+1}=\underset{q}{argmax}\; L(q^{t+1},\theta) EStepqt+1=qargmaxL(q,θt)MStepθt+1=qargmaxL(qt+1,θ)

再次观察一下 E L B O ELBO ELBO

E L B O = L ( q , θ ) = E q [ l o g    p ( x , z ) − l o g    q ] = E q [ l o g    p ( x , z ) ] − E q [ l o g    q ] ⏟ H [ q ] ELBO=L(q,\theta )=E_{q}[log\; p(x,z)-log\; q]\\ =E_{q}[log\; p(x,z)]\underset{H[q]}{\underbrace{-E_{q}[log\; q]}} ELBO=L(q,θ)=Eq[logp(x,z)logq]=Eq[logp(x,z)]H[q] Eq[logq]

因此,我们不难发现,⼴义 EM 相当于在原来的式⼦中加⼊熵这⼀项。

五、EM的变种

EM 算法类似于坐标上升法,固定部分坐标,优化其他坐标,再⼀遍⼀遍的迭代。如果在 EM 框架中,⽆法求解 z z z后验概率,那么需要采⽤⼀些变种的 EM 来估算这个后验:

①基于平均场的变分推断,VBEM/VEM
②基于蒙特卡洛的EM,MCEM

下一章传送门:白板推导系列笔记(十一)-高斯混合模型

参考文章
EM算法|机器学习推导系列

你可能感兴趣的:(哔站机器学习白板推导,机器学习)