此文章主要是结合哔站shuhuai008大佬的白板推导视频:EM_100min
全部笔记的汇总贴:机器学习-白板推导系列笔记
假设有如下数据:
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=Ez∣x,θt[logp(x,z∣θ)]=θargmax∫zlogp(x,z∣θ)⋅p(z∣x,θt)dz
这个公式包含了迭代的两步:
①E-Step:计算 p ( x , z ∣ θ ) p(x,z|\theta ) p(x,z∣θ)在概率分布 p ( z ∣ x , θ t ) p(z|x,\theta ^{t}) p(z∣x,θ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(z∣x,θ)
接下来等式两边同时求关于 p ( z ∣ x , θ t ) p(z|x,\theta ^{t}) p(z∣x,θ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(z∣x,θt)⋅logp(x∣θ)dz=logp(x∣θ)∫zp(z∣x,θt)dz=logp(x∣θ)右边=Q(θ,θt) ∫zp(z∣x,θt)⋅p(x,z∣θ)dz−H(θ,θt) ∫zp(z∣x,θt)⋅logp(z∣x,θ)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(z∣x,θt)⋅p(x,z∣θ)dz−∫zp(z∣x,θt)⋅logp(z∣x,θ)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(z∣x,θt)⋅logp(z∣x,θt+1)dz−∫zp(z∣x,θt)⋅logp(z∣x,θt)dz=∫zp(z∣x,θt)⋅logp(z∣x,θt)p(z∣x,θt+1)dz≤log∫zp(z∣x,θt)p(z∣x,θt)p(z∣x,θt+1)dz=log∫zp(z∣x,θ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∑λjyj≥j∑λjlogyj,其中λj≥0,logj∑λ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(z∣x,θt)⋅logp(z∣x,θt)p(z∣x,θt+1)dz≤0
两个概率分布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(P∣∣Q)=Ex∼P[logQ(x)P(x)],KL散度是恒≥0的。
因此
∫ 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(z∣x,θt)⋅logp(z∣x,θt)p(z∣x,θt+1)dz=−KL(p(z∣x,θt)∣∣p(z∣x,θ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算法公式可得:
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(z∣x,θ)=logq(z)p(x,z∣θ)−logq(z)p(z∣x,θ)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(z∣x,θ)) −∫zq(z)logq(z)p(z∣x,θ)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(q∣∣p),由于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(q∣∣p)=0,也就是 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(z∣x,θ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(z∣x,θt)logp(z∣x,θt)p(x,z∣θ)dzKL(p(z∣x,θt)∣∣p(z∣x,θ)) −∫zp(z∣x,θt)logp(z∣x,θt)p(z∣x,θ)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(z∣x,θt)logp(z∣x,θt)p(x,z∣θt)dz=0 −∫zp(z∣x,θt)logp(z∣x,θt)p(z∣x,θ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(z∣x,θ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=θargmax∫zp(z∣x,θt)logp(z∣x,θt)p(x,z∣θ)dz=θargmax∫zp(z∣x,θt)logp(x,z∣θ)dz−与θ无关 θargmax∫zp(z∣x,θt)p(z∣x,θt)dz=θargmax∫zp(z∣x,θt)logp(x,z∣θ)dz=θargmaxEz∣x,θt[logp(x,z∣θ)]
由此我们就导出了EM算法的迭代公式。
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∣θ)=log∫zp(x,z∣θ)dz=log∫zq(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∣θ)=C⇒q(z)=Cp(x,z∣θ)⇒∫zq(z)dz=∫zC1p(x,z∣θ)dz⇒1=C1∫zp(x,z∣θ)dz⇒C=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(z∣x,θ)
这种方法到这里就和上面的方法一样了,总结来说就是:
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(z∣x,θt),接下来的推导过程就和第1种方法一样了。
上面介绍的EM算法属于狭义的EM算法,它是广义EM的一个特例。在上面介绍的EM算法的E步中我们假定 q ( z ) = p ( z ∣ x , θ t ) q(z)=p(z|x,\theta ^{t}) q(z)=p(z∣x,θt),但是如果这个后验 p ( z ∣ x , θ t ) p(z|x,\theta ^{t}) p(z∣x,θ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∣θ)dz−∫zq(z)logq(z)p(z∣x,θ)dz = E L B O + K L ( q ∣ ∣ p ) =ELBO+KL(q||p) =ELBO+KL(q∣∣p)
当我们对于固定的 θ \theta θ,我们希望 K L ( q ∣ ∣ p ) KL(q||p) KL(q∣∣p)越小越好,这样就能使得 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(q∣∣p)=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) E−Step:qt+1=qargmaxL(q,θt)M−Step:θ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 框架中,⽆法求解 z z z后验概率,那么需要采⽤⼀些变种的 EM 来估算这个后验:
①基于平均场的变分推断,VBEM/VEM
②基于蒙特卡洛的EM,MCEM
下一章传送门:白板推导系列笔记(十一)-高斯混合模型
参考文章
EM算法|机器学习推导系列