EM算法

    EM算法是一种迭代算法,用于含有隐变量(即我们无法观测到具体数据的但又客观存在的变量)的概率模型参数的极大似然估计(或极大后验概率估计)。em算法的每次迭代由两步组成:E步,求期望(expectation);m步,求极大值(maximization)。一个概率模型有时既含有观测变量,又含有隐变量。如果模型的变量都是观测变量,那么给定数据,可以直接使用极大似然估计,比如前面提到的回归问题。

    然后我们通过一个小例子来对EM算法有一个大体上的认识。我们要估计一个学校的男女身高分布,我们随机的抽取两百人的身高,且不知道每个人的性别。即男女性别即隐变量。意思我们要在不知道性别的情况下来估计男女的身高分布。我们首先假设男生身高分布服从(μ1,σ1^2)的高斯分布,女生~(μ2,σ2^2)。在此基础上我们来计算每个样本属于每个男女的概率,比如一个身高1.8的样本,将其带入男生的概率密度函数可得p1=0.8(随意编的),带入女生可得p2=0.4。然后我们知道男生和女生这两个性别的分布是一个二项分布,概率都为0.5。p1求期望就是0.5*0.8=0.4(expect);p2则是0.5*0.4=0.2,再归一化可得0.67和0.33。然后1.8就可以分为1.2和0.6,可以理解成1.8有2/3是属于男生,1/3是女生。将所有样本遍历,可以将每个样本都分为一部分男(1.2)和一部分女(0.6)。由于男女生都是服从高斯分布的,所以所有样本的那一部分男是服从男生的高斯分布的,根据这些数据我们就可以得到新的男生的高斯分布,同样女生也一样。然后再讲每个样本代入新的分布算概率,开始循环,直到收敛。可以参考下图



下面开始介绍EM算法,我们的目标是在参数θ的条件下极大化观测数据X,即极大化:


注意到这一极大化的最大困难是式中有未观测数据z。没法直接极大化,我们就采取曲线救国,通过迭代来近似极大化的L(θ)。这里我们先引入一个Qi,代表的是隐变量z的分布。(Σz Qi(z) = 1, Qi(z) 0) 。则我们可以将上式改写成(2)

刚才我们说过,我们需要近似得到L(θ),所以我们需要一个能极大化的下限函数来替代不能极大化的 L(θ)。这里又需要介绍一个概念,jensen不等式。简单的说就是如果函数f为凸函数,则满足下面的不等式。

回到我们的式(2),我们将看成一个变量X,QI是一个概率分布,再求和,其实就是求期望。并且log函数是一个严格凹函数(反着用上面的不等式),我们就可以得到式(3).
    回想我们这样做的目的是找一下限函数来代替L(θ),不能只是>=,肯定是要取等的,而log函数又是一个严格的凹函数,当X是一个常量时成立,即,而且,因为是一个分布,所以可以得到

注意这个结果,其实是给定一个样本Xi属于Zi类的概率,即我们开始那个例子中的1.8属于男生的概率和女生的概率。我们再想,这个Qi求出来有什么用呢,回顾这个Qi是如何推导得来的,我们不难明白,这其实就是再保证我们构建的下限函数是能够替代L(θ)的(两者取等)。有了这个保证,我们就能通过最大化这个下限函数来逼近L(θ)了。下面给出EM算法的完整步骤:



这就是EM算法的整个思路。说是一种算法,其实更像一种想法。我们还可以从另外一个角度来理解EM算法。


可以将其看为一个坐标上升算法,具体的参考上图。em算法不停的迭代直到收敛为止。并且em算法是一定能收敛的。我们假设经过先后两次迭代得到θ(t)和θ(t+1),我们如果能证明L(θ(t))<=L(θ(t+1)),就能得到em算法是保证最大似然是在增大的。加上其上限是1,故收敛。当有一个θ(t)时,进行em算法的e步,可得,前面也说到了。这一步是能保证jesen不等式的等号成立的,所以可得


然后 θ(t+1)是通过最大化上式等式右边的部分得到的,所以

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值