【机器学习之小算法】最大似然法 Maximum Likelihood Method

注:转自http://blog.sina.com.cn/s/blog_5ecfd9d90100lh1c.html和http://blog.csdn.net/bingduanlbd/article/details/24384771 感谢原作者

最大似然法是要解决这样一个问题给定一组数据和一个参数待定的模型,如何确定模型的参数,使得这个确定参数后的模型在所有模型中产生已知数据的概率最大通俗一点讲,就是在什么情况下最有可能发生已知的事件举个例子,假如有一个罐子,里面有黑白两种颜色的球,数目多少不知,两种颜色的比例也不知。我们想知道罐中白球和黑球的比例,但我们不能把罐中的球全部拿出来数。现在我们可以每次任意从已经摇匀的罐中拿一个球出来,记录球的颜色,然后把拿出来的球再放回罐中。这个过程可以重复,我们可以用记录的球的颜色来估计罐中黑白球的比例。假如在前面的一百次重复记录中,有七十次是白球,请问罐中白球所占的比例最有可能是多少?

我想很多人立马有答案:70%。这个答案是正确的。可是为什么呢?(常识嘛!这还要问?!)其实,在很多常识的背后,都有相应的理论支持。在上面的问题中,就有最大似然法的支持

在很久以前的一个下午,自己在图书馆看书,书中讲到了同一独立分布(i.i.d., identical and independent distribution),与概率相关。当时已经听说最大似然法很长时间了,最大似然法在不同场合应用的结论看过不少,但自己还没有真正地学习和应用过。突然想到了上面的例子(类似的例子在自己以后的阅读很常见,当时没有意识到自己到底以前看过类似的例子没有),决定自己动手算一算。

下面会有一些数学,我知道西河比较深,大牛比较多,看了不要见笑。有意见和建议尽管提。

我们假设罐中白球的比例是p,那么黑球的比例就是1-p。因为每抽一个球出来,在记录颜色之后,我们把抽出的球放回了罐中并摇匀,所以每次抽出来的球的颜色服从同一独立分布。这里我们把一次抽出来球的颜色称为一次抽样。题目中在一百次抽样中,七十次是白球的概率是P(Data | M),这里Data是所有的数据M是所给出的模型,表示每次抽出来的球是白色的概率为p。如果第一抽样的结果记为x1,第二抽样的结果记为x2,。。。那么Data = (x1,x2,...,x100)。这样,
P(Data | M)
= P(x1,x2,...,x100|M)
= P(x1|M)P(x2|M)...P(x100|M)
= p^70(1-p)^30.

那么p在取什么值的时候,P(Data |M)的值最大呢?将p^70(1-p)^30对p求导,并其等于零。
70p^69(1-p)^30-p^70*30(1-p)^29=0。
解方程可以得到p=0.7。
在边界点p=0,1,P(Data|M)=0。所以当p=0.7时,P(Data|M)的值最大。这和我们常识中按抽样中的比例来计算的结果是一样的。

当时,自己推到完这些,心情很高兴,感觉自己理解了最大似然法。接着想到了连续变量。

假如我们有一组连续变量的采样值(x1,x2,...,xn),我们知道这组数据服从正态分布,标准差已知。请问这个正态分布的期望值为多少时,产生这个已有数据的概率最大?
P(Data | M) = ??

求导,u=(x1+x2+...+xn)/n.这个正态分布的期望值,就是这组数据的均值。在我们的日常生活和工作中,我们经常会用到平均值,这是有道理的,可以用最大似然法来解释。如果数据服从正态分布,这是最可能的数据。

当我第一次自己推导出这些的时候,心中有一种豁然开朗、恍然大悟的感觉:最大似然法就这样!

最大似然法原理简单,应用很广。举个例子,这样的情况在生活会经常遇到。假如人们会感染一种病毒,有一种测试方法,在被测试者已感染这个病毒时,测试结果为阳性的概率为95%。在被测试者没有感染这个病毒时,测试结果为阳性的概率为2%。现在,有一个人的测试结果为阳性,问这个人感染了病毒吗?根据最大似然法,如果一个人感染病毒,95%的测试结果会为阳性;而如果这个人没有感染病毒,只有2%的测试结果会为阳性,所以这个人应该是已经感染病毒了。

最大似然法应用广泛,但是经常会受到一种批评,而且对于这种批评,尤其在数据量比较小的时候,最大似然法的支持者没有很多充分的反驳理由:在最大似然法中,只考虑了由一个模型产生一个已知数据的概率,而没有考虑模型本身的概率。相对应的考虑了模型本身概率的方法,是贝叶斯方法(Bayesian method)。

在上面测试病毒的例子中,如果我们知道在整体人群中,只有1%人会感染这种病毒,那么,根据贝叶斯方法,这个被测试者只有1/3左右的可能性感染了病毒{1%*95%/(1%*95%+99%*2%)=32.4%}
在这里,我们看到先验概率对结果的影响很大。

不过,当数据量比较大的时候,先验概率的影响就会减小。比如,人们在被检测出感染了一个严重的病毒后,一般会去其他医院复查。假如同一个人在三家医院进行了独立的检查,结果都是阳性。那么,这个人真正感染了病毒的概率有多大?在这个人感染病毒时,出现这种检测结果的可能性为95%*95%*95% = 85.7%;而在这个人没有感染病毒时,出现这种检测结果的可能性为2%*2%*2% = 0.000008。根据最大似然法,我们应选择这个人感染了病毒。
  
根据贝叶斯方法,这个人感染病毒的概率为1%*95%*95%*95%/(1%*95%*95%*95%+99%*2%*2%*2%) = 99.9%。
  
  当然,当时自己主要体会了同一独立分布在最大似然法中的要求。在以后的一个应用中,才对“模型已知,参数未定”这一要求有了进一步的认识。
—————————————————————————————————————————————————————————————————————————————

极大似然估计,顾名思义是一种估计方法。既然是一种估计方法,我们至少必须搞清楚几个问题:估计什么?需要什么前提或假设?如何估计?估计的准确度如何?

直观概念,最大似然估计:

给定:模型(参数全部或者部分未知)和数据集(样本)

估计:模型的未知参数。

基本思想:

这一方法是基于这样的思想:我们所估计的模型参数,要使得产生这个给定样本的可能性最大。在最大释然估计中,我们试图在给定模型的情况下,找到最佳的参数,使得这组样本出现的可能性最大。举个极端的反面例子,如果我们得到一个中国人口的样本,男女比例为3:2,现在让你估计全国人口的真实比例,你肯定不会估计为男:女=1:0。因为如果是1:0,不可能得到3:2的样本。我们大多很容易也估计为3:2,为什么?样本估计总体?其背后的思想其实最是最大似然。

机器学习的异常检测中,根据模型(通过学习得来的)计算一个数据点出现的概率,如果这个概率小于某个我们事先设定的值,就把它判为异常。我们基于的是一个小事件的思想:如果一件可能性极小的事情竟然发生了,那么就极有可能是异常。举个例子,我这辈子跟奥巴马成为哥们的可能性几乎为零,如果哪一天我跟奥巴马在烧烤摊喝3块钱一瓶的啤酒,那么绝对叫异常。

例子1:估计高斯分布的均值和方差

假设我们有一组来自高斯分布(均值和方差未知)的独立样本x[1]、x[2]、...、x[N],即

        X[n] ~ N(u,t^2), n=1,2,...,N  (注,本文中方差均匀t^2代替)

简单起见,我们假设这些观测值都是相同独立的,也就是这些观测值独立同分布(iid)。现在让你从这些样本中估计均值u和方差,如何下手?最大似然估计来帮你解决。

1)既然是idd,那么联合概率密度f(x[1],...,x[N]; u,t^2)=f(x[1] ; u,t^2)*...*f(x[N]; u,t^2),带入高斯分布得到:

                    

我们把这个式子叫做似然函数,用来衡量从模型中产生这个样本组的可能性大小,我们记为L(x[1],...,x[n]; u,t^2).除以样本容量平均一下,就叫平均对数似然。这个函数有变量x[1],...x[N],还有u,t^2.现在我们换个角度看,把x[1]到x[N]看成是固定的,而u和t^2可能自由变化。根据基本思想,我们下一步就是要找到使得这个似然函数达到最大值的u和t^2的取值。

2)给定样本值之后,我们要求出上面式子最大值,由于ln函数是单调递增函数,我们将L取对数,得到

         L = 

首先求L达到最大时u的值,取u的导数,令导数为0,得到u的估计值

               

接着把方差t^2看成一个变量,求导,令其等于零得到方差估计值

              

求解完毕。至于跟真实值差多少,计算比较复杂。有个定律是,如果有足够多的样本,那么我们可以使估计值达到任意的精度。极端情况下,样本就是总体,估计值就等于真实值。

例子2:人口比例

地球人都知道,概率模型中,取值可以使连续的(例子1就是),也可以是离散的。我们来看看离散的情况,人口比例。

假设现在有一个中国人口的样本组,样本容量为1000,服从独立同分布,男女比例为3:2.如何通过合理推到估计全国的人口比例(也就是证明样本估计总体的可行性)。一样用最大释然估计,我们现在的模型是个离散模型,我们假设其参数p为男性人口比例。现在要估计的就是这个p的值.

同上面一样,可以得到似然函数L=(p^600)*((1-p)^400),要求p,使得该函数最大,很简单,求导赋零,可以得到p=0.6.

值得说明的是,有些情况下可能存在多个模型参数,同时满足最大似然。另外有可能这个最佳的值是不存在的。最佳的模型参数拟合样本的函数是最好的。

最大似然估计也是统计学习中经验风险最小化(RRM)的例子。如果模型为条件概率分布,损失函数定义为对数损失函数,经验风险最小化就等价于最大似然估计。

小结一下,最大似然估计是在给定模型(含有未知参数)和样本集的情况下,用来估计模型参数的方法。其基本思想是找到最佳的模型参数,使得模型实现对样本的最大程度拟合,也就使样本集出现的可能性最大。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值