机器学习笔记——10 上帝的算法EM算法

机器学习笔记——10 上帝的算法EM算法

EM算法是一种迭代算法,它可以用来求解一些含有潜在变量的模型的参数。比如后面我们将介绍的混合高斯模型、kmean聚类以及因子分析,它们都利用EM算法来求解参数。EM算法非常美妙,在吴军的《数学之美》一书中,将该算法称为上帝的算法,本文标题即是延用他的说法。在本文中,我们主要介绍EM算法及其相关的数学理论,重点解释为什么EM算法可以保证收敛,以及EM算法是否能够保证得到全局最优解。

潜变量模型

给定了一个训练集 S = { x ( 1 ) , . . . , x ( m ) } S = \{x^{(1)},...,x^{(m)}\} S={ x(1)...x(m)},训练的模型是 p ( x , z ; θ ) p(x,z;\theta) p(x,z;θ),注意到这是一个潜变量模型(latent variable model),我们的目的是通过训练集训练出参数 θ \theta θ。因此按照正常的思路,我们需要构建一个似然函数,并尝试通过MLE获得 θ \theta θ的参数估计。由于变量z是无法观测的,因此我们需要获得 x x x的边缘分布: p ( x ; θ ) = ∑ z p ( x , z ; θ ) p(x;\theta) = \sum_{z}p(x,z;\theta) p(x;θ)=zp(x,z;θ)然后就可以得到对数似然函数 ℓ ( θ ) = ∑ i = = 1 m log ⁡ p ( x ( i ) ; θ ) = ∑ i = = 1 m log ⁡ ∑ z ( i ) p ( x ( i ) , z ( i ) ; θ ) \ell(\theta) = \sum_{i = =1}^{m}\log{p(x^{(i)};\theta)} = \sum_{i = =1}^{m}\log{\sum_{z^{(i)}}p(x^{(i)},z^{(i)};\theta)} (θ)=i==1mlogp(x(i);θ)=i==1mlogz(i)p(x(i),z(i);θ)事实上我们会发现求此函数的驻点是没有封闭解的,这就是潜变量模型参数估计时的困难。但是,通过EM算法,我们可以通过迭代给出一个满意的参数估计。

EM算法

EM算法通过E-step和M-step两步来不断迭代 θ ( t ) \theta^{(t)} θ(t),最终达到收敛。需要特别指出,除非迭代的函数是一个凸函数,否则一般而言是无法保证达到全局最优解。此外,EM算法是可以保证收敛,这一点我们会在下文中证明。现在我们具体阐述EM算法的步骤:
Repeate until convergence
(E-step) For each i,set
Q ( i ) = p ( z ( i ) ∣ x ( i ) , θ ) Q^{(i)} = p(z^{(i)}|x^{(i)},\theta) Q(i)=p(z(i)x(i),θ)(M-step) Update the parameters : θ = a r g M a x θ ∈ Θ ∑ i = 1 m E L B O ( x ( i ) , Q , θ ) \theta = argMax_{\theta \in \Theta} {\sum_{i = 1}^{m}ELBO(x^{(i)},Q,\theta)} θ=argMaxθΘi=1mEL

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值