em算法详细例子及推导_机器学习理论基础(9)-EM算法及公式推导

1f0eb6a1bd120a7476a12c361a5de48a.png

预告一下,这部分数学推导内容比较多。看这个系列的同学都知道,数学推导部分我是很少写的,主要是通过举例子和演示简单的实现代码,让大家加深对这个算法的理解。理解之后,学有余力的同学可以再深入。但EM算法很难达到这个效果,直接举例子,也很难理解背后的思想,所以会把推导部分一并提供。

EM算法的引入

引用Nature Biotech 的 EM tutorial的两硬币模型的例子,先直观感受下。由于解释这篇文章的太多了,我也不赘述了,大家可以看看下面的文章。

阿泽:【机器学习】EM——期望最大(非常详细)​zhuanlan.zhihu.com
e906734ff794de48bb36080b264fa086.png

三硬币模型

这是书上的例子,也是上面两个硬币模型的一个扩展。

0a100a418f1b0757333e55152d48b90d.png

对每一次试验可以进行如下建模,

表示结果的观测变量,
表示模型参数就是我们要求的
就是隐变量,表示观测不到的变量,抛掷硬币A的结果:
这个式子的实在意义是什么?加号左边表示的是,抛掷硬币A为正面,我们得到
的概率,同样,右边式子同理。由于
的取值不是0就是1,这里把式子展开:

第一个式子表示A抛掷为正,B抛掷为正+A抛掷为反,C抛掷为正的概率。第二个式子就是A抛掷为正,B抛掷为反+A抛掷为反,C抛掷为反的概率。整合一下就是书中的9.1式子:

每一次抛掷已经建模结束,我们对整个实验进行建模。先定义两个变量,将观测数据表示为
,为观测数据表示为
,则:

通过极大似然估计求模型参数:

继续对
求导,很快就发现,我们是求不出解析解的。所以我们需要用一个迭代的方法求解,也就是接下来要讲的EM算法。

EM算法的导出

先要讲讲Jensen(琴生)不等式,Jensen 不等式是建立在凸函数上的不等关系。那么凸函数又是什么呢?通俗来讲,凸函数就是图像看起来向上鼓或者向下鼓的函数(向上鼓就是上凸,向下鼓就是下凸);从定义来讲,就是在函数图像上随便连一条线段,这条线段所在的区间上的函数取值要么都在直线上方(包含),要么都在直线下方(包含)。

50e735b58044146b8e046fa2b313bcf6.png
下凸函数

是凸函数,则:
。这个式子显然是成立的,其实就是凸函数的定义。如上图,式子的左侧就是AB两点直接连接的直线(蓝色线),而右侧就是AB两点的函数连续(绿线)。将上式
推广到
个同样成立:

其中,
。在概率论中以下面的形式出现:

其中
是随机变量,
是凸函数,
当然就是
的期望了。基本的数学基础已经铺垫完了,下面就开始推导EM算法。我们要极大化的是下面的式子:

注意到这一极大化的主要困难是含有未观测数据Z并有包含和(Z为离散型时,如上式)或者积分(Z为连续型时)的对数。EM算法采用的是通过迭代逐步近似极大化
:假设在第i次迭代后
的估计值是
,我们希望新的估计值
能使
增大,即
,并逐步达到极大值。为此:

为啥要做这样的变换呢,当然是为了要凑Jensen不等式,大家观察减号左边的式子,不就是相当于
吗?也就是期望值。很自然就是:

到这里就化简不下去了。式子就是:

令:

则:

,注意:这里的
当然是未知的,但
是已知的,因为从
开始,我们会赋给它一个随机值(当然要有一定的合理性,比如两硬币模型的赋值),让它不断进行迭代。

函数

的一个下界,此时,若设
使得
达到极大,也就是:
,这里由于是极大,不是最大,所以式子里面的是
而不是
。同时算一下
也就是把
代到上式(1.1),得到结果为
。所以结果为:

因此,任何可以使
增大的
,可可以使得
增大,为了使
尽可能大的增长,求解能使得
达到极大的

这个就是EM算法的Q函数,使其最大。到这里已经完成了EM算法的一次迭代。求出的

作为下一次迭代的初始
。总结一下EM算法的E步和M步分别为:

E步:计算完全数据的对数似然函数

关于在给定观测数据
和当前参数
下对未观测数据
的条件概率分布
的期望。很拗口,
其实就是用这个缺失数据的期望值来代替缺失的数据,而这个缺失的数据期望值和它的概率分布有关。那么我们可以通过对似然函数关于缺失数据期望的最大化,来逼近原函数的极大值。EM算法本质就是含有 隐变量的概率模型参数的极大似然估计法。Q函数数学表达式:

这里我们把
看成随机变量
看成
各种取值的概率,这样就是
的期望。

M步:求使得Q函数达到极大的

,并作为下一次迭代的初始化。

这就是EM 算法的核心思想分步:Expection-Step 和 Maximization-Step。由于算法会保证在每次迭代之后似然函数都会增加,所以函数最终会收敛(收敛性这里不讲了),得到我们想要的解。

EM算法的解释

书中有这个算法的图解过程:

c028911a24b525c18c1971eb8d490779.png

这个图已经基本画的很清楚了,就是一个逐步的逼近极大值的过程。如果还是不太清楚的话,可以看看这个:怎么通俗易懂地解释EM算法并且举个例子?

EM算法求解例子

用EM算法求解三硬币模型的思路:E步,求出Q函数,M步,求出使得Q函数达到极大的

下面求Q函数:

单独考察第一项,继续展开可得结果:

代回到Q函数,最终得到:

到此化简结束,下面代入具体参数,导出具体Q函数。

由于
的取值不是0就是1,可得:

上面就是书中的9.5式。代入Q函数:

下面就是M步了:

这就是书中的9.6,以此类推求

。参考书中的9.7和9.8。

先写到这里吧,EM算法其实就是一个迭代方法,在很多地方我们应该还能看到它的身影,到时候再学习,慢慢加深理解。

顺便提一句,在了解EM的过程,我一直在想,有的地方为什么不用梯度下降法呢?后来理解了本质上并无太大差异,梯度下降每一个循环仅仅更新模型参数就可以了,EM算法每一个循环既需要更新隐含参数和也需要更新模型参数。

2ef1c7de86feb5ab0afeff085fb6621c.png

这些链接也解了我的一些疑惑,有兴趣的同学可以看看。

如何正确理解EM算法?

梯度下降和EM算法:系出同源,一脉相承

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值