机器学习——EM算法

EM(Exception Maximization)算法

引言:在动笔之前,我在网上翻阅了许多的资料,生怕自己理解的不透彻,网上也有许多良心之作,对我理解该算法起到了巨大的帮助作用,EM算法既简单又复杂,简单在于它的思想是非常简单的,仅包含两个步骤就能完成强大的功能,复杂在于它对数学基础要求比较高,公式推导相对比较繁琐,可能世界上最伟大的东西都是这样吧,越是简单的东西却有着复杂的机理,但是越复杂的东西有时又蕴含着简单的道理。下面就把我在学习该算法的过程写下来,希望对后面的人学习有所帮助!

一、极大似然估计

       在介绍EM算法之前,需要先复习一下极大似然估计,什么是极大似然估计呢?举个例子,假定现在需要调查我们学校男生和女生的身高分布,这么多学生怎么办,不可能一个一个去问吧,所以就需要抽样。现在在学校随机抽取了100位男生和100位女生,分别统计他们的身高,从统计学角度可以知道男生和女生的身高分别是服从高斯分布的,但是这两个分布的均值\mu和方差\sigma ^{2}都不知道,所以我们就需要从这些样本中来估计这两个参数,记作\theta =[\mu ,\sigma ^{2}]^{T}。下面先以男生的身高分布说明,女生的同理。

       在学校这么多男生中,我们独立的按照概率密度p(x|\theta )抽取了100个人,组成了样本集X,我们想通过样本集X来估计出参数\theta,这里的概率密度p(x|\theta )是高斯分布N(\mu ,\sigma ^{2})的概率密度函数,其中的未知参数是\theta =[\mu,\sigma ^{2}]^{T},抽到的样本集是X=X_{1},X_{2},X_{3}...X_{i},其中X_{i}表示抽到的第i个人的身高,i在这里最大值取100,表示抽到的样本个数。这些样本都是独立选择的,所以同时抽到这100个男生的概率就等于他们各自的概率乘积,即从分布是p(x|\theta )的总体样本中抽取到这100个样本的概率,就是样本集X中各个样本的联合概率,用下式表示:

                           L(\theta)=L(x_{1},x_{2}...,x_{n};\theta)=\prod_{i=1}^{n}p(x_{i};\theta)    

x_{i}就是我们的样本值,是已知的,那么上式就表示在参数\theta已知的情况下抽取得到的这个样本的概率,这里的L(\theta)就是参数\theta相对样本集的似然函数(likehood function)。

        似然函数在这里可以这样理解,X样本代表一个目标函数或者是一个事实,现在的目标是通过调整参数\theta使得刚才的这些样本出现的概率最大。这是一个反推过程,就是已经知道一个结果,就是找到了出现这个结果的最大概率。

\theta的极大似然估计量,记为:

                                                   \hat{\theta }=argmaxL(\theta)

为了方便分析,可以定义对数似然函数,将其变为连加的形式:

                                lnL(\theta)=ln\prod_{i=1}^{n}p(x_{i};\theta)=\sum_{i=1}^{n}lnp(x_{i};\theta)

ok,现在我们知道,要求\theta,只需要使\theta的似然函数L(\theta)最大化,然后极大值对应的\theta就是我们的估计。问题这个时候就转化为怎么样求解函数L(\theta)的极值,当然就是利用求导,令导数值为0,此时解出\theta就可以了,但是前提必须是函数L(\theta)是连续可导的。如果\theta是包含多个参数的向量,那么就对所有的参数求偏导,有n个未知的参数,就有n个方程,方程组的解就是似然函数的极值点了。

总结一下求最大似然估计值得一般步骤:

   (1)写出似然函数;

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

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

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

好了,说到这里,还不知道似然函数和EM算法有什么联系,我们注意到这里的参数只是对应了一个类别,即男生的身高或者女生的身高,就是在已知这一群人都是男生或者女生的情况下,获得这个类别的参数\theta =[\mu,\sigma^{2}]^{T}。如果我抽取的100个样本中既有男生又有女生,相当于两个高斯分布混合在一起,这个时候要想估计参数,就要用到下面介绍的EM(期望值最大化)算法了。 

二、EM(期望值最大化)算法

   1.Jensen不等式

         这里有一些优化理论的概念,没听过的也不用担心。设f是定义域为实数的函数,对于所有的实数x,f''(x)\geqslant 0,那么f函数是凸函数

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值