EM learning

在机器学习问题中,经常需要根据采样数据,推测其分布。一般都要用到极大似然估计(maximum likelihood)。

比如对于一组数据{ x1,x2,...,xm },假设其分布函数是 p(x|θ) ,为了求出分布函数的参数 θ ,我们假设如果这个 θ 对应的分布函数最大,那么此时的分布函数就是这组数据的真实分布。这有种从结果推测原因的感觉。 p(x|θ) 中的 θ 是原因,是x符合的分布,因此我们采样数据才能够得到{ x1,x2,...,xm }。但是现在我们为了推测 θ ,反而从观测数据开始反推。

极大似然估计算法推测 θ

θ=argmaxθp(x|θ)

但是对于比较复杂的模型,参数比较多,很难直接通过计算求出极大似然函数。所以就有了EM算法,通过迭代的方式,不断逼近极大似然函数。

EM算法的核心公式:

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

上面的推导中,用到了Jensen不等式,因为log函数是个凹函数。取等条件是 p(x(i),z(i);θ)Q(z(i)i) 为常数(关于 θ )。

所以,取

Q(z(i)i)=p(x(i),z(i);θ)zp(x(i),z;θ)=p(z(i)|x(i);θ)

那么,我们现在可以通过改变 Q(z(i)i) 的取值,来逼近极大似然函数。而且我们知道,当 Q(z(i)i)=p(z(i)|x(i);θ) 的时候, l(θ) 可以取得最大值。

至此,EM算法的思路已经很清晰了:

repeat until converge{
(E step) 求出每个样本数据对应的函数

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

(M step) 求出极大似然估计参数 θ

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

}

直观地理解上面的算法流程,在每次的迭代更新中,算法都会将样本数据代入到当前的模型中,进行计算。然后利用计算的结果更新模型。在下一次的迭代中,因为模型被更新过了,所以在E step中利用样本数据进行计算的结果也会发生变化。

可以证明,在不断的迭代中,计算结果总是朝着 θ 越来越接近极大似然的方向进行的(只需要证明第t+1次迭代后的似然函数比第t次迭代后的似然函数大,就可以了,即 l(t+1)l(t) )。那么,循环很多次之后,计算结果也就非常接近真实情况啦!

利用EM算法,推测GMM模型的参数

未完,待续。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值