Bayesian and MLE,MAP

在研究Cryo-em的RELION工具时,方法学论文中提到采用是贝叶斯方法和MAP,以前只听过MLE,所以不甚了了,故查阅资料,望能理解透彻,方便之后论文推导和之后的改进;

最大似然估计(Maximum likelihood estimation, 简称MLE)和最大后验概率估计(Maximum a posteriori estimation, 简称MAP)

概率和统计是一个东西吗

probablity和statistics好像一直是连在一起的,概率统计?

但是二者是有区别的,正如先验、后验,二者是存在区别,且是从一件事的相反角度看的

先验、后验之分

先验是,单纯地分析当前的数据,计算出事情发生的概率

后验是,根据需要分析的事件发生结果,分析当前的数据,得出发生该结果的概率

举一个简单的例子:一口袋里有3只红球、2只白球,采用不放回方式摸取,求:
⑴ 第一次摸到红球(记作A)的概率;
⑵ 第二次摸到红球(记作B)的概率;
⑶ 已知第二次摸到了红球,求第一次摸到的是红球的概率。
解:⑴ P(A)=3/5,这就是验前概率;
⑵ P(B)=P(A)P(B|A)+P(A逆)P(B|A逆)=3/5
⑶ P(A|B)=P(A)P(B|A)/P(B)=1/2,这就是验后概率

概率、统计之分

probability研究的问题是,已知一个模型和参数,如何去预测这个模型产生的结果和特性,例如均值和方差等,比如我们已知要养的猪类型和养猪方式,类比已知模型、参数,要据此推测养出猪的结果,大概多肥啊、肉鲜美不鲜美啊,这是概率;

statics嘞,是有一堆数据,统计好了他们的结果和数字特性后,想据此分析出他们属于那种模型和参数,比如我们看到一堆猪,统计完发现养的很好,就通过分析当前的数据,希望判定出猪的品种和养殖方式

概率是已知模型和参数,推数据。统计是已知数据,推模型和参数。

贝叶斯公式到底在说什么?

学习机器学习和模式识别的人一定都听过贝叶斯公式(Bayes’ Theorem):

P(A|B)=P(B|A)P(A)/P(B)【式1】

贝叶斯公式看起来很简单,无非是倒了倒条件概率和联合概率的公式。

把B展开,可以写成:

P(A|B)=P(B|A)P(A) / P(B|A)P(A)+P(B|∼A)P(∼A)【式2】(∼A表示”非A”)

这个式子就很有意思了。

想想这个情况。一辆汽车(或者电瓶车)的警报响了,你通常是什么反应?有小偷?撞车了? 不。。 你通常什么反应都没有。因为汽车警报响一响实在是太正常了!每天都要发生好多次。本来,汽车警报设置的功能是,出现了异常情况,需要人关注。然而,由于虚警实在是太多,人们渐渐不相信警报的功能了。

贝叶斯公式就是在描述,你有多大把握能相信一件证据?(how much you can trust the evidence)

我们假设响警报的目的就是想说汽车被砸了。把A计作“汽车被砸了”,B计作“警报响了”,带进贝叶斯公式里看。我们想求等式左边发生A|BA|B的概率,这是在说警报响了,汽车也确实被砸了。汽车被砸引起(trigger)警报响,即B|A。但是,也有可能是汽车被小孩子皮球踢了一下、被行人碰了一下等其他原因(统统计作∼A),其他原因引起汽车警报响了,即B|∼A。那么,现在突然听见警报响了,这时汽车已经被砸了的概率是多少呢(这即是说,警报响这个证据有了,多大把握能相信它确实是在报警说汽车被砸了)?想一想,应当这样来计算。用警报响起、汽车也被砸了这事件的数量,除以响警报事件的数量(这即【式1】)。进一步展开,即警报响起、汽车也被砸了的事件的数量,除以警报响起、汽车被砸了的事件数量加上警报响起、汽车没被砸的事件数量(这即【式2】)。

可能有点绕,请稍稍想一想。

再思考【式2】。想让P(A|B)=1P(A|B)=1,即警报响了,汽车一定被砸了,该怎么做呢?让P(B|∼A)P(∼A)=0P(B|∼A)P(∼A)=0即可。很容易想清楚,假若让P(∼A)=0P(∼A)=0,即杜绝了汽车被球踢、被行人碰到等等其他所有情况,那自然,警报响了,只剩下一种可能——汽车被砸了。这即是提高了响警报这个证据的说服力。

从这个角度总结贝叶斯公式:做判断的时候,要考虑所有的因素。 老板骂你,不一定是你把什么工作搞砸了,可能只是他今天出门前和太太吵了一架。

再思考【式2】。观察【式2】右边的分子,P(B|A)为汽车被砸后响警报的概率。姑且仍为这是1吧。但是,若P(A)很小,即汽车被砸的概率本身就很小,则P(B|A)P(A)仍然很小,即【式2】右边分子仍然很小,P(A|B) 还是大不起来。 这里,P(A)即是常说的先验概率,如果A的先验概率很小,就算P(B|A)较大,可能A的后验概率P(A|B)P(A|B)还是不会大(假设P(B|∼A)P(∼A)不变的情况下)。

从这个角度思考贝叶斯公式:一个本来就难以发生的事情,就算出现某个证据和他强烈相关,也要谨慎。证据很可能来自别的虽然不是很相关,但发生概率较高的事情。 发现刚才写的代码编译报错,可是我今天状态特别好,这语言我也很熟悉,犯错的概率很低。因此觉得是编译器出错了。 ————别,还是先再检查下自己的代码吧。

似然函数

likelihood

似然(likelihood)这个词其实和概率(probability)是差不多的意思,Colins字典这么解释:The likelihood of something happening is how likely it is to happen. 你把likelihood换成probability,这解释也读得通。但是在统计里面,似然函数和概率函数却是两个不同的概念(其实也很相近就是了)。

对于这个函数:

P(x|θ)
输入有两个:x表示某一个具体的数据;θθ表示模型的参数。

如果θ是已知确定的,x是变量,这个函数叫做概率函数(probability function),它描述对于不同的样本点x,其出现概率是多少。

如果x是已知确定的,θ是变量,这个函数叫做似然函数(likelihood function), 它描述对于不同的模型参数,出现x这个样本点的概率是多少。

这有点像“一菜两吃”的意思。其实这样的形式我们以前也不是没遇到过。例如,f(x,y)=x^y, 即x的y次方。如果x是已知确定的(例如x=2),这就是f(y)=2^y, 这是指数函数。 如果y是已知确定的(例如y=2),这就是f(x)=x^2,这是二次函数。同一个数学形式,从不同的变量角度观察,可以有不同的名字。

最大似然估计(MLE)

假设有一个造币厂生产某种硬币,现在我们拿到了一枚这种硬币,想试试这硬币是不是均匀的。即想知道抛这枚硬币,正反面出现的概率(记为θ)各是多少?

这是一个统计问题,回想一下,解决统计问题需要什么? 数据!

于是我们拿这枚硬币抛了10次,得到的数据(x0)是:反正正正正反正正正反。我们想求的正面概率θθ是模型参数,而抛硬币模型我们可以假设是 二项分布。

那么,出现实验结果x0(即反正正正正反正正正反)的似然函数是多少呢?

f(x0,θ)=(1−θ)×θ×θ×θ×θ×(1−θ)×θ×θ×θ×(1−θ)=θ^7(1−θ)^3=f(θ)
注意,这是个只关于θ的函数。而最大似然估计,顾名思义,就是要最大化这个函数。我们可以画出f(θ)的图像:

最大似然

可以看出,在θ=0.7时,似然函数取得最大值。

这样,我们已经完成了对θ的最大似然估计。即,抛10次硬币,发现7次硬币正面向上,最大似然估计认为正面向上的概率是0.7。

且慢,一些人可能会说,硬币一般都是均匀的啊! 就算你做实验发现结果是“反正正正正反正正正反”,我也不信θ=0.7。

这里就包含了贝叶斯学派的思想了——要考虑先验概率。 为此,引入了最大后验概率估计。

最大后验概率估计

最大似然估计是求参数θθ, 使似然函数P(x0|θ)P(x0|θ)最大。最大后验概率估计则是想求θθ使P(x0|θ)P(θ)最大。求得的θθ不单单让似然函数大,θθ自己出现的先验概率也得大。 (这有点像正则化里加惩罚项的思想,不过正则化里是利用加法,而MAP里是利用乘法)

MAP其实是在最大化P(θ|x0)=P(x0|θ)P(θ) / P(x0),不过因为x0是确定的(即投出的“反正正正正反正正正反”),P(x0)是一个已知值,所以去掉了分母P(x0)(假设“投10次硬币”是一次实验,实验做了1000次,“反正正正正反正正正反”出现了n次,则P(x0)=n/1000。总之,这是一个可以由数据集得到的值)。最大化P(θ|x0)的意义也很明确,x0已经出现了,要求θθ取什么值使P(θ|x0)最大。顺带一提,P(θ|x0)即后验概率,这就是“最大后验概率估计”名字的由来。

对于投硬币的例子来看,我们认为(”先验地知道“)θ取0.5的概率很大,取其他值的概率小一些。我们用一个高斯分布来具体描述我们掌握的这个先验知识,例如假设P(θ)为均值0.5,方差0.1的高斯函数,如下图:

p(θ)分布

则P(x0|θ)P(θ)的函数图像为:

p(x0θ)p(θ)函数图像

注意,此时函数取最大值时,θ取值已向左偏移,不再是0.7。实际上,在θ=0.558时函数取得了最大值。即,用最大后验概率估计,得到θ=0.558
最后,那要怎样才能说服一个贝叶斯派相信θ=0.7呢?你得多做点实验。

如果做了1000次实验,其中700次都是正面向上,这时似然函数为:

似然函数

如果仍然假设P(θ)P(θ)为均值0.5,方差0.1的高斯函数,P(x0|θ)P(θ)的函数图像为:

似然函数1000

在θ=0.696处,P(x0|θ)P(θ))取得最大值。

这样,就算一个考虑了先验概率的贝叶斯派,也不得不承认得把θ估计在0.7附近了。

PS. 要是遇上了顽固的贝叶斯派,认为P(θ=0.5)=1 ,那就没得玩了。 无论怎么做实验,使用MAP估计出来都是θ=0.5。这也说明,一个合理的先验概率假设是很重要的。(通常,先验概率能从数据中直接分析得到)

最大似然估计和最大后验概率估计的区别

相信读完上文,MLE和MAP的区别应该是很清楚的了。MAP就是多个作为因子的先验概率P(θ)。或者,也可以反过来,认为MLE是把先验概率P(θ)认为等于1,即认为θθ是均匀分布。

实例说明二者区别:
https://blog.csdn.net/xuyiqing1996/article/details/79129500 最大后验概率MAP简单介绍

参考资料

主要来自:
Title:详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解
本文作者: nebulaf91 本文原始地址:http://blog.csdn.net/u011508640/article/details/72815981

还有:

先验概率与后验概率的区别(老迷惑了) 挺诡异的Blog,可惜我没能力一起思考研究下

https://www.cnblogs.com/shixisheng/p/7136890.html 很可惜部分图没了

0%