文科生都能看得懂的贝叶斯定理,从白袜到飞机失事再到人工智能


640?wx_fmt=png



640?wx_fmt=png

如上图,有A、B两个事件集合,已知事件A发生的概率为P(A),事件B发生的概率为P(B),既满足A又满足B的时间集合是A∩B,概率为P(A∩B) (也可以写成P(A,B)或P(AB))。


相对联合概率P(A∩B)来说,P(A)和P(B)被称为边缘概率,意思这个事件仅代表自己,而与其它事件无关。


640?wx_fmt=png

如上图,如果我们只看集合A,在A又符合B概率是P(B|A),简单的说就是在A中找B,因为有A发生作为前提条件,所以被称为条件概率。(注意:“|”后面的A是前提条件,有点像分数“B/A”,“/”后面代表的是分母)


640?wx_fmt=jpeg

P(A∩B)的样本总体是A∪B,意思在全的样本中,考虑AB都满足的概率事件,简单的说就是A和B里面找AB都有的。


640?wx_fmt=png

如上图,不论是P(B|A)还是P(A∩B)从集合的角度看都是A∩B,只是一个总体样本范围大小不同。


如果P(A)、P(B)、P(B|A)是已知的,那我们称之为先验概率;如果P(A|B)是未知的,需要我们计算推导而出,我们称之为后验概率。


有以下的简化的贝叶斯公式:

640?wx_fmt=png


但为什么要“A和B都出现的概率除以B出现概率”?


上面提到过,P(A|B)是以B发生作为前提条件,也就是说我们要在B的样本空间中计算A∩B发生的概率。所以分子是A∩B,分母是B:

640?wx_fmt=png




上面的讲得有点抽象,举个例子:

假设:小学⼀年级有共100⼈,其中有男⽣生30⼈。穿⽩袜⼦的⼈数共有20个,这20个人里面有5个是男⽣。

640?wx_fmt=png

 
 
1. 男生的概率 P(男生)= 男生数/总人数 = 30/100;	
2. 穿白袜的概率 P(白袜) = 穿白袜人数/总人数 = 20/100 ;


如果我们只研究穿白袜的男生的概率,我们会以下三个不同的视角:

640?wx_fmt=png

 
 
A:以30个男生作为总体样本,P(白袜|男生)= 穿白袜男生数/男生数=5/30;	
B:以20个穿白袜的学生作为总体样本,P(男生|白袜)=穿白袜男生数/穿白袜学生=5/20;	
C:以一年级学生作为总体样本,P(白袜∩男生)= 穿白袜的男生数/总人数 = 5/100;

因为穿白袜子的男生始终还是那5个人,只是总体样本不同导致的分母不同,


如果要让三个数值相等那么“参考系”就要保持统一。我们选取一年级全体学生作为总体样本。如下图:

640?wx_fmt=png


假设我们不知道C的计算结果,我们从视角A或者视角B,重新推导在一年级总体样本中,“找出”穿白袜的概率:

640?wx_fmt=jpeg

如上图,如紫色箭头所示,有两种方式:

视角A:先找出男生再找出穿白袜者,P(男生)P(白袜|男生);

视角B:先找出穿白袜的人再找出男生,P(白袜)P(男生|白袜);


通过计算发现A和B的结果和C是相等的:

640?wx_fmt=jpeg

对于这个结果也并不意外,因为通过概率相乘的方式,统一了“参考系”,所以就有以下关系

640?wx_fmt=png

通过移项则可以获得下面式子:

640?wx_fmt=png


也就是说,贝叶斯公式有如下关系:

640?wx_fmt=png

因此,我们只要知道先验概率 P(B|A)、P(A)和P(B)就可以求出P(A|B)。


二、全概率公式



640?wx_fmt=png


全概率公式 将对一个复杂事件的概率求解问题转化为了在不同情况下发生的简单事件的概率的求和问题。内如果事件A1、A2、A3…An 构成一个完备事件组,即它们两两互不相容,其和为全集;并且P(Ai)大于0,则对任一事件A有: P(B)=P(B|A1)P(A1) + P(B|A2)P(A2) + ... +P(B|An)P(An)



 


还是上面国际小学的例子

假设中国学生穿白袜的概率是0.2,美国学生穿白袜的概率是0.1,英国学生穿白袜的概率是0.5。此一年级的100位学生可以分为中美英三个国籍,中国国籍学生60人,美国国籍学生30人,英国国籍学生10人。求白袜学生中,出现美国学生的概率P(美国|白袜)。

640?wx_fmt=png

根据全概率公式,我们将P(白袜)拆解到各个国籍的穿白袜学生出现的概率,再求和:

 
 
P(白袜)=P(美国∩白袜)+P(中国∩白袜)+P(英国∩白袜)	
      = P(白袜|美国)P(美国)+P(白袜|中国)P(中国)+P(白袜|英国)P(英国)

所以根据上面式子,可以计算P(美国|白袜)的概率:

 
 
各国学生概率:P(中国)=0.6; P(美国)=0.3; P(英国)=0.1

640?wx_fmt=png

如果,我们把国籍替换成Ai,白袜替换成B,就可以得到完整版的贝叶斯公式了:


640?wx_fmt=png

上面这样写太长了,我们换个写法,用“”表示求和:


640?wx_fmt=png

上面这个就是我们的完整的贝叶斯公式了。


640?wx_fmt=png

如上图,一架飞机失踪了,推测它可能落在3个区域,R?(?=1,2,3)表示飞机坠落在第?区域。 令1-β? (?=1,2,3),表示飞机事实上落在第?个区域且被发现的概率(β?称为忽略概率,因为它表示忽略飞机的概率,通常由该区域的地理和环境条件决定)。 已知对于区域1的搜索没有飞机,求在此条件下,飞机坠落在第?(?=1,2,3)个区域的条件概率。


 

因为

640?wx_fmt=png

那么我们可以先求P(E)的全概率,在1区没有搜寻到的原因分三种情况:


640?wx_fmt=png


所以P(E)的全概率:


640?wx_fmt=png

 


因为P(R? | E)= P(R?∩E)/P(E),所以:

640?wx_fmt=png

 


 


经常在网上搜索东西的朋友知道,当你不小心输入一个不存在的单词时,搜索引擎会默认按照正确的词帮你搜索,比如当你在Google中输入“Julw”时,系统会猜测你的意图是搜索“July”。谷歌在墙外,我们暂时百度做为案例(ㄟ( ▔, ▔ )ㄏ),如下图所示:


640?wx_fmt=png

 

这叫做拼写检查。根据谷歌员工写的一篇文章,拼写检查是基于贝叶斯方法。下面让我们看看如何使用贝叶斯实现"拼写检查"。原文:How to Write a Spelling Corrector


首先我们先要制作一个词典。我们将全网的大量文章收集起来,整理出里面出现过的单词,并标记每个词出现的次数(频数)。这有点像大学考四六级的时候死记硬背的《四六级词汇分频速记手册》。

640?wx_fmt=png用户输入一个单词时,我们先看看用户输入的这个词字是不是在词典里面。如果不存在,那就要找出每个候选词,并且比较他们的符合条件的概率,将概率最大的推荐给用户。如下图所示,用户输入“julw”,程序没有在字典中找到相应的词,但找出了3个候选的正确词。

 

640?wx_fmt=png

 

 
 
Judy:朱迪,迪士尼动画明星,词频是1000	
July:七月,词频是900	
Jula:爱情动作片女明星(百度结果),词频是200


从词频上看,Judy出现最多,Jula出现得最少。那么是不是应该推荐“Judy”这个词给用户呢?显然也是有问题的,我们肉眼可以明显看出“July”与“Julw”的这个词会更加接近。但是如何严谨地判断呢?


我们切换到数学思维,这个问题本质上就是在用户输入“julw”的条件下,比较每个备选词的出现的概率 ,找出概率最大那个推荐给用户。也就是求P( 备选词 | Julw ),这就要用到贝叶斯定理了。


640?wx_fmt=png

 

每个备选词在词典中概率,可以通过该词的词频除以所有词频来计算,我们用Q代表词频,如下面公式:

640?wx_fmt=png


因为用户输入是统一的,词典也是统一的,把式子化简后惊喜地发现,我们只要知道P( 备选词 | Julw )和Q(备选词)就好了。如下图:


640?wx_fmt=png

 比较 P( 备选词 | Julw )大小,就转化为比较 "P( Julw | 备选词 )*Q(备选词)"大小问题。因为词频是词典已知的,那现在核心问题就是怎么计算P( Julw | 备选词 ):

 

1. 计算P( Julw | Judy )

Judy 变成要Julw要有两步,分别把d和y变成l和w:我们可以设想一个抽奖机,拉动开关以后,除自己以外的25个字母随机轮换然后停下。把y变成w的概率为 1/25;同理把d变成l概率也是 1/25。

640?wx_fmt=png



因此 P( Julw | Judy ) = 1/25* 1/25

 

2.计算P( Julw | July ) 和P( Julw | Jula)

July和Jula变成Julw需要一步——换掉最后一个字母变成w,这步操作的概率为1/25

 

640?wx_fmt=png

 

P( Julw | July ) = 1/25;P( Julw | Jula ) = 1/25;

将备选词转化成用户输入的词的操作步数越多,P( Julw | 备选词 ) 的概率值越低。这个操作步数也可以被称为编辑距离。原作者直接将问题简化为取编辑距离较少的单词,为了理解需要我换成了概率。


终于可以计算最终的结果了:

令,Q( 备选词 | Julw )=P( Julw | 备选词 )*Q(备选词)

640?wx_fmt=png

 

我们根据计算结果重新排个序:

640?wx_fmt=png

 

因此,我们会推荐“July”给用户。但是如果一个用户是宅男,他想搜的很可能就是“Jula”,那这是按照用户画像推荐,这个在后续的文章中再聊。

 


贝叶斯定理是一种思考问题的方式,我们要探寻一个问题发生的可性的时候,很可能无法直接计算。那么我们就要找到前提条件的主要因素,各个击破后再反推结果。


贝叶斯定理虽然主观,但在AI时代通过大数据弥补了不足。不过其最大的BUG还是在于人的认知边界,如果人不能发现问题、分解问题、获得合理的先验概率,那对于预测必然会产生巨大偏差。

640?wx_fmt=png


640?wx_fmt=gif


人工智能算法有趣的是用机器模拟人类思考问题的方式。很多时候我们的收获不在于了解AI是怎么思考的,而在于了解自己是怎么思考的。



参考文献:

《概率论基础教程(原书第九版)》美 Sheldon M. Ross等

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

《机器学习极简入门课》李烨

《How to Write a Spelling Corrector》

我把本文涉及资料已经放在星球上面。

欢迎大家继续订阅我。



640?wx_fmt=jpeg


申明:

本文目标是让普通人能对相关的知识有个直观的了解,只求表达的通俗性和理解的直观性,但缺乏数学的严谨性。如果有严重的错误,欢迎专业人士指正。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值