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步骤的输入

二、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 ) 因 此 有 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 左边=\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}}\\ 因此有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 =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,θ)dzlogp(xθ)=zp(zx,θt)p(x,zθ)dzzp(zx,θt)logp(zx,θ)dz

这里我们定义了 Q ( θ , θ t ) Q(\theta ,\theta ^{t}) Q(θ,θt),称为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 这 里 应 用 了 J e n s e n 不 等 式 : l o g ∑ j λ j y j ≥ ∑ j λ j l o g y j , 其 中 λ j ≥ 0 , l o g ∑ j λ j = 1 也 可 以 使 用 K L 散 度 来 证 明 ∫ z p ( z ∣ x , θ t ) ⋅ l o g p ( z ∣ x , θ t + 1 ) p ( z ∣ x , θ t ) d z ≤ 0 : 两 个 概 率 分 布 P ( x ) 和 Q ( x ) 的 K L 散 度 的 定 义 为 D K L ( P ∣ ∣ Q ) = E x ∼ P [ l o g P ( x ) Q ( x ) ] , K L 散 度 是 恒 ≥ 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 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\\ 这里应用了Jensen不等式:{\color{Red} {log\sum _{j}\lambda _{j}y_{j}\geq \sum _{j}\lambda _{j}logy_{j},其中\lambda _{j}\geq 0,log\sum _{j}\lambda _{j}=1}}\\ 也可以使用KL散度来证明\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:\\ 两个概率分布P(x)和Q(x)的KL散度的定义为\\ D_{KL}(P||Q)=E_{x\sim P}[log\frac{P(x)}{Q(x)}],KL散度是恒\geq 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 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=0Jensenlogjλjyjjλjlogyj,λj0logjλj=1使KLzp(zx,θt)logp(zx,θt)p(zx,θt+1)dz0P(x)Q(x)KLDKL(PQ)=ExP[logQ(x)P(x)]KL0zp(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 ( θ , θ ′ ) Q(\theta,\theta^{'}) Q(θ,θ) L ( θ ) L(\theta ) L(θ)满足一定条件下,由EM算法得到的参数估计序列 θ t \theta ^{t} θt的收敛值 θ ∗ \theta ^{*} θ L ( θ ) L(\theta ) L(θ)的稳定点。

三、EM的算法的导出

  1. ELBO+KL散度的方法

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 以 上 引 入 一 个 关 于 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 , θ ) ) 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\\ 以上引入一个关于z的概率分布q(z),然后式子两边同时求对q(z)的期望\\ 左边=\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}} logp(xθ)=logp(x,zθ)logp(zx,θ)=logq(z)p(x,zθ)logq(z)p(zx,θ)q(z)=0zq(z)q(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 , θ ) ) 当 θ = θ t 时 , l o g    p ( x ∣ θ t ) 取 E L B O , 即 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 )=\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}}\\ 当\theta =\theta ^{t}时,log\; p(x|\theta ^{t})取ELBO,即\\ 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θ)=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θ=θtlogp(xθt)ELBOlogp(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)。该过程如下图所示:

ELBO

然后我们观察一下取 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算法的迭代公式。

  1. ELBO+Jensen不等式的方法

首先要具体介绍一下Jensen不等式:对于一个凹函数 f ( x ) f(x) f(x)(国内外对凹凸函数的定义恰好相反,这里的凹函数指的是国外定义的凹函数),我们查看其图像如下:

Jensen不等式

t ∈ [ 0 , 1 ] c = t a + ( 1 − t ) b ϕ = t f ( a ) + ( 1 − t ) f ( b ) 凹 函 数 恒 有 f ( c ) ≥ ϕ 也 就 是 f ( t a + ( 1 − t ) b ) ≥ t f ( a ) + ( 1 − t ) f ( b ) 当 t = 1 2 时 有 f ( a 2 + b 2 ) ≥ f ( a ) 2 + f ( b ) 2 可 以 理 解 为 先 求 期 望 再 求 函 数 恒 ≥ 先 求 函 数 再 求 期 望 即 f ( E ) ≥ E [ f ] t\in [0,1]\\ c=ta+(1-t)b\\ \phi =tf(a)+(1-t)f(b)\\ 凹函数恒有f(c)\geq \phi \\ 也就是f(ta+(1-t)b)\geq tf(a)+(1-t)f(b)\\ 当t=\frac{1}{2}时有f(\frac{a}{2}+\frac{b}{2})\geq \frac{f(a)}{2}+\frac{f(b)}{2}\\ 可以理解为先求期望再求函数恒\geq 先求函数再求期望\\ 即f(E)\geq E[f] t[0,1]c=ta+(1t)bϕ=tf(a)+(1t)f(b)f(c)ϕf(ta+(1t)b)tf(a)+(1t)f(b)t=21f(2a+2b)2f(a)+2f(b)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 ∣ θ ) 将 C 代 入 q ( z ) = p ( x , z ∣ θ ) C 得 q ( z ) = p ( x , z ∣ θ ) p ( x ∣ θ ) = p ( z ∣ 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 )\\ 将C代入q(z)=\frac{p(x,z|\theta )}{C}得\\ {\color{Red}{q(z)=\frac{p(x,z|\theta )}{p(x|\theta )}=p(z|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θ)Cq(z)=Cp(x,zθ)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 当 q ( z ) = p ( z ∣ x ∣ θ ) 时 取 等 号 , 因 此 在 迭 代 更 新 过 程 中 取 q ( z ) = p ( z ∣ x , θ t ) 。 接 下 来 的 推 导 过 程 就 和 第 1 种 方 法 一 样 了 。 log\; p(x|\theta )\geq \underset{ELBO}{\underbrace{E_{q(z)}[log\frac{p(x,z|\theta )}{q(z)}] }}\\ 当q(z)=p(z|x|\theta )时取等号,因此在迭代更新过程中取q(z)=p(z|x,\theta ^{t})。\\ 接下来的推导过程就和第1种方法一样了。 logp(xθ)ELBO Eq(z)[logq(z)p(x,zθ)]q(z)=p(zxθ)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 = E L B O + K L ( q ∣ ∣ p ) 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=ELBO+KL(q||p) logp(xθ)=zq(z)logq(z)p(x,zθ)dzzq(z)logq(z)p(zx,θ)dz=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 固定\theta ,\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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值