此文章主要是结合哔站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=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(θ