机器学习-白板推导系列笔记(十)-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(θ

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值