EM算法总结

概述

EM算法常常用于解决含有隐变量问题的参数估计。由于隐变量是无法观测的,因此在进行参数估计时只能通过似然函数 P(X|θ)的大小来对参数进行估计。借助于隐变量和观测变量对似然函数进行建模。

Jensen不等式求下界

由于EM算法本身是对参数进行估计,所以我们能够得到模型:

P ( X ∣ Z , θ ) P(X\mid Z , \theta) P(XZ,θ) 以及 P ( Z ∣ θ ) P(Z\mid\theta) P(Zθ)

自然能够得出下列 关于 θ \theta θ 的似然函数。

l o g P ( X ∣ θ ) = l o g ∑ Z P ( X , Z ∣ θ ) logP(X\mid\theta) = log\displaystyle\sum_{Z}P(X,Z\mid\theta) logP(Xθ)=logZP(X,Zθ)
由于有着Z的存在(无法被观测),所以无法直接优化上式,因此我们想到可以优化下界(谁想到的,太厉害了)

那如何求下界呢,这时候我们引入Jensen不等式,Jensen不等式的概率表示形式为:

  • 对于凸函数,有: E [ f ( x ) ] ≥ f ( E [ x ] ) E[f(x)] \ge f(E[x]) E[f(x)]f(E[x])
  • 对于凹函数,有: f ( E [ x ] ) ≥ E [ f ( x ) ] f(E[x]) \ge E[f(x)] f(E[x])E[f(x)]

由于Log函数是凹函数,因此有第二个式子成立。那么如何构造第二个式子呢?
我们知道,对于离散分布求期望其实就是对随机变量的值进行加权平均,因此我们可以引入一个权重,其求和为1。我们设这个权重为 Q ( Z ) Q(Z) Q(Z)
这样一来就得到了:

l o g ∑ Z Q ( Z ) P ( X ∣ θ ) = log ⁡ ∑ Z Q ( Z ) P ( X , Z ∣ θ ) log\displaystyle\sum_{Z}Q(Z)P(X\mid\theta) = \log\displaystyle\sum_{Z}Q(Z)P(X,Z\mid\theta) logZQ(Z)P(Xθ)=logZQ(Z)P(X,Zθ)

由于 P ( X ∣ θ ) P(X\mid\theta) P(Xθ)和Z无关,所以等式左边的求和还是等于本身。即:

log ⁡ P ( X ∣ θ ) = log ⁡ ∑ Z Q ( Z ) P ( X , Z ∣ θ ) Q ( Z ) \log P(X\mid\theta) = \log\displaystyle\sum_{Z}Q(Z)\frac {P(X,Z\mid\theta)} {Q(Z)} logP(Xθ)=logZQ(Z)Q(Z)P(X,Zθ)

根据Jensen不等式,可以把 Q ( Z ) Q(Z) Q(Z)从Log里面拿出来。这样的话又有:

log ⁡ P ( X ∣ θ ) ≥ ∑ Z Q ( Z ) l o g P ( X , Z ∣ θ ) Q ( Z ) \log P(X\mid\theta) \ge \displaystyle\sum_{Z}Q(Z)log\frac {P(X,Z\mid\theta)} {Q(Z)} logP(Xθ)ZQ(Z)logQ(Z)P(X,Zθ)
这样我们就得到了对数似然函数的下界。

对下界进行优化

EM算法的核心思想就是一个迭代式优化的过程,巧妙地利用了Jensen不等式的下界的思想,先是使本次迭代中,下界等于自身,然后再去优化自身,从而得到下一次迭代的参数的下界。
那么我们就首先要找到使下界等于似然函数本身的 Q ( Z ) Q(Z) Q(Z)。 根据Jensen不等式,显然有当 f ( x ) = C f(x) = C f(x)=C 的时候有等号成立。

所以我们要使 l o g ( ) log() log()中为常量,同时由于 ∑ Z Q ( Z ) = 1 \displaystyle\sum_{Z}Q(Z)=1 ZQ(Z)=1

可以令 Q ( Z ) = P ( Z ∣ X , θ ) Q(Z)=P(Z\mid X,\theta) Q(Z)=P(ZX,θ).

这样log中就变为了: P ( X , Z ∣ θ ) P ( Z ∣ X , θ ) = P ( X ∣ θ ) \displaystyle\frac {P(X,Z\mid\theta)} {P(Z\mid X,\theta)}=P(X\mid\theta) P(ZX,θ)P(X,Zθ)=P(Xθ)

log中是与Z无关的量,因此等式成立。

所以有:

l o g P ( X ∣ θ ) = ∑ Z P ( Z ∣ X , θ ) log ⁡ P ( X , Z ∣ θ ) P ( Z ∣ X , θ ) logP(X\mid\theta) = \displaystyle\sum_{Z}P(Z\mid X,\theta)\log\frac {P(X,Z\mid\theta)} {P(Z\mid X,\theta)} logP(Xθ)=ZP(ZX,θ)logP(ZX,θ)P(X,Zθ)

接下来就可以利用EM算法的迭代式求解思想来进行参数估计了。
首先我们设置初始参数 θ 0 \theta_0 θ0
这时候的似然函数就变为:

l o g P ( X ∣ θ 0 ) = ∑ Z P ( Z ∣ X , θ 0 ) log ⁡ P ( X , Z ∣ θ 0 ) P ( Z ∣ X , θ 0 ) logP(X\mid\theta_0) = \displaystyle\sum_{Z}P(Z\mid X,\theta_0)\log\frac {P(X,Z\mid\theta_0)} {P(Z\mid X,\theta_0)} logP(Xθ0)=ZP(ZX,θ0)logP(ZX,θ0)P(X,Zθ0)

如果不是天选之子的话,显然这个时候的似然函数值不是最优的,因此我们就要对等式右端进行优化。那么怎么才能得到更优的值呢?

要是固定 P ( X , Z ∣ θ 0 ) P(X,Z\mid \theta_0) P(X,Zθ0) 的话,无论怎么优化 P ( Z ∣ X , θ 0 ) P(Z\mid X,\theta_0) P(ZX,θ0)(也就是 Q ( Z ) Q(Z) Q(Z)),由于Jensen不等式的特性,以及 Q ( Z ) Q(Z) Q(Z)需要满足 ∑ Z Q ( Z ) = 1 \displaystyle\sum_{Z}Q(Z)=1 ZQ(Z)=1
这样优化得到的似然函数值依旧是 l o g P ( X ∣ θ 0 ) logP(X\mid\theta_0) logP(Xθ0) 的下界,所以根本无法实现对参数的优化。

因此我们要先固定 Q ( Z ) Q(Z) Q(Z),对 P ( X , Z ∣ θ 0 ) P(X,Z\mid \theta_0) P(X,Zθ0)进行优化。(也就是通过改变 P ( X , Z ∣ θ 0 ) P(X,Z\mid \theta_0) P(X,Zθ0) θ \theta θ的值来使似然函数变得更大)

公式为: θ 1 = arg max ⁡ θ ∑ Z P ( Z ∣ X , θ 0 ) log ⁡ P ( X , Z ∣ θ ) P ( Z ∣ X , θ 0 ) \theta_1 = \argmax_\theta\displaystyle\sum_{Z}P(Z\mid X,\theta_0)\log\frac {P(X,Z\mid\theta)} {P(Z\mid X,\theta_0)} θ1=θargmaxZP(ZX,θ0)logP(ZX,θ0)P(X,Zθ)

这样就得到了新参数 θ 1 \theta_1 θ1,因为这个参数是我们经过了优化上式得到的。那么有:

∑ Z P ( Z ∣ X , θ 0 ) l o g P ( X , Z ∣ θ 1 ) P ( Z ∣ X , θ 0 ) ≥ ∑ Z P ( Z ∣ X , θ 0 ) l o g P ( X , Z ∣ θ 0 ) P ( Z ∣ X , θ 0 ) \displaystyle\sum_{Z}P(Z\mid X,\theta_0)log\frac {P(X,Z\mid\theta_1)} {P(Z\mid X,\theta_0)} \ge \displaystyle\sum_{Z}P(Z\mid X,\theta_0)log\frac {P(X,Z\mid\theta_0)} {P(Z\mid X,\theta_0)} ZP(ZX,θ0)logP(ZX,θ0)P(X,Zθ1)ZP(ZX,θ0)logP(ZX,θ0)P(X,Zθ0)

等价于:

∑ Z P ( Z ∣ X , θ 0 ) l o g P ( X , Z ∣ θ 1 ) P ( Z ∣ X , θ 0 ) ≥ log ⁡ P ( X ∣ θ 0 ) \displaystyle\sum_{Z}P(Z\mid X,\theta_0)log\frac {P(X,Z\mid\theta_1)} {P(Z\mid X,\theta_0)} \ge \log P(X\mid\theta_0) ZP(ZX,θ0)logP(ZX,θ0)P(X,Zθ1)logP(Xθ0)

我们可以把 P ( Z ∣ X , θ 0 ) P(Z\mid X,\theta_0) P(ZX,θ0)写成 Q ( Z 0 ) Q(Z_0) Q(Z0)。这样上式的左边就变成了:

∑ Z Q ( Z 0 ) l o g P ( X , Z ∣ θ 1 ) Q ( Z 0 ) \displaystyle\sum_{Z}Q(Z_0)log\frac {P(X,Z\mid\theta_1)} {Q(Z_0)} ZQ(Z0)logQ(Z0)P(X,Zθ1)且满足 ∑ Z Q ( Z 0 ) = 1 \displaystyle\sum_ZQ(Z_0)=1 ZQ(Z0)=1

这时候我们发现,这个形式不是正好是对数似然函数 log ⁡ P ( X ∣ θ 1 ) \log P(X\mid \theta_1) logP(Xθ1)的下界吗?
那么显然:
既然我 θ 1 \theta_1 θ1的似然函数的下界都要比你 θ 0 \theta_0 θ0的似然函数要大了。自然就实现了优化的目的,即:

log ⁡ P ( X ∣ θ 1 ) ≥ log ⁡ P ( X ∣ θ 0 ) \log P(X\mid \theta_1) \ge \log P(X \mid \theta_0) logP(Xθ1)logP(Xθ0)

这也就实现了从 θ 0 → θ 1 \theta_0 \rightarrow \theta_1 θ0θ1
而想要进一步优化,实现从 θ 1 → θ 2 \theta_1 \rightarrow \theta_2 θ1θ2
就要按照原来的步骤依次进行迭代优化。

总结

总结起来,EM算法的步骤就是:

  1. 计算 Q ( Z i ) = P ( Z ∣ X , θ i ) Q(Z_i)=P(Z\mid X,\theta_i) Q(Zi)=P(ZX,θi)
    由于 arg max ⁡ θ ∑ Z P ( Z ∣ X , θ i ) log ⁡ P ( X , Z ∣ θ ) P ( Z ∣ X , θ i ) = arg max ⁡ θ ∑ Z P ( Z ∣ X , θ i ) log ⁡ P ( X , Z ∣ θ ) \argmax_\theta\displaystyle\sum_{Z}P(Z\mid X,\theta_i)\log\frac {P(X,Z\mid\theta)} {P(Z\mid X,\theta_i)}=\argmax_\theta\displaystyle\sum_{Z}P(Z\mid X,\theta_i)\log P(X,Z\mid\theta) θargmaxZP(ZX,θi)logP(ZX,θi)P(X,Zθ)=θargmaxZP(ZX,θi)logP(X,Zθ)。 所以只需要计算 ∑ Z P ( Z ∣ X , θ i ) log ⁡ P ( X , Z ∣ θ ) \displaystyle\sum_{Z}P(Z\mid X,\theta_i)\log P(X,Z\mid\theta) ZP(ZX,θi)logP(X,Zθ) 即可。
    这也相当于求 log ⁡ P ( X , Z ∣ θ ) \log P(X,Z\mid \theta) logP(X,Zθ)关于 P ( Z ∣ X , θ i ) P(Z\mid X,\theta_i) P(ZX,θi)的期望,所以也叫作E步骤。
  2. 对上式求的期望进行关于 θ \theta θ的优化。即:
    θ i + 1 = arg max ⁡ θ ∑ Z P ( Z ∣ X , θ i ) log ⁡ P ( X , Z ∣ θ ) \theta_{i+1} = \argmax_\theta\displaystyle\sum_{Z}P(Z\mid X,\theta_i)\log P(X,Z\mid\theta) θi+1=θargmaxZP(ZX,θi)logP(X,Zθ) 也就是M步骤。

同样,从白板推导大佬那里学到了EM算法的KL散度解释,等到有空的时候会再更新。
再留个坑,就是关于EM算法的实际计算。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值