怎样用非数学语言讲解贝叶斯定理(Bayes's theorem)?

昨天看到这样一道题,感觉是可以用简单的逻辑推论出来的。但是总是差一点点。一机器在良好状态生产合格产品几率是 90%,在故障状态生产合格产品几率是 30…
关注者
3,515
被浏览
1,030,593

107 个回答

贝叶斯定理太有用了,不管是在投资领域,还是机器学习,或是日常生活中几乎都在用到它。

例如,生命科学家用贝叶斯定理研究基因是如何被控制的;教育学家意识到,学生的学习过程其实就是贝叶斯法则的运用;基金经理用贝叶斯法则找到投资策略;谷歌用贝叶斯定理改进搜索功能,帮助用户过滤垃圾邮件;无人驾驶汽车接收车顶传感器收集到的路况和交通数据,运用贝叶斯定理更新从地图上获得的信息;人工智能、机器翻译中大量用到贝叶斯定理...


我将从以下4个角度来科普贝叶斯定理及其背后的思维:

1.贝叶斯定理有什么用?

2.什么是贝叶斯定理?

3.贝叶斯定理的应用案例

4.生活中的贝叶斯思维


1.贝叶斯定理有什么用?

英国数学家托马斯·贝叶斯(Thomas Bayes)在1763年发表的一篇论文中,首先提出了这个定理。而这篇论文是在他死后才由他的一位朋友发表出来的。

(ps:贝叶斯定理其实就是下面图片中的概率公式,这里先不讲这个公式,而是重点关注它的使用价值,因为只有理解了它的应用意义,你才会更有兴趣去学习它。)

在这篇论文中,他为了解决一个“逆概率”问题,而提出了贝叶斯定理。

在贝叶斯写这篇文章之前,人们已经能够计算“正向概率”。什么是正向概率呢?举个例子,杜蕾斯举办了一个抽奖,抽奖桶里有10个球,其中2个白球,8个黑球,抽到白球就算你中奖。你伸手进去随便摸出1颗球,摸出是中奖球的概率是多大。

根据频率概率的计算公式,你可以轻松的知道中奖的概率=中奖球数(2个白球)/球总数(2个白球+8个黑球)=2/10

如果还不懂怎么算出来的,可以看我之前写的科普概率的回答:猴子:如何理解条件概率?


而贝叶斯在他的文章中是为了解决一个“逆概率”的问题。比如上面的例子我们并不知道抽奖桶里有什么,而是摸出一个球,通过观察这个球的颜色,来预测这个桶里里白色球和黑色球的比例。

这个预测其实就可以用贝叶斯定理来做。贝叶斯当时的论文只是对“逆概率”这个问题的求解尝试,这哥们当时并不清楚这里面这里面包含着的深刻思想。

然而后来,贝叶斯定理席卷了概率论,并将应用延伸到各个领域。可以说,所有需要作出概率预测的地方都可以见到贝叶斯定理的影子,特别地,贝叶斯是机器学习的核心方法之一。


为什么贝叶斯定理在现实生活中这么有用呢?

这是因为现实生活中的问题,大部分都是像上面的“逆概率”问题。因为生活中绝大多数决策面临的信息都是不全的,我们手中只有有限的信息。既然无法得到全面的信息,我们就只能在信息有限的情况下,尽可能做出一个好的预测。

比如天气预报说,明天降雨的概率是30%,这是什么意思呢?

我们无法像计算频率概率那样,重复地把明天过上100次,然后计算出大约有30次会下雨(下雨的天数/总天数)

而是只能利用有限的信息(过去天气的测量数据),用贝叶斯定理来预测出明天下雨的概率是多少。

同样的,在现实世界中,我们每个人都需要预测。想要深入分析未来、思考是否买股票、政策给自己带来哪些机遇、提出新产品构想,或者只是计划一周的饭菜。

贝叶斯定理就是为了解决这些问题而诞生的,它可以根据过去的数据来预测出未来事情发生概率。

贝叶斯定理的思考方式为我们提供了有效的方法来帮助我们做决策,以便更好地预测未来的商业、金融、以及日常生活。

总结下第1部分:贝叶斯定理有什么用?

在有限的信息下,能够帮助我们预测出概率。

所有需要作出概率预测的地方都可以见到贝叶斯定理的影子,特别地,贝叶斯是机器学习的核心方法之一。例如垃圾邮件过滤,中文分词,艾滋病检查,肝癌检查等。


2.什么是贝叶斯定理?

贝叶斯定理长这样:

到这来,你可能会说:猴子,说人话,我一看到公式就头大啊。

其实,我和你一样,不喜欢公式。我们还是从一个例子开始聊起。


我的朋友小鹿说,他的女神每次看到他的时候都冲他笑,他现在想知道女神是不是喜欢他呢?

谁让我学过统计概率知识呢,下面我们一起用贝叶斯帮小鹿预测下女神喜欢他的概率有多大,这样小鹿就可以根据概率的大小来决定是否要表白女神。

首先,我分析了给定的已知信息和未知信息:

1)要求解的问题:女神喜欢你,记为A事件

2)已知条件:女神经常冲你笑,记为B事件


所以,P(A|B)表示女神经常冲你笑这个事件(B)发生后,女神喜欢你(A)的概率。

从公式来看,我们需要知道这么3个事情:

1)先验概率

我们把P(A)称为"先验概率"(Prior probability),也就是在不知道B事件的前提下,我们对A事件概率的一个主观判断。

对应这个例子里就是在不知道女神经常对你笑的前提下,来主观判断出女神喜欢一个人的概率。这里我们假设是50%,也就是不喜欢你,可能不喜欢你的概率都是一半。

2)可能性函数

P(B|A)/P(B)称为"可能性函数"(Likelyhood),这是一个调整因子,也就是新信息B带来的调整,作用是将先验概率(之前的主观判断)调整到更接近真实概率。

可能性函数你可以理解为新信息过来后,对先验概率的一个调整。比如我们刚开始看到“人工智能”这个信息,你有自己的理解(先验概率-主观判断),但是当你学习了一些数据分析,或者看了些这方面的书后(新的信息),然后你根据掌握的最新信息优化了自己之前的理解(可能性函数-调整因子),最后重新理解了“人工智能”这个信息(后验概率)


如果"可能性函数"P(B|A)/P(B)>1,意味着"先验概率"被增强,事件A的发生的可能性变大;

如果"可能性函数"=1,意味着B事件无助于判断事件A的可能性;

如果"可能性函数"<1,意味着"先验概率"被削弱,事件A的可能性变小。


还是刚才的例子,根据女神经常冲你笑这个新的信息,我调查走访了女神的闺蜜,最后发现女神平日比较高冷,很少对人笑,也就是对你有好感的可能性比较大(可能性函数>1)。所以我估计出"可能性函数"P(B|A)/P(B)=1.5(具体如何估计,省去1万字,后面会有更详细科学的例子)

3)后验概率

P(A|B)称为"后验概率"(Posterior probability),即在B事件发生之后,我们对A事件概率的重新评估。这个例子里就是在女神冲你笑后,对女神喜欢你的概率重新预测。

带入贝叶斯公式计算出P(A|B)=P(A)* P(B|A)/P(B)=50% *1.5=75%

因此,女神经常冲你笑,喜欢上你的概率是75%。这说明,女神经常冲你笑这个新信息的推断能力很强,将50%的"先验概率"一下子提高到了75%的"后验概率"。

在得到概率值后,小鹿自信满满的发了下面的表白微博:

稍后,果然收到了女神的回复。预测成功。

现在我们再看一遍贝叶斯公式,你现在就能明白这个公式背后的关键思想了:

我们先根据以往的经验预估一个"先验概率"P(A),然后加入新的信息(实验结果B),这样有了新的信息后,我们对事件A的预测就更加准确。

因此,贝叶斯定理可以理解成下面的式子:

后验概率(新信息出现后的A概率) = 先验概率(A概率) x 可能性函数(新信息带来的调整)

贝叶斯的底层思想就是:

如果我能掌握一个事情的全部信息,我当然能计算出一个客观概率(古典概率)。

可是生活中绝大多数决策面临的信息都是不全的,我们手中只有有限的信息。既然无法得到全面的信息,我们就在信息有限的情况下,尽可能做出一个好的预测。也就是,在主观判断的基础上,你可以先估计一个值(先验概率),然后根据观察的新信息不断修正(可能性函数)。

如果用图形表示就是这样的:

其实阿尔法狗也是这么战胜人类的,简单来说,阿尔法狗会在下每一步棋的时候,都可以计算自己赢棋的最大概率,就是说在每走一步之后,他都可以完全客观冷静的更新自己的概率值,完全不受其他环境影响。

3.贝叶斯定理的应用案例

前面我们介绍了贝叶斯定理公式,及其背后的思想。现在我们来举个应用案例,你会更加熟悉这个牛瓣的工具。

为了后面的案例计算,我们需要先补充下面这个知识。

1.全概率公式

这个公式的作用是计算贝叶斯定理中的P(B)。

假定样本空间S,由两个事件A与A'组成的和。例如下图中,红色部分是事件A,绿色部分是事件A',它们共同构成了样本空间S。

这时候来了个事件B,如下图:

全概率公式:

它的含义是,如果A和A'构成一个问题的全部(全部的样本空间),那么事件B的概率,就等于A和A'的概率分别乘以B对这两个事件的条件概率之和。

看到这么复杂的公式,记不住没关系,因为我也记不住,下面用的时候翻到这里来看下就可以了。


案例1:贝叶斯定理在做判断上的应用

有两个一模一样的碗,1号碗里有30个巧克力和10个水果糖,2号碗里有20个巧克力和20个水果糖。

然后把碗盖住。随机选择一个碗,从里面摸出一个巧克力。

问题:这颗巧克力来自1号碗的概率是多少?

好了,下面我就用套路来解决这个问题,到最后我会给出这个套路。

第1步,分解问题

1)要求解的问题:取出的巧克力,来自1号碗的概率是多少?

来自1号碗记为事件A1,来自2号碗记为事件A2

取出的是巧克力,记为事件B,

那么要求的问题就是P(A1|B),也就是取出的是巧克力(B),来自1号碗(A1)的概率

2)已知信息:

1号碗里有30个巧克力和10个水果糖

2号碗里有20个巧克力和20个水果糖

取出的是巧克力


第2步,应用贝叶斯定理

1)求先验概率

由于两个碗是一样的,所以在得到新信息(取出是巧克力之前),这两个碗被选中的概率相同,因此P(A1)=P(A2)=0.5,(其中A1表示来自1号碗,A2表示来自2号碗)

这个概率就是"先验概率",即没有做实验之前,来自一号碗、二号碗的概率都是0.5。


2)求可能性函数

P(B|A1)/P(B)

其中,P(B|A1)表示从1号碗中(A1)取出是巧克力(B)的概率。

因为1号碗里有30个巧克力和10个水果糖,所以P(B|A1)=巧克力数(30)/(糖果总数30+10)=75%

现在贝叶斯公式里只剩P(B)了,只有求出P(B)就可以得到答案。

根据全概率公式,可以用下图求得P(B):

图中P(B|A1)是1号碗中巧克力的概率,我们根据前面的已知条件,很容易求出。

同样的,P(B|A2)是2号碗中巧克力的概率,也很容易求出(图中已给出)。

而P(A1)=P(A2)=0.5

将这些数值带入公式中就是小学生也可以算出来的事情了。最后P(B)=62.5%

所以,可能性函数P(B|A1)/P(B)=75%/62.5%=1.2。

可能性函数>1.表示新信息B对事情A1的可能性增强了。


3)带入贝叶斯公式求后验概率

将上述计算结果,带入贝叶斯定理,即可算出P(A1|B)=60%

这个例子中我们需要关注的是约束条件:抓出的是巧克力。如果没有这个约束条件在,来自一号碗这件事的概率就是50%了,因为巧克力的分布不均把概率从50%提升到60%。


现在,我总结下刚才的贝叶斯定理应用的套路,你就更清楚了,会发现像小学生做应用题一样简单:

第1步. 分解问题

简单来说就像做应用题的感觉,先列出解决这个问题所需要的一些条件,然后记清楚哪些是已知的,哪些是未知的。

1)要求解的问题是什么?

识别出哪个是贝叶斯中的事件A(一般是想要知道的问题),哪个是事件B(一般是新的信息,或者实验结果)

2)已知条件是什么?


第2步.应用贝叶斯定理

第3步,求贝叶斯公式中的2个指标

1)求先验概率

2)求可能性函数

3)带入贝叶斯公式求后验概率


案例2:贝叶斯定理在医疗行业的应用

每一个医学检测,都存在假阳性率和假阴性率。假阳性,就是没病,但是检测结果显示有病。假阴性正好相反,有病但是检测结果正常。

即使检测准确率是99%,如果医生完全依赖检测结果,也会误诊。也就是说假阳性的情况,根据检测结果显示有病,但是你实际并没有得病。

举个更具体的例子,因为艾滋病潜伏期很长,所以即便感染了也可能在很长的一段时间,身体没有任何感觉,所以艾滋病检测的假阳性会导致被测人非常大的心理压力。

你可能会觉得,检测准确率都99%了,误测几乎可以忽略不计了吧?所以你觉得这人肯定没有患艾滋病了对不对?

让我们用贝叶斯定理算一下,就会发现你的直觉是错误的。

假设某种疾病的发病率是0.001,即1000人中会有1个人得病。现在有一种试剂可以检验患者是否得病,它的准确率是0.99,即在患者确实得病的情况下,它有99%的可能呈现阳性。它的误报率是5%,即在患者没有得病的情况下,它有5%的可能呈现阳性。

现在有一个病人的检验结果为阳性,请问他确实得病的可能性有多大?

好了,我知道你面对这一大推信息又头大了,我也是。但是我们不是有贝叶斯模板套路嘛,下面开始。


第1步,分解问题

1)要求解的问题:病人的检验结果为阳性,他确实得病的概率有多大?

病人的检验结果为阳性(新的信息)记为事件B,他得病记为事件A,

那么要求的问题就是P(A|B),也就是病人的检验结果为阳性(B),他确实得病的概率(A)

2)已知信息

这种疾病的发病率是0.001,即P(A)=0.001

试剂可以检验患者是否得病,准确率是0.99,也就是在患者确实得病的情况下(A),它有99%的可能呈现阳性(B),所以P(B|A)=0.99

试剂的误报率是5%,即在患者没有得病的情况下,它有5%的可能呈现阳性。得病我们记为事件A,那么没有得病就是事件A的反面,记为A',所以这句话就可以表示为P(B|A')=5%


2.应用贝叶斯定理

1)求先验概率

疾病的发病率是0.001,即P(A)=0.001

2)求可能性函数

P(B|A)/P(B)

其中,P(B|A)表示在患者确实得病的情况下(A),试剂呈现阳性的概率,从前面的已知条件中我们已经知道P(B|A)=0.99

现在只有求出P(B)就可以得到答案。根据全概率公式,可以用下图求得P(B)=0.05094

所以可能性函数P(B|A)/P(B)=0.99/0.05094=19.4346

3)带入贝叶斯公式求后验概率

我们得到了一个惊人的结果,P(A|B)等于1.94%。

也就是说,筛查的准确率都到了99%了,通过体检结果有病(阳性)确实得病的概率也只有1.94%

你可能会说,再也不相信那些吹的天花乱坠的技术了,说好了筛查准确率那么高,结果筛查的结果对于确诊疾病一点用都没有,这还要医学技术干什么?

没错,这就是贝叶斯分析告诉我们的。我们拿艾滋病来说,由于发艾滋病实在是小概率事件,所以当我们对一大群人做艾滋病筛查时,虽说准确率有99%,但仍然会有相当一部分人因为误测而被诊断为艾滋病,这一部分人在人群中的数目甚至比真正艾滋病患者的数目还要高。

你肯定要问了,那该怎样纠正测量带来这么高的误诊呢?

造成这么不靠谱的误诊的原因,是无差别地给一大群人做筛查,而不论测量准确率有多高,因为正常人的数目远大于实际的患者,所以误测造成的干扰就非常大了。


根据贝叶斯定理,我们知道提高先验概率,可以有效的提高后验概率。

所以解决的办法倒也很简单,就是先锁定可疑的人群,比如10000人中检查出现问题的那10个人,再独立重复检测一次。因为正常人连续两次体检都出现误测的概率极低,这时筛选出真正患者的准确率就很高了,这也是为什么许多疾病的检测,往往还要送交独立机构多次检查的原因。

这也是为什么艾滋病检测第一次呈阳性的人,还需要做第二次检测,第二次依然是阳性的还需要送交国家实验室做第三次检测。

在《医学的真相》这本书里举了个例子,假设检测艾滋病毒,对于每一个呈阳性的检测结果,只有50%的概率能证明这位患者确实感染了病毒。但是如果医生具备先验知识,先筛选出一些高风险的病人,然后再让这些病人进行艾滋病检查,检查的准确率就能提升到95%。


案例4:贝叶斯垃圾邮件过滤器

垃圾邮件是一种令人头痛的问题,困扰着所有的互联网用户。全球垃圾邮件的高峰出现在2006年,那时候所有邮件中90%都是垃圾,2015年6月份全球垃圾邮件的比例数字首次降低到50%以下。

最初的垃圾邮件过滤是靠静态关键词加一些判断条件来过滤,效果不好,漏网之鱼多,冤枉的也不少。

2002年,Paul Graham提出使用"贝叶斯推断"过滤垃圾邮件。他说,这样做的效果,好得不可思议。1000封垃圾邮件可以过滤掉995封,且没有一个误判。

因为典型的垃圾邮件词汇在垃圾邮件中会以更高的频率出现,所以在做贝叶斯公式计算时,肯定会被识别出来。之后用最高频的15个垃圾词汇做联合概率计算,联合概率的结果超过90%将说明它是垃圾邮件。

用贝叶斯过滤器可以识别很多改写过的垃圾邮件,而且错判率非常低。甚至不要求对初始值有多么精确,精度会在随后计算中逐渐逼近真实情况。

(ps:如果留言想详细了解这个知识的很多,我后面会专门写文章来回答大家)

4.生活中的贝叶斯思维

贝叶斯定理与人脑的工作机制很像,这也是为什么它能成为机器学习的基础。

如果你仔细观察小孩学习新东西的这个能力,会发现,很多东西根本就是看一遍就会。比如我3岁的外甥,看了我做俯卧撑的动作,也做了一次这个动作,虽然动作不标准,但也是有模有样。

同样的,我告诉他一个新单词,他一开始并不知道这个词是什么意思,但是他可以根据当时的情景,先来个猜测(先验概率/主观判断)。一有机会,他就会在不同的场合说出这个词,然后观察你的反应。如果我告诉他用对了,他就会进一步记住这个词的意思,如果我告诉他用错了,他就会进行相应调整。(可能性函数/调整因子)。经过这样反复的猜测、试探、调整主观判断,就是贝叶斯定理思维的过程。


同样的,我们成人也在用贝叶斯思维来做出决策。比如,你和女神在聊天的时候,如果对方说出“虽然”两个字,你大概就会猜测,对方后面九成的可能性会说出“但是”。我们的大脑看起来就好像是天生在用贝叶斯定理,即根据生活的经历有了主观判断(先验概率),然后根据搜集新的信息来修正(可能性函),最后做出高概率的预测(后验概率)。


其实这个过程,就是下图的大脑决策过程:

所以,在生活中涉及到预测的事情,用贝叶斯的思维可以提高预测的概率。你可以分3个步骤来预测:

1.分解问题

简单来说就像小学生做应用题的感觉,先列出要解决的问题是什么?已知条件有哪些?

2. 给出主观判断

不是瞎猜,而是根据自己的经历和学识来给出一个主观判断。

3.搜集新的信息,优化主观判断

持续关于你要解决问题相关信息的最新动态,然后用获取到的新信息来不断调整第2步的主观判断。如果新信息符合这个主观判断,你就提高主观判断的可信度,如果不符合,你就降低主观判断的可信度。

比如我们刚开始看到“人工智能是否造成人类失业”这个信息,你有自己的理解(主观判断),但是当你学习了一些数据分析,或者看了些这方面的最新研究进展(新的信息),然后你根据掌握的最新信息优化了自己之前的理解(调整因子),最后重新理解了“人工智能”这个信息(后验概率)。这也就是胡适说的“大胆假设,小心求证”。

我是猴子,中科院硕士/IBM高级软件工程师/豆瓣8分《数据分析思维》作者,我和知乎知学堂研职在线联合出品的「数据分析训练营」即将开课,3天带你掌握数据分析实用技巧,包含课程+实战带练,工作提效、升职加薪必备神器!

报名还有独家Excel自学资料领取,点击开启数据分析升职加薪密码:

概率的基础知识补充:


参考资料:

YouTube英文视频《Thomas Bayes: Probability for Success》

YouTube英文视频《Everything You Ever Wanted to Know About Bayes' Theorem But Were Afraid To Ask.》

贝叶斯垃圾邮件过滤器:paulgraham.com/spam.htm

贝叶斯垃圾邮件过滤Wiki:en.wikipedia.org/wiki/N

贝叶斯推断及其互联网应用(一)

《联邦党人文集》背后的统计学幽灵


让我们从一个故事开始。

1 看着后视镜往前开车

想象这么一个场景,我开着车,经过笔直的大道,快速地往下一个路口驶去。我知道,到了下一个路口就要右转了。

这件事情很简单,我坐在驾驶室内,看到下一个路口,往右边打方向盘就好了:

突然,不管什么原因(这故事是我写的,可以安排一百种原因,干脆就不解释),反正前挡风玻璃碎了:

不要纠结我这幅图,反正你已经无法看清前面的路了,那怎么知道什么时候该右转?

还好,开车的是一位数学家,智商及时上线。

数学家根据自己的经验,估计这条笔直的道路上:

这也就意味着如果随意的右转,有 95\% 的概率是错误的。

数学家从后视镜看出去,发现后面有一辆车在打右转弯灯,他意识到:

新的信息出现了,此时如果右转,错误的概率就比之前小很多。

这种思考方法,就是贝叶斯定理所阐述的思考方法。

2 结合开车来理解贝叶斯公式

我们来看看贝叶斯公式是怎么写的:

P(A|B)=P(A)\frac{P(B|A)}{P(B)}

先把刚才的开车给符号化:

我们再来理解下贝叶斯公式:

如果我们知道,在整个车辆行驶过程中,会有 2\% 的概率打右转弯灯,即 P(B)=2\% ,我们就可以计算 P(A|B) 了。

因此贝叶斯公式实际上阐述了这么一个事情:

我们再通过韦恩图来理解一下这个事情(为了观看方便,下面的 A,B 的圆形面积是示意):


新的信息的出现,比如之前看到了亮着右转弯灯的车,就好比知道点已经落入了 B

至于为什么 B 事件发生后导致的调整为:

\frac{P(B|A)}{P(B)}

这就需要代数了,推导也不复杂,这里就不演算了。

2.1 小结

我们可以看到有形的十字路口,却看不到明天是否下雨,我们可以看到前方是否有路障,却不清楚下一次飞机是否会出事。甚至有时候,眼睛还会欺骗我们。

很多时候,我们不得不看着后视镜开车,这个时候概率论、贝叶斯定理就是我们的指路明灯。

看着后视镜开车,肯定常常会撞车,没关系,我们可以不断的去修正我们的假设。

比如,撞了几次车之后,就发现可能之前估计的在十字路口打右转弯灯的数据明显偏大了,我们修正之后再继续开车。我们人类的学习,本身也是一个试错的过程。

3 贝叶斯定理与人脑

贝叶斯定理现在很多人在研究,就是因为不少人相信贝叶斯定理和人脑的工作机制很像(此处颇多争论,望自行判断),因此成为机器学习的基础。

比如,你和对方聊天的时候,如果对方说出“虽然”两个字,你大概就会猜测,对方后继九成的可能性会说出“但是”。我们的大脑看起来就好像是天生在用贝叶斯定理。

吴军博士在他的著作《数学之美》里面就提到了,最早的自然语言处理,比如翻译、语音识别,都是通过语法分析来进行的,就是把“主谓宾”分析清楚,然后处理,正确率惨不忍睹。

后来,google由自然语言处理专家贾里尼克领导的部门,通过统计、概率方法进行上述研究,正确率提高了很多。在书中也列举了贝叶斯定理是如何参与自然语言处理的。

书中还有一句业界广为流传的名言:

语法是人类后来总结出来的,我们天生是不需要语法就可以开口说话的,或许,人脑真的是贝叶斯大脑。

最后,有一个小小的问题,根据我们的经验,硬币正反两面出现的概率都是 50\% ,如果我扔了一千次都是正面,那说明了什么?关于这点可以查看:如何理解贝叶斯推断,beta分布?

文章最新版本在(有可能会有后续更新):怎样用非数学语言讲解贝叶斯定理(Bayes theorem)?

更多内容推荐马同学图解数学系列