贝叶斯公式由浅入深大讲解—AI基础算法入门

1 贝叶斯方法html

    长久以来,人们对一件事情发生或不发生的几率,只有固定的0和1,即要么发生,要么不发生,历来不会去考虑某件事情发生的几率有多大,不发生的几率又是多大。并且几率虽然未知,但最起码是一个肯定的值。好比若是问那时的人们一个问题:“有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的几率是多少?”他们会想都不用想,会立马告诉你,取出白球的几率就是1/2,要么取到白球,要么取不到白球,即θ只能有一个值,并且不论你取了多少次,取得白球的几率θ始终都是1/2,即不随观察结果X 的变化而变化。算法

    这种频率派的观点长期统治着人们的观念,可是:网络

v2-75b7149ad3a020edcc0b0f3c5aa64de7_b.png

假设咱们有以下的7个球在A,B两个框中,若是咱们随便取一个球,已知取到的球来自B框中,那么这个球是白球的几率是多少呢?或者问去除的球是白色,那么取自B框的几率是多少呢?这个问题不是很好解决,直到后来一个名叫Thomas Bayes的人物出现。机器学习

1.1 贝叶斯方法的提出ide

    托马斯·贝叶斯Thomas Bayes(1702-1763)在世时,并不为当时的人们所熟知,不多发表论文或出版著做,与当时学术界的人沟通交流也不多,用如今的话来讲,贝叶斯就是活生生一民间学术“屌丝”,可这个“屌丝”最终发表了一篇名为“An essay towards solving a problem in the doctrine of chances”,翻译过来则是:机遇理论中一个问题的解。你可能以为我要说:这篇论文的发表随机产生轰动效应,从而奠基贝叶斯在学术史上的地位。函数

20141110191248285 (1).jpg

事实上,上篇论文发表后,在当时并未产生多少影响,在20世纪后,这篇论文才逐渐被人们所重视。对此,与梵高何其相似,画的画生前一文不值,死后价值连城。post

    回到上面的例子:“有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的几率θ是多少?”贝叶斯认为取得白球的几率是个不肯定的值,由于其中含有机遇的成分。好比,一个朋友创业,你明明知道创业的结果就两种,即要么成功要么失败,但你依然会忍不住去估计他创业成功的概率有多大?你若是对他为人比较了解,并且有方法、思路清晰、有毅力、且能团结周围的人,你会情不自禁的估计他创业成功的概率可能在80%以上。这种不一样于最开始的“非黑即白、非0即1”的思考方式,即是贝叶斯式的思考方式。学习

    继续深刻讲解贝叶斯方法以前,先简单总结下频率派与贝叶斯派各自不一样的思考方式:网站

 

  • 频率派把须要推断的参数θ看作是固定的未知常数,即几率θ虽然是未知的,但最起码是肯定的一个值,同时,样本X 是随机的,因此频率派重点研究样本空间,大部分的几率计算都是针对样本X 的分布;.net

  • 而贝叶斯派的观点则截然相反,他们认为参数θ是随机变量,而样本X 是固定的,因为样本是固定的,因此他们重点研究的是参数θ的分布。

 

    相对来讲,频率派的观点容易理解,因此下文重点阐述贝叶斯派的观点。

    贝叶斯派既然把θ看作是一个随机变量,因此要计算θ的分布,便得事先知道θ的无条件分布,即在有样本以前(或观察到X以前),θ有着怎样的分布呢?

    好比往台球桌上扔一个球,这个球落会落在何处呢?若是是不偏不倚的把球抛出去,那么此球落在台球桌上的任一位置都有着相同的机会,即球落在台球桌上某一位置的几率服从均匀分布。这种在实验以前定下的属于基本前提性质的分布称为先验分布,或的无条件分布。

    至此,贝叶斯及贝叶斯派提出了一个思考问题的固定模式:

            先验分布 π(θ)+ 样本信息χ⇒  后验分布π(θ|x)

上述思考模式意味着,新观察到的样本信息将修正人们之前对事物的认知。换言之,在获得新的样本信息以前,人们对的认知是先验分布 π(θ),在获得新的样本信息后χ,人们对θ的认知为π(θ|x)

然后验分布π(θ|x)通常也认为是在给定样本χ的状况下θ的条件分布,而使达到最大的值称为最大后θMD验估计,相似于经典统计学中的极大似然估计。

    综合起来看,则比如是人类刚开始时对大天然只有少得可怜的先验知识,但随着不断是观察、实验得到更多的样本、结果,使得人们对天然界的规律摸得愈来愈透彻。因此,贝叶斯方法既符合人们平常生活的思考方式,也符合人们认识天然的规律,通过不断的发展,最终占据统计学领域的半壁江山,与经典统计学平起平坐。

    此外,贝叶斯除了提出上述思考模式以外,还特别提出了闻名中外的贝叶斯定理。

1.2 贝叶斯定理

  在引出贝叶斯定理以前,先学习几个定义:

  • 边缘几率(又称先验几率):某个事件发生的几率。边缘几率是这样获得的:在联合几率中,把最终结果中那些不须要的事件经过合并成它们的全几率,而消去它们(对离散随机变量用求和得全几率,对连续随机变量用积分得全几率),这称为边缘化(marginalization),好比A的边缘几率表示为P(A),B的边缘几率表示为P(B)。 

  • 联合几率表示两个事件共同发生的几率。A与B的联合几率表示为P(A∩B)或者P(A,B)。

  • 条件几率又称后验几率:事件A在另一个事件B已经发生条件下的发生几率。条件几率表示为P(A|B),读做“在B条件下A的几率”,。

  接着,考虑一个问题:P(A|B)是在B发生的状况下A发生的可能性。

  • 首先,事件B发生以前,咱们对事件A的发生有一个基本的几率判断,称为A的先验几率,用P(A)表示;

  • 其次,事件B发生以后,咱们对事件A的发生几率从新评估,称为A的后验几率,用P(A|B)表示;

  • 相似的,事件A发生以前,咱们对事件B的发生有一个基本的几率判断,称为B的先验几率,用P(B)表示;

  • 一样,事件A发生以后,咱们对事件B的发生几率从新评估,称为B的后验几率,用P(B|A)表示。

贝叶斯定理即是基于下述贝叶斯公式:

u=239894515,405307697&fm=58.jpeg

P(A|B)=P(B|A)P(A)/P(B)

上述公式的推导其实很是简单,就是从条件几率推出。

 根据条件几率的定义,在事件B发生的条件下事件A发生的几率是

P(A|B)=P(A∩B)/P(B)

一样地,在事件A发生的条件下事件B发生的几率

P(B|A)=P(A∩B)/P(A)

 

整理与合并上述两个方程式,即可以获得:

P(A|B)P(B)=P(A∩B)=P(B|A)P(A)

    接着,上式两边同除以P(B),若P(B)是非零的,咱们即可以获得贝叶斯定理的公式表达式:

P(A|B)=P(B|A)*P(A)/P(B)

 

笔者在看《从贝叶斯方法谈到贝叶斯网络》的时候,看到这里,其实已经晕晕的了。

P(A|B) 和 P(B|A) 之类的常常让人混淆,@待字闺中的陈老师给出了理解的一个关键点,区分出规律和现象,就是将A当作“规律”,B当作“现象”,那么贝叶斯公式当作:

陈老师在《这的理解贝叶斯公式吗》和《又一个生活中的贝叶斯应用》给出了几个通俗易懂的例子,这里再也不赘述。

贝叶斯推断的含义

 

 

而后搜下,发现其实还有更好阐释,好比

对条件几率公式进行变形,能够获得以下形式:

 

咱们把P(A)称为"先验几率"(Prior probability),即在B事件发生以前,咱们对A事件几率的一个判断。P(A|B)称为"后验几率"(Posterior probability),即在B事件发生以后,咱们对A事件几率的从新评估。P(B|A)/P(B)称为"可能性函数"(Likelyhood),这是一个调整因子,使得预估几率更接近真实几率。

因此,条件几率能够理解成下面的式子:

后验几率 = 先验几率 x 调整因子

这就是贝叶斯推断的含义。咱们先预估一个"先验几率",而后加入实验结果,看这个实验究竟是加强仍是削弱了"先验几率",由此获得更接近事实的"后验几率"。

在这里,若是"可能性函数"P(B|A)/P(B)>1,意味着"先验几率"被加强,事件A的发生的可能性变大;若是"可能性函数"=1,意味着B事件无助于判断事件A的可能性;若是"可能性函数"<1,意味着"先验几率"被削弱,事件A的可能性变小。

 

贝叶斯定理应用示例:

已知某种疾病的发病率是0.001,即1000人中会有1我的得病。现有一种试剂能够检验患者是否得病,它的准确率是0.99,即在患者确实得病的状况下,它有99%的可能呈现阳性。它的误报率是5%,即在患者没有得病的状况下,它有5%的可能呈现阳性。现有一个病人的检验结果为阳性,请问他确实得病的可能性有多大?

假定A事件表示得病,那么P(A)为0.001。这就是"先验几率",即没有作试验以前,咱们预计的发病率。再假定B事件表示阳性,那么要计算的就是P(A|B)。这就是"后验几率",即作了试验之后,对发病率的估计。

根据条件几率公式,1.png

用全几率公式改写分母,

 

 

将数字代入,

咱们获得了一个惊人的结果,P(A|B)约等于0.019。也就是说,即便检验呈现阳性,病人得病的几率,也只是从0.1%增长到了2%左右。这就是所谓的"假阳性",即阳性结果彻底不足以说明病人得病。

或许换成这个公式 P(A|B)=P(A∩B)/B,看起来更加直白写:

阐释:

若是没有误报,那么得病率:.001*.99

若是是误报,那么得病率为:.05*(1-.0001),

因此:

p(A|B)=.001*.99/[.99*.001+.05*(1-.0001)]=.019

为何会这样?为何这种检验的准确率高达99%,可是可信度却不到2%?答案是与它的误报率过高有关。

(【习题】若是误报率从5%降为1%,请问病人得病的几率会变成多少?)

有兴趣的朋友,还能够算一下"假阴性"问题,即检验结果为阴性,可是病人确实得病的几率有多大。而后问本身,"假阳性"和"假阴性",哪个才是医学检验的主要风险?

 

再来一个相似案例:https://www.zhihu.com/question/21134457/answer/169523403

一种癌症,得了这个癌症的人被检测出为阳性的概率为90%,未得这种癌症的人被检测出阴性的概率为90%,而人群中得这种癌症的概率为1%,一我的被检测出阳性,问这我的得癌症的概率为多少? 

猛地一看,被检查出阳性,并且得癌症的话阳性的几率是90%,那想必这我的应该是难以幸免了。那咱们接下来就算算看。

咱们用 A 表示事件 “测出为阳性”, 用 B1 表示“得癌症”, B2表示“未得癌症”。根据题目,咱们知道以下信息:

P(B1)=.01

P(B2)=.99

P(A|B1)=.9

P(A|B2)=.1

那么咱们如今想获得的是阳性的状况下,得癌症的概率

 P(B1,A)=P(B1)*P(A|B1)=.01*.09=0.009;

这里P(B1,A)表示的是联合几率,得癌症且检测出阳性的几率是人群中得癌症的几率乘上得癌症时测出是阳性的概率,是0.009。同理可得得癌症且检测出阳性的几率:

P(B2,A)=P(B2)*P(A|B2)=.99*.1=.099;

这个几率是什么意思呢?实际上是指若是人群中有1000我的,检测出阳性而且得癌症的人有9个,检测出阳性但未得癌症的人有99个。能够看出,检测出阳性并不可怕,不得癌症的是绝大多数的,这跟咱们一开始的直觉判断是不一样的!可直到如今,咱们并无获得所谓的“在检测出阳性的前提下得癌症的 几率 ”,怎么获得呢?很简单,就是看被测出为阳性的这108(9+99)人里,9人和99人分别占的比例就是咱们要的,也就是说咱们只须要添加一个归一化因子(normalization)就能够了。

因此阳性得癌症的几率 P(B1|A)= .009/(.099+.009).083, 

阳性未得癌症的几率     P(B2|A)= .099/(.099+.009).917 。

 这里 P(B1|A),P(B2|A)中间多了这一竖线 | 成为了条件几率,而这个几率就是贝叶斯统计中的 后验几率!而人群中患癌症与否的几率 P(B1),P(B2) 就是 先验几率!咱们知道了先验几率,根据观测值(observation),也可称为test evidence:是否为阳性,来判断得癌症的后验几率,这就是基本的贝叶斯思想,咱们如今就能得出本题的后验几率的公式为:


后验几率的公式.png

由此就能获得以下的贝叶斯公式的通常形式。

咱们把上面例题中的  A  变成样本(sample)  x  , 把 B 变成参数(parameter)  \theta , 咱们便获得咱们的贝叶斯公式: 

 

Screen Shot 2017-09-13 at 21.28.30.png

能够看出上面这个例子中,B 事件的分布是离散的,因此在分母用的是求和符号 Σ 。那若是咱们的参数θ的分布是连续的呢?没错,那就要用积分,因而咱们终于获得了真正的 贝叶斯公式 :

Screen Shot 2017-09-13 at 21.32.17.png

其中π指的是参数的几率分布,π(θ)指的是先验几率,π(θ|x)指的是后验几率,  指的是咱们观测到的样本的分布,也就是似然函数(likelihood),记住竖线 | 左边的才是咱们须要的。其中积分求的区间Θ指的是参数  θ  全部可能取到的值的域,因此能够看出后验几率π(θ|x)   是在知道 X的前提下在  Θ域内的一个关于 θ 的几率密度分布,每个θ都有一个对应的可能性(也就是几率)。

 

做者:徐炎琨

连接:https://www.zhihu.com/question/21134457/answer/169523403

来源:知乎

著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。

一个更好理解的例子:

连接:https://www.zhihu.com/question/51448623/answer/175907274

假设你是一个领导者,或者说,山寨的头目好了。

你是远近闻名的土匪头子。哈哈

听闻最近官兵换统领了,可能要来剿匪了。这里驻扎的军兵每5年都会换一届统领,新官上任三把火,都想拿大家来开刀。不过每次,你都带领兄弟们打退了官兵的围剿。

此次不一样了,据说换的是个厉害的角色。所以,你让二头领派人下山去打探消息,看看是否是要来攻山。

打探的人回来了,支支吾吾地说:官兵不会来,由于新来统领他妈生病了,回家探病去了。

你这个时候,信不信他的话?

你看这个回报的人,变毛变色的,说话吞吞吐吐。可是,他也有多是由于没见过你大头领,回话的时候,有些紧张惧怕。

你做为一个受太高等教育的人(学过几率论,贝叶斯定理的人),心理开始盘算:

1. 官兵每5年来一次,那么今年来的几率就是

1/5=20%

2. 派出去打探的这小子,说官兵不会来,那么今年来的几率是:

0

3. 嗯?派出去这小子,是否是可靠,不会说的是假话吧?

因而,你向旁人了解了一下:

1. 三头领劝你好好考虑下,说这个小子虽然人机灵,可是常常是十句话里面有七八句是假的,嘴里没实话。

因而你心理又开始盘算:

1. 十之七八都假话?能吗?

2.姑且认为三当家的话是真的。

3.那么派出去这小子,说假话的几率就是 70%~80%:

就按75%算把,

说真话的几率就是25%

4.那么若是他说的真话:

他说官兵不来,官兵就不来的几率是:25%*80%=20%

 他说官兵来   , 官兵就来的几率是    :25%*20%=5%

5. 若是他说的假话:

他说官兵不来,官兵   来的几率是:75%*20%=15%

  他说官兵来    ,官兵不来的几率是:75%*80%=60%

6. 那么他此次口口声声说了:官兵不来

那么根据5.的结果:

官兵来的几率是  15%

官兵不来的几率是  20%

比率是:  来/不来=15/20=3/4

也就是说,来的几率是3/7 =42.86% 不来的几率是4/7=57.14%

【注意】:贝叶斯定律是直接将 15%+20%作分母,两个几率作分子,分别从新计算其条件几率。

对你一个决策者来讲,这样的比率,过高,显然没有什么意义:

因而你决定再派一个本身的亲信兄弟下去打探:

三天后回来,回报结果还和刚才结果同样:官兵不会来,统领回家了。

此次是你的亲信。应该将几率一会儿修正为:

官兵来:0 官兵不来 100%

可是,这个亲信,虽然忠诚,明显不够机灵。他在打探时,可能被欺骗。他虽然不会骗你,但难保他被别人骗。所以,他的话只能作参考,也不可彻底相信:

0.参照以前那个兄弟的结果:

3/7来,4/7不来

1.考虑你的亲信被欺骗的几率为 30%

2.那么一样:

他被骗:

他说官兵不来,官兵不来的几率是:3/7*30%=12.86%(实际官兵会来)

     他说官兵来,     官兵来的几率是    :4/7*30%=17.14%

他没被骗:

他说官兵不来,官兵不来的几率是:4/7*70%=40%(实际官兵不会来)

他说官兵来,    官兵来的几率是    :3/7*70%=30%

3. 因而他向你报告官兵不来,那么:

来/不来=12.86/40

因而官兵来的几率就是

12.86/(12.86+40)=20.46%

看到20.46%?这个几率仍是太大,你仍是不放心,决定带上二当家,本身亲自下山一趟。

因而你门分头走街串巷,茶馆酒肆里转悠,四处打探。

最后,仍是得出相同的结果。

因而你将结果修正为:

官兵来的几率:0,不来的几率:100%

最后你和二当家在一家酒馆碰头:

你说,官兵不来

二当家说:我看不必定,我摸到了官兵驻扎的地方,看到了官兵在演习调动。

听了这个消息,你大惊失色。你感受本身可能也被骗了,可是凭本身的经验,被骗的可能性很小只有5%的可能性。

因而,你和二当家,约定今晚,趁着月色又摸来了一趟军营。发现确实在调动军队。

你内心想:个人乖乖,幸好过来看了看,不然都没准备,就被官兵包饺子了。

你一会儿,又将几率修正为:

官兵来:100%,官兵不来:0

仔细观察了一下动静,听了听。军营里有人小声说话,你和二当家趴在外面听:

士兵甲:哎?老四,你知道这回我们要调哪里去?

士兵乙:那我哪里知道,那是上头的事情。

士兵甲:嘿!我劝你,把你那点银子趁早寄回家去吧。再晚,怕是没机会了。

士兵乙:老三,你瞎说啥,你知道啥,又要打清风寨?

士兵甲:嘿,打啥清风寨啊。要打打仗了。

你内心想,不打大家山寨?打什么打仗?最近有啥大事?因而你又将那个心理的几率修正为:

官兵来:0%,官兵不来:100%

这个时候,你忽然意识到,本身的思惟好像不太对。这后面几回,信息全是压倒性的修正,一次一次,不是0%就是100%,彻底不像一个受太高等教育的山寨头领。

因而,你默默地多计算了两步。假设这个士兵说真话的几率为50%,那么他说官兵不去,

那么,结合刚刚的几率(来的几率:20.46%,不来的几率:79.54%)

1. 他说真话 :

他说官兵不来,官兵不来的几率是:79.54%*50%=39.77%(实际官兵会来)

     他说官兵来,     官兵来的几率是    :20.46%*50%=10.23%

2.他说假话:

他说官兵来,官兵不来的几率是:20.46*50%=10.23%(实际官兵不会来)

     他说官兵不来,官兵来的几率是 :79.54%*50%=39.77%

3.最终算出来,官兵来的几率是:

20.46%

你发现,几率竟然没变?你明白了,你假设说真话的几率为50%,那至关于没有任何信息量,等于他什么也没说。妈*的!你做为受太高等教育的土匪头子,仍是不由自主地骂了一句。

因而你接着听

士兵甲接着说:嘿嘿,皇帝老子要打台湾了。收拾了三藩,接下来收拾台湾了,咱们都归施琅统领。

士兵乙:真的假的,这你清楚?瞎掰吧?

士兵甲:嗨,我骗你作啥?今天我听李二嘎子说的,他说他二叔在施琅手下,他二叔告诉他的。

士兵乙:呵呵,李二嘎子的话你也信,那家伙,十句有两句是假话,你信他?

.....

你听到这里,已经敏锐的觉察到事情的原理了,朝着二当家使了个眼色,大家悄悄撤了。

为何?由于你算了一下,李二嘎子的话可信吗?根据士兵乙的估计这我的,话里80%真话,20%假话,因而你开始计算了:

1.李二嘎子说真话:

他说官兵要打台湾不来,那么官兵真不来: 80%*79.54%=63.63%

  他说官兵不打台湾要来,那么官兵要来     :80%*20.46%=16.37%

2.李二嘎子说假话

他说官兵要打台湾不来,那么官兵要来    :  20%*20.46%=4.09%

  他说官兵不打台湾要来,那么官兵不来    :20%*79.54%=15.91%

3.综合下来,官兵要来的几率是

4.09%/(4.09%+63.63%)=6.04%

看样子,官兵不来的几率很大。可是也不能掉以轻心。因此,你决定,回去以后,没必要过份紧张,但要提升警惕,并不断派兄弟下来打探状况。

这样看来,应该是能够决策了把。。。

 

而作决策,就是根据贝叶斯定律,不断用后验几率来修正先验几率的吧。

 转载请注明来处,文章首发:

贝叶斯公式由浅入深大讲解-AI基础算法入门 - math,数学专栏 - 周陆军的我的网站

https://www.zhoulujun.cn/html/theory/math/2017_0913_8050.html

 

参考文章:

从贝叶斯方法谈到贝叶斯网络

Chapter 1 贝叶斯推断的思想

全栈必备 贝叶斯方法

真的理解贝叶斯公式吗?

全概公式和贝叶斯公式的理解

贝叶斯推断及其互联网应用(一):定理简介

机器学习(一) —— 浅谈贝叶斯和MCMC(推荐阅读)

相关文章
相关标签/搜索