EM算法的推导

算法用途

在统计计算中,最大期望(EM)算法是在 概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)。

如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法或者贝叶斯估计法来估计模型参数。当概率模型含有隐藏变量时,就不能简单地使用这些估计方法。EM算法就是含有隐变量的概率模型参数的极大似然估计法。

符号定义

  • Y:观测的随机变量数据,
  • Z:隐藏的随机变量数据
  • 完全数据(complete data):Y和Z
  • 不完全数据(incomplete data):Y

问题描述

  • 输入:观测数据 Y
  • 求解:模型参数 θ
  • 方法:最大化观测数据的似然函数
    θ=argθmaxL(θ;Y)

其中,似然函数定义为:

L(θ;Y)=logP(Y;θ)=logZP(Y|Z;θ)P(Z|θ)
  • 困难:上式往往包含对未观测数据及和或者积分的对数,无解析解,不可直接求。

我们的解决方案是:通过迭代,不断优化似然函数 L(θ;Y) 的下界,来逐步近似极大化 L(θ;Y) 。这一下界,就是著名的Q函数。

Q函数

Q(θ,θi)=EZ[logP(Y,Z | θ) | Y,θi]=ZP(Z | Y,θi)logP(Y,Z | θ)

Q函数的物理意义为:

完全数据 Y,Z对数似然函数 logP(Y,Z | θ),关于未观测数据 Z 的 在给定 观测数据 Y 和 当前参数估计 θi 的情况下的 后验概率分布 P(Z | Y,θi)条件期望

EM算法的核心就在于Q函数的最大化。

极大似然估计的求解方法是,最大化观测变量关于模型参数的似然函数;而在EM方法的试用场景中含有隐藏变量,无法直接最大化观测变量的似然函数,因此我们转而通过迭代来不断优化观测变量似然函数的下界,即包括观测变量和隐藏变量在内的所有变量的似然函数条件期望

推导思路一

假设第 i 轮迭代后,θ 的估计值是 θi

我们希望在新的一轮迭代中(即第 i+1 轮),对 θ 的新的估计能够使得 Y 的似然函数值增加,即

L(θ;Y)L(θi;Y)

于是,我们考虑这二者的差:

L(θ;Y)L(θi;Y)

我们注意到:

观测数据的似然函数为:

L(θ;Y)=logP(Y|θ)

完全数据的似然函数为:

LC(θ;Y,Z)=logP(Y,Z|θ)=logP(Y|θ)P(Z|Y;θ)=logP(Y|θ)+logP(Z|Y;θ)=L(θ;Y)+logP(Z|Y;θ)

也就是说:

L(θ;Y)=LC(θ;Y,Z)logP(Z|Y;θ)

所以有

L(θ)L(θi)=(LC(θ)logP(Z|Y;θ))(LC(θi)logP(Z|Y;θi))=LC(θ)LC(θi)+logP(Z|Y;θ)P(Z|Y;θi)

对该式左右两边取关于Z的期望(Y,θ,i 已给定)。左式两项与Z无关,所以结果不变;右式三项均与Z相关。结果如下:

L(θ)L(θi)=ZLC(θ)P(Z|Y,θi)ZLC(θi)P(Z|Y,θi)+ZP(Z|Y,θi)logP(Z|Y;θ)P(Z|Y;θi)ZLC(θ)P(Z|Y,θi)ZLC(θi)P(Z|Y,θi)

不等号成立的原因是右式第三项实质上是两个概率分布 P(Z|Y;θ)P(Z|Y;θi) 的KL-divergence,不为负。

上式又可转化为

L(θ)L(θi)+ZLC(θ)P(Z|Y,θi)ZLC(θi)P(Z|Y,θi)

此时,我们得到了 L(θ) 的下界,即右式所示。我们将该下界记为函数 B(θ,θi)。任何可以使 B(θ,θi) 增大的 θ,也可以使 L(θ) 增大。为了使 L(θ) 尽可能地变大,我们选择可以最大化函数 B(θ,θi)θ 作为对第 i+1 轮的估计,即:

θi+1=argθmaxB(θ,θi)=argθmaxL(θi)+ZLC(θ)P(Z|Y,θi)ZLC(θi)P(Z|Y,θi)

我们注意到:右式第一项和第三项均为常数,因此,上述问题等价于:

θi+1=argθZLC(θ)P(Z|Y,θi)=argθZP(Z|Y,θi)logP(Y,Z | θ)=Q(θ,θi)

这一下界就是EM算法中的Q函数:

Q(θ,θi)=ZLC(θ)P(Z | Y,θi)=ZP(Z | Y,θi)logP(Y,Z | θ)=EZ[logP(Y,Z | θ) | Y,θi]

推导思路二

同样,假设第 i 轮迭代后,θ 的估计值是 θi

我们希望在新的一轮迭代中(即第 i+1 轮),对 θ 的新的估计能够使得 Y 的似然函数值增加,即

L(θ;Y)L(θi;Y)

于是,我们考虑这二者的差:

L(θ;Y)L(θi;Y)=logP(Y | θ)logP(Y | θi)=logZP(Y,Z | θ)logP(Y | θi)=logZP(Z | Y,θi)P(Y,Z | θ)P(Z | Y,θi)logP(Y | θi)ZP(Z | Y,θi)logP(Y,Z | θ)P(Z | Y,θi)logP(Y | θi)=ZP(Z | Y,θi)logP(Y,Z | θ)P(Z | Y,θi)ZP(Z | Y,θi)logP(Y | θi)=ZP(Z | Y,θi)logP(Y,Z | θ)P(Z | Y,θi)P(Y | θi)=ZP(Z | Y,θi)logP(Y,Z | θ)P(Y,Z | θi)

上式不等号是利用了Jensen不等式:

对于凸函数 f(x)

f(λixi)λif(xi)

其中 λi0,λi=1.

而对数函数 log() (以 e 为底)为凹函数。

将上式的形式进一步转换可以得到:

L(θ;Y)=L(θi;Y)+ZP(Z | Y,θi)logP(Y,Z | θ)P(Y,Z | θi)=L(θi;Y)+ZP(Z | Y,θi)logP(Y,Z | θ)ZP(Z | Y,θi)P(Y,Z | θi)

此时,我们得到了 L(θ) 的下界,和第一种推导思路一致。

EM算法框架

至此,我们可以给出EM算法框架如下:

输入:观测数据 Y
设定:模型及其参数 θ,以及P(Y | Z)P(Z | θ)
求解:模型参数 θ

(1) 初始化:选择参数初值 θ0,开始迭代

(2) E-step:记 θi 为第 i 次迭代的参数值,则在第 i+1 次迭代的E-step,计算Q函数,即完全数据在当前参数下的条件期望:

Q(θ,θi)=EZ[logP(Y,Z | θ) | Y,θi]=ZP(Z | Y,θi)logP(Y,Z | θ)

其中Q函数的计算涉及两项概率分布:

  • 完全数据 Y,Z对数似然函数 logP(Y,Z | θ)
    logP(Y,Z | θ)=logP(Y | Z) P(Z | θ)
  • 未观测数据 Z后验概率分布 P(Z | Y,θi)
    P(Z | Y,θi)=P(Y,Z |θi)P(Y | θi)=P(Y,Z |θi)ZP(Y,Z | θi)=P(Y | Z) P(Z |θi)ZP(Y | Z) P(Z | θi)

(3) M-step:求使得上述期望最大的 θ,确定第 i+1 次迭代的参数估计值 θi+1

θi+1=argθmaxQ(θ,θi)

(4) 重复第2、3步,直到收敛。

添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值