我想很多人立马有答案: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|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)的例子。如果模型为条件概率分布,损失函数定义为对数损失函数,经验风险最小化就等价于最大似然估计。
小结一下,最大似然估计是在给定模型(含有未知参数)和样本集的情况下,用来估计模型参数的方法。其基本思想是找到最佳的模型参数,使得模型实现对样本的最大程度拟合,也就使样本集出现的可能性最大。