EM算法及其推导

定义
EM算法是含有隐变量的概率模型参数的极大似然估计法或极大后验概率估计法。下面仅讨论极大似然估计。

特点
EM算法与初值的选择有关,选择不同的初值可能得到不同的结果。

本章,我们用 Y Y Y表示观测数据, Z Z Z表示隐数据, ( Y , Z ) (Y , Z) (Y,Z)一起称为完全数据, Y Y Y则称为不完全数据。

EM算法的目标
θ ^ = arg ⁡ max ⁡ θ l o g P ( Y ∣ θ ) \hat{\theta} =\mathop{\arg\max}_{\theta} logP(Y|\theta) θ^=argmaxθlogP(Yθ),通过迭代法求解,每次迭代包括E步和M步。

EM算法
输入:观测变量数据 Y Y Y, 隐变量数据 Z Z Z, 联合分布 P ( Y , Z ∣ θ ) P(Y,Z|\theta) P(Y,Zθ), 条件分布 P ( Z ∣ Y , θ ) P(Z|Y,\theta) P(ZY,θ)
输出 θ \theta θ

  • 初始化 θ ( 0 ) \theta^{(0)} θ(0) (注意:EM算法与初值的选择有关,选择不同的初值可能得到不同的参数估计值)

  • E步: θ ( i ) \theta^{(i)} θ(i)为第 i i i次迭代参数 θ \theta θ的估计值,在第 i + 1 i+1 i+1次迭代的E步,计算
    Q ( θ , θ ( i ) ) = E Z [ l o g P ( Y , Z ∣ θ ) ∣ Y , θ ( i ) ] = ∑ Z l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) Q(\theta,\theta{(i)} )= E_Z[logP(Y,Z|\theta)|Y,\theta^{(i)}] =\sum_ZlogP(Y,Z|\theta)P(Z|Y,\theta^{(i)}) Q(θ,θ(i))=EZ[logP(Y,Zθ)Y,θ(i)]=ZlogP(Y,Zθ)P(ZY,θ(i))

  • M步: θ ( i + 1 ) = arg ⁡ max ⁡ θ Q ( θ , θ ( i ) ) \theta ^{(i+1)}=\mathop{\arg\max}_{\theta} Q(\theta,\theta^{(i)}) θ(i+1)=argmaxθQ(θ,θ(i))

  • 重复2和3步,直至收敛

Q ( θ , θ ( i ) ) Q(\theta,\theta{(i)} ) Q(θ,θ(i)) Q Q Q函数,它是EM算法的核心,其定义是:完全数据的对数似然函数 l o g P ( Y , Z ∣ θ ) logP(Y,Z|\theta) logP(Y,Zθ)关于在给定观测数据 Y Y Y和当前参数 θ ( i ) \theta^{(i)} θ(i)下对隐数据 Z Z Z的条件概率分布 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) P(ZY,θ(i))的期望称为 Q Q Q函数。

有的地方写的步骤是这样的:
在这里插入图片描述
本质是一样的。

关于EM算法的几点说明:

  • EM算法对初值是敏感的,不同的初始值可能使得最后的参数估计值不同
  • 停止迭代的条件是: ∣ θ ( i + 1 ) − θ ( i ) ∣ &lt; ξ 1 | \theta^{(i+1)} - \theta^{(i)} |&lt; \xi_1 θ(i+1)θ(i)<ξ1 或者 ∣ Q ( θ ( i + 1 ) , θ ( i ) ) − Q ( θ ( i ) , θ ( i ) ) ∣ &lt; ξ 2 | Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})| &lt;\xi_2 Q(θ(i+1),θ(i))Q(θ(i),θ(i))<ξ2
  • 每次迭代使 l o g P ( Y ∣ θ ) logP(Y|\theta) logP(Yθ)增大或者达到局部极值

从前面知道,我们的目标是极大化对数似然函数 arg ⁡ max ⁡ θ l o g P ( Y ∣ θ ) \mathop{\arg\max}_{\theta} logP(Y|\theta) argmaxθlogP(Yθ),因为隐变量的存在,我们无法直接求其进行求解。采用的EM算法也仅仅是近似实现对观测数据的极大似然估计。


如何一步一步从目标推出EM算法
目标:极大化 L ( θ ) = l o g P ( Y ∣ θ ) = l o g ( ∑ Z P ( Y , Z ∣ θ ) ) = l o g ( ∑ Z P ( Z ∣ θ ) P ( Y ∣ Z , θ ) ) L(\theta) = logP(Y|\theta) =log(\sum_Z P(Y,Z|\theta)) = log(\sum_ZP(Z|\theta)P(Y|Z,\theta)) L(θ)=logP(Yθ)=log(ZP(Y,Zθ))=log(ZP(Zθ)P(YZ,θ))
上式的困难是1.有隐变量 2.包含和的对数

EM算法是通过迭代逐步近似极大化 L ( θ ) L(\theta) L(θ)
预备:Jensen不等式
对于凸函数 E ( f ( x ) ) &gt; = f ( E ( x ) ) E(f(x))&gt;=f(E(x)) E(f(x))>=f(E(x))
我们期望新的估计值能使对数似然函数增加,即
L ( θ ) &gt; L ( θ ( i ) ) L(\theta)&gt;L(\theta^{(i)}) L(θ)>L(θ(i))
这里写图片描述

在这里插入图片描述
B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i)) L ( θ ) L(\theta) L(θ)的下界,并且 L ( θ ( i ) ) = B ( θ ( i ) , θ ( i ) ) L(\theta^{(i)}) = B(\theta^{(i)},\theta^{(i)}) L(θ(i))=B(θ(i),θ(i))
任何可以使 B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i))增大的 θ \theta θ,也可以使 L ( θ ) L(\theta) L(θ)增大。为了使 L ( θ ) L(\theta) L(θ)尽可能大的增长,我们选择 θ ( i + 1 ) \theta^{(i+1)} θ(i+1)使得 B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i))达到极大, θ ( i + 1 ) = arg ⁡ max ⁡ θ B ( θ , θ ( i ) ) \theta^{(i+1)}=\mathop{\arg\max}_{\theta}B(\theta,\theta^{(i)}) θ(i+1)=argmaxθB(θ,θ(i))

省去对 θ \theta θ极大化而言是常数的项:
θ ( i + 1 ) = arg ⁡ max ⁡ θ ∑ Z l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) = arg ⁡ max ⁡ θ Q ( θ , θ ( i ) ) \theta^{(i+1)} = \mathop{\arg\max}_{\theta}\sum_ZlogP(Y,Z|\theta)P(Z|Y,\theta^{(i)})=\mathop{\arg\max}_{\theta}Q(\theta,\theta^{(i)}) θ(i+1)=argmaxθZlogP(Y,Zθ)P(ZY,θ(i))=argmaxθQ(θ,θ(i))

EM算法是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。
这里写图片描述


EM算法的收敛性
在这里插入图片描述
EM算法不能保证收敛到全局的极大点,因此它是局部最优的算法。

[1] 李航《统计学习方法》
[2] https://www.cnblogs.com/pinard/p/6912636.html
[3] https://www.cnblogs.com/txg198955/p/4097543.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值