EM算法

EM算法

首先举一个含有隐变量的例子

有三枚硬币A,B,C,首先抛A硬币,如果A正面朝上则抛B,如果A 反面朝上则抛C,我们只记录B,C硬币的结果。这个过程重复N次得到观测到的结果 Y={y1,y2,,yN} ,现在要求计算出A,B,C正面朝上的概率分别是多少。

我们设每次抛硬币过程中,A硬币的结果为Z。因为Z是无法观测到的,我们称它为隐变量。

θ ={P(A),P(B),P(C)},表示模型的参数,最大似然概率为

L(θ)=logp(Y|θ)=logZp(Y,Z|θ)

由于存在隐变量,无法直接采用最大似然估计算出硬币出现正面的概率。

假设第i步求出 θ(i) ,那么下一步求出的 θ 要满足 L(θ)>L(θ(i)) ,只有这样才有可能求出最优解

L(θ)L(θ(i))=logZp(Y,Z|θ)logp(Y|θ(i))=logZp(Y,Z|θ)p(Y|θ(i))=logZp(Z|Y,θ(i))p(Y,Z|θ)p(Z|Y,θ(i))p(Y|θ(i))Zp(Z|Y,θ(i))logp(Y,Z|θ)p(Z|Y,θ(i))p(Y|θ(i))

上式的不等号可由琴森不等式得到,对于凸函数f(x)可以得到如下不等式
f(i=1Nλixi)i=1Nλif(xi)

其中 Ni=1λi=1

所以

L(θ)L(θ(i))+Zp(Z|Y,θ(i))logp(Y,Z|θ)p(Z|Y,θ(i))p(Y|θ(i))

想要使 L(θ) 最大,那么其下限必须要取最大,问题转化为最大化似然函数的下限。
θ=argmaxθ(L(θ(i))+Zp(Z|Y,θ(i))logp(Y,Z|θ)p(Z|Y,θ(i))p(Y|θ(i)))=argmaxθZp(Z|Y,θ(i))logp(Y,Z|θ)


Q(θ,θ(i))=Zp(Z|Y,θ(i))logp(Y,Z|θ)

所以期望最大算法可以表示为:

初始化 θ(0) (对初值敏感)

  1. E步

    求出期望 Q(θ,θ(i))=Zp(Z|Y,θ(i))logp(Y,Z|θ)

  2. M步

    最大化Q函数,求出 θ(i+1)

上述两步不但迭代,直到 θ 发生很小的变化为止。

从上面的推到过程中可以看到,我们是在求Q函数的最大化,求出来的值只是似然函数的下限,因此EM算法找的是局部最优解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值