EM算法

数据点: {(x1,y1),(x2,y2),,(xN,yN)}
数据点中的向量(即数据点的特征): x={x(1),x(2),...,x(n)}T
数据点的第 j 个特征:aj={a(1)j,a(2)j,,a(n)j}
样本:样本包含多个数据点
总体:总体包含多个样本

简介

EM算法,全称Expectation Maximization Algorithm,译作最大期望化算法或期望最大算法,它是一种迭代算法,用于含有隐变量(hidden variable)的概率参数模型的最大似然估计或极大后验概率估计。

算法

  • 解释一
    输入:观测变量数据 Y ,隐变量数据Z,联合分布 P(YZ|θ) ,条件分布 P(Z|Y,θ)
    输出:模型参数。
    (1)选择参数的初值 θ(0) ,开始迭代;
    (2)E步:利用概率模型参数的现有估计值,在第 i 次迭代即固定θ(i)计算 Q 函数。
    Q(Z)=p(Z|Y,θ(i))

    (3) M步:利用E 步上求得的隐藏变量的期望,对参数模型进行最大似然估计

    J(Z,θ)=ZQi(Z)logp(Y,Z|θ)Qi(Z)=Zp(Z|Y,θ(i))logp(Y,Z|θ)p(Z|Y,θ(i))

    θ(i+1)=argmaxθJ(Z,θ)
    argmax 是一种函数,函数 y=f(x) x0=argmax(f(x)) 的意思就是参数 x0 满足 f(x0) f(x) 的最大值;

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


- 解释二
(1)选择参数的初值 θ(0) ,开始迭代;
(2)E步:记 θ(i) 为第 i 次迭代参数的估计值,在第i+1次迭代的E步,计算

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

这里, P(Z|Y,θ(i)) 是在给定观测数据 Y 和当前的参数估计θ(i)下隐变量数据 Z 的条件概率分布;
(3) M步:求使Q(θ,θ(i))极大化的,确定第 i+1 次迭代的参数的估计值 θ(i)
θ(i+1)=argmaxθQ(θ,θ(i))

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

EM算法收敛性

  • 定理1
    P(Y|θ) 为观测数据的似然函数, θ(i)i1,2, 为EM算法得到的参数估计序列, P(Y|θ(i))i1,2, 为对应的似然函数序列,则 P(Y|θ(i)) 是单调递增的,即
    p(Y|θ(i+1))p(Y|θ(i))
  • 定理2
    L(θ)logP(Y|θ) 为观测数据的对数似然函数, θ(i)(i1,2,) 为EM算法得到的参数估计序列, L(θ(i))(i1,2,) 为对应的对数似然函数序列。
    (1)如果 P(Y|θ) 有上界,则 L(θ(i))logP(Y|θ(i)) 收敛到某一值 L
    (2)在函数 Q(θ,θ(i)) L(θ) 满足一定条件下,由EM算法得到的参数估计序列 θ(i) 的收敛值 θ L(θ) 的稳定点。

EM算法推导

上式中的观测数据 Y 在此处用样本数据x表示。

Jensen不等式

在完善EM算法之前,首先来了解下Jensen不等式,因为在EM算法的推导过程中会用到。
- Jensen不等式描述如下:
如果f是凸函数, X 是随机变量,则E[f(X)]f(E[X]),特别地,如果f是严格凸函数, E[f(X)]f(E[X]) ,那么当且仅当 p(x=E[X])=1 时(也就是说 X 是常量),E[f(x)]=f(E[X])
如果f是凹函数, X 是随机变量,则E[f(X)]f(E[X]).当 f 是(严格)凹函数当且仅当f是(严格)凸函数。
- 通过下面这张图,可以加深印象:

凹函数

EM推导

给定 m 个训练样本x(1),,x(m),假设样本间相互独立,我们想要拟合模型 p(x,z) 到数据的参数。根据分布,我们可以得到如下这个似然函数:

L(θ)=i=1mlogp(x|θ)=i=1mlogzp(x,z|θ)

注意: 第一步 mi=1logp(x|θ) m 个样本的似然函数之和,即整体的似然函数。
第二步zp(x,z|θ)是对每个样本实例的每个可能的类别 z 求联合分布概率之和。如果z是个已知的数,那么使用极大似然估计来估算会很容易。在这种 z 不确定的情形下,EM算法就派上用场了。

EM算法推导

对于每个实例i,用 Qi 表示样本实例隐含变量 z 的某种分布,且Qi满足条件 zQi=1,Qi0 ,如果 Qi 是连续性的,则 Qi 表示概率密度函数,需要将求和符号换成积分符号。则上述(1)式与(2)式做如下变换:

i=1mlogp(x(i)|θ)==i=1mlogzip(x(i),z(i)|θ)i=1mlogz(i)Qi(z(i))p(x(i),z(i)|θ)Qi(z(i))i=1mz(i)Qi(z(i))logp(x(i),z(i)|θ)Qi(z(i))

首先(4)中的 log 函数看成为一个整体, log 函数为一个凹函数。根据Jensen不等式, E[f(X)]f(E[X]) 可得(5)式。(5)式的推导如下;
概率论中的随机变量的期望计算方法,如下图所示


因此,结合上面的知识点,我们可以把(4)式当中的 Qi(z(i)) 看成相应的概率 pi ,把 p(x(i),z(i)|θ)Qi(z(i)) 看作是 z(i) 的函数 g(z) ,类似地,根据期望公式 E(x)=xp(x) 可以得到:

z(i)Qi(z(i))p(x(i),z(i)|θ)Qi(z(i))

其实这就是 p(x(i),z(i)|θ)Qi(z(i)) 的期望。再根据凹函数对应的Jensen不等式性质, E[f(X)]f(E[X])
logz(i)Qi(z(i))p(x(i),z(i)|θ)Qi(z(i))z(i)Qi(z(i))logp(x(i),z(i)|θ)Qi(z(i))

因此便得到了公式(5)。OK,现在我们知道上面的式(4)和式(5)两个不等式可以写成:似然函数 L(θ)>=J(z,Q) 的形式( z 为隐含变量),那么我们可以通过不断的最大化J的下界,来使得 L(θ) 不断提高,最终达到它的最大值。使用下图会比较形象:


首先我们固定 θ ,调整Q(z)使下界 J(z,Q) 上升至与 L(θ) 在此点 θ 处相等(绿色曲线到蓝色曲线),然后固定Q(z),调整 θ 使下界J(z,Q)达到最大值( θt θt+1 ),然后再固定 θ ,调整Q(z)……直到收敛到似然函数 L(θ) 的最大值处的 θ

Q函数推导

根据第一步,固定θ,调整 Q(z) 使下界 J(z,Q) 上升至与 L(θ) 在此点 θ 处相等,此处求解当Q(z)为何值时,下界 J(z,Q) L(θ) 在此点 θ 处相等。求解过程如下:
在Jensen不等式中说到,当自变量X=E(X)时,即为常数的时候,等式成立。而在这里,为:

g(z)=p(x(i),z(i)|θ)Qi(z(i))=c

对该式做个变换,并对所有的 z 求和,得到
z(i)p(x(i),z(i)|θ)=z(i)Qi(z(i))c

因为前面提到 z(i)Qi(z(i))=1 (概率之和为1),所以可以推导出:
z(i)p(x(i),z(i)|θ)=c

根据(6)可得 Qi(z(i))
Qi(z(i))=p(x(i),z(i)|θ)c

根据(8)式 z(i)p(xi,z(i)|θ)=c 可得
Qi(z(i))=p(x(i),z(i)|θ)z(i)p(x(i),z(i)|θ)=p(x(i),z(i)|θ)p(x(i)|θ)=p(z(i)|x(i),θ)

由此可知当 Qi(z(i))=p(z(i)|x(i),θ) 时,下界 J(z,Q) 上升至与 L(θ) 在此点 θ 处相等。此步就是EM算法的E-step,目的是建立L(θ)的下界。接下来的M-step,目的是在给定 Q(z) 后,调整 θ ,从而极大化L(θ))的下界 J(z,Q)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值