机器学习之EM算法解析

EM算法是参数估计一种,一般的,比如我们知道了样本 x1,x2,...xm 我们想寻找样本背后的参数,通常使用最大似然函数法,然后对最大似然函数求极值得到相应的参数。 但是在有些情况下,样本的生成还有不可观测的隐变量所控制,那么如果对含有隐变量的样本数据进行参数估计呢?

同样的我们先将似然函数写下来:

l(θ)=i=1mlog p(x;θ)=i=1mlogz p(xz;θ)p(z;θ)=i=1mlogz p(x,z;θ)

因为z是未知的,因此无法通过最大化似然函数求解参数。 为了解决这个问题,我们可以先找到似然函数的一个下界,极大化该下界也可以达到增大 l(θ) 的目的。

如何寻找似然函数的下界呢?可以根据jensen不等式 获得一个对应的下界:

l(θ)=ilogz(i)p(x(i),z(i);θ)=ilogz(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))iz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))

因此我们将最大化似然函数转移到了最大化似然函数的下界:

arg maxθiz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))=arg maxθB(θ)

那么式子中的 Qi(z(i)) 又代表了什么意思呢? 是怎么来的呢?
我们通过极大化似然函数的下界求得更新的参数令为 θ(t+1) ,则显然下面两个式子成立:

l(θ(t))B(θ(t))l(θ(t+1))B(θ(t+1))

为了达到最好的效果,我们希望更新 Qi(z(i)) 后的 B(θ) 满足

l(θ(t))=B(θ(t))l(θ(t+1))B(θ(t+1))

根据jensen不等式的性质,只有当 X 为常数时,才能满足等式成立,也即:

p(x(i),z(i);θ)Qi(z(i))=c

也即是说:

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

又因为 z(Qi(z(i)))=1 ,从而有:

Qi(z(i))=p(x(i),z(i);θ)zp(x(i),z;θ)=p(x(i),z(i);θ)p(x(i);θ)=p(z(i)x(i);θ)

因此可以说 Qi(z(i)) 是给定样本 x(i) 和参数 θ 的情况下关于隐藏变量 z(i) 的后验概率。

至此,EM算法的步骤大致介绍完毕,下面简述下流程:

E-step:对每个样本i,令:

Qi(z(i)):=p(z(i)x(i);θ)

M-step:令

θ:=arg maxθiz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))

重复上面两步,直到收敛为止。

那么EM算法是否收敛呢?
我们只需说明在参数迭代的过程中有 l(θ(t))l(θ(t+1)) 就可以了。
由 E-step 我们可以得到:

l(θ(t))=iz(i)Q(t)i(z(i))logp(x(i),z(i);θ(t))Q(t)i(z(i))

而对于似然函数 l(θ(t+1)) 及其下界有如下的关系:
l(θ(t+1))iz(i)Q(t)i(z(i))logp(x(i),z(i);θ(t+1))Q(t)i(z(i))iz(i)Q(t)i(z(i))logp(x(i),z(i);θ(t))Q(t)i(z(i))=l(θ(t))

上述式子表明,随着EM的迭代,似然函数 l(θ) 是一个单调增函数,因此如果两次迭代的增量小于某个值即可认为收敛。

参考

[1] Andrew Ng CS229 Lecture notes
[2] 李航 统计学习方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值