EM算法(Expectation maximization algorithm)

纠结了好几天,总算搞清楚了EM算法的大概。因此写下这篇博客做个笔记,由于这方面懂得不是很多,可能存在理解错误的地方,欢迎大家指正,好了闲话不多说。

极大似然估计

极大似然估计定义

在正式介绍EM算法之前,我们需要先来了解一下最大似然估计。这个我们应该都在概率论中学过,其实思想比较简单,而且我们在生活中也经常用到,举一个简单的例子:
某位同学与一位猎人一起外出打猎,一只野兔从前方窜过。只听一声枪响,野兔应声到下,如果要你推测,这一发命中的子弹是谁打的?你就会想,只发一枪便打中,由于猎人命中的概率一般大于这位同学命中的概率,看来这一枪是猎人射中的。这便是最大似然的思想,看起来是不是非常简单。下面来看看极大似然的定义。

定义:极大似然估计是建立在极大似然原理的基础上的一个统计方法,是概率论在统计学中的应用。极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。

求解过程

现在我们以一个正态分布为例,假设有一组样本

D=(x1,x2,x3....xn) D = ( x 1 , x 2 , x 3 . . . . x n )

我们知道样本 x1,x2,...xn x 1 , x 2 , . . . x n 独立同分布于一个正太分布函数:

f(x)=12πδe(xμ)22δ2 f ( x ) = 1 2 π δ e − ( x − μ ) 2 2 δ 2

并且 δ δ 是已知的,而 μ μ 未知,那么最大似然需要最什么呢?求出当均值为多少时,产生这种采样数据的概率最大。
我们令似然函数 l(θ)=P(D|θ) l ( θ ) = P ( D | θ ) ,这里我们解释下什么是 θ θ ,其实 θ θ 表示的是是当前概率最大的最大似然函数的模型,什么意思呢?即取到当前样本最大的时候对应的函数参数 (μ,δ2) ( μ , δ 2 ) 。在这里其实等同于 μ μ

由于样本之间是独立同分布所以

l(θ)=i=1nf(xi|θ) l ( θ ) = ∏ i = 1 n f ( x i | θ )

下一步要做的便是找到一个和是的 θ^ θ ^ 使得 l(θ) l ( θ ) 最大,即

θ^=argmaxl(θ) θ ^ = a r g m a x l ( θ )

具体做法,对 θ θ 求导,然后解出最大值。

L(θ)θ=0 ∂ L ( θ ) ∂ θ = 0

然后求解 θ θ

具体计算过程可以看看极大似然估计详解,可以更好的理解 θ θ 以及整个流程。

所以计算过程总结下来就是

(1)写出似然函数;

(2)对似然函数取对数,并整理;

(3)求导数,令导数为0,得到似然方程;

(4)解似然方程,得到的参数即为所求;

EM算法

既然我们前面讲到极大似然估计,那么EM算法到底和他有什么关系呢?以生活中送快递为例子

EM算法和极大似然估计的区别

极大似然估计面临的情况
一个快递员给你送货。若他到你家只有一条路(结果的实现依赖一个概率分布),但却不知道这条路今天修不修路(不知道该概率分布的参数),修路的话今天快递员就没法送货,若结果是快递员送到货了,那这条路修路了没?答案很明显:没修路。

EM算法面临的情况
快递员到你家的路有N条(结果的实现依赖多个概率分布),但快递员只会选择一条路,即,今天他不会选择第二条路,若他选择的路修路,那他就不给你送货了,即使这会而让你暴跳如雷。问:如果今天快递员送到货了,则他选择的哪条路?那条路修路了吗?对于这个,因为你不知道他选择的哪条路(他把货送到就走了,根本不给你问他话的时间),所以你唯一能做的就是估计出这N条路被他选择的N个概率(即:每个概率分布的权值),然后在根据极大似然估计来得出:这条路没修路(求出每个概率分布的参数)。

一句话总结就是极大似然估计是知道概率分布,不知道参数,现在需要通过求解参数使得当前观测值的可能性最大,而EM算法是知道观测值属于哪一个概率分布,也不知道参数

鸡生蛋,蛋生鸡问题

对于EM算法,我们既不知道样本属于那个概率分布,也不知道具体的参数,要求在什么参数下会使观测概率最大?这样就带来了一个问题,要知道属于哪个分布,必须要知道具体的参数。然而参数是未知的。要求极大参数,知道概率分布是前提。两个相互依赖,但是又都是未知的,就造成了鸡生蛋蛋生鸡的问题。

EM算法思想

面对上面的问题,EM算法怎么做的呢?举例说明:现在你有一堆糖果,现在有两个盘子,你需要将糖果均分到两个盘子中,你又不想一个一个的数,嫌太麻烦了。那可以先随机把糖果分成两堆,分别放到两个盘子当中,然后用手分别拿起盘子掂量一下分量,判断哪一个重一些,然后将重的那一盘糖果中那一部分出来放入轻的当中,重复这个过程直到两边分量感觉起来差不多。

EM算法就是这样,假设我们想估计知道A和B两个参数,在开始状态下二者都是未知的,但如果知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。可以考虑首先赋予A某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。

上面第一步赋初值对应的EM算法中的E步,求期望(expcetation),后面的迭代表示的M步,求极大值。

三硬币模型

假设有三枚硬币,分别记作A,B,C。这些硬币正面出现的概率分别为 π,p,q π , p , q 。现在进行抛硬币实现:先抛A,根据A的结果抛出B或C,正面选B,反面选C。然后掷出所选的硬币。出现正面记为1,反面为0。独立重复n次(n=10),观测结果如下:

1,1,0,1,0,0,1,0,1,1 1 , 1 , 0 , 1 , 0 , 0 , 1 , 0 , 1 , 1

假设只能观测到B和C的结果,不能观测A的结果,求三枚硬币出现正面的概率 π,p,q π , p , q
三硬币模型可以写作

p(y|θ)=zp(y,z|θ)=zp(y|z,θ)p(z|θ)(1) p ( y | θ ) = ∑ z p ( y , z | θ ) = ∑ z p ( y | z , θ ) p ( z | θ ) ( 1 )

p(y|θ)=πpy(1p)1y+(1π)qy(1q)1y(2) p ( y | θ ) = π p y ( 1 − p ) 1 − y + ( 1 − π ) q y ( 1 − q ) 1 − y ( 2 )

其中y表示观测变量,即B、C的结果:1或0。随机变量z是隐含变量,即A最后的结果,我们是无法观测。 θ=(π,p,q) θ = ( π , p , q ) 是模型参数。对公示(2)的解释, p(y|θ) p ( y | θ ) 表示在 θ θ y y 的概率,假设 y = 1 那么公式则为 p(y|θ)=πpy+(1π)qy p ( y | θ ) = π p y + ( 1 − π ) q y ,当 y=0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值