Press "Enter" to skip to content

贝叶斯推理实用入门

什幺是贝叶斯推理, 我早在过去的文章里分析过有关贝叶斯概率的知识, 例如朴素贝叶斯之实践篇,这次融入纽约大学weijima的方法论教程(http://www.cns.nyu.edu/malab/index.html),给大家一个更实用的版本。

 

一,什幺是贝叶斯概率, 它于经典概率由什幺关系.

 

谈贝叶斯首先是用概率量化问题。 概率这件事大家都觉得自己很熟悉, 叫你说概率的定义 , 你却不一定说的出。经典的概率, 说的是事件发生的可能性。 我们中学课本里说概率这个东西表述是一件事发生的频率, 这个频率就代表某件事发生的可能大小。 或者说这叫做客观概率。

 

而贝叶斯框架下的概率理论确从另一个角度给我们展开了答案, 他说概率是我们个人的一个主观概念, 表明我们对某个事物是否发生的相信程度 。 如同Pierre Lapalace说的: Probability theory is nothing but common sense reduced to calculation. 这正是贝叶斯流派的核心,换句话说,它解决的是来自外部的信息与我们大脑内信念的交互关系。

 

两种对于概率的解读区别了频率流派和贝叶斯流派。同时我们不难看出两者之间的联系, 你对一件事情发生的可能性估计正是基于某种频率的统计。 但是它们的区别在哪里呢?

 

首先,给你下面的事件, 假定你带着孩子去看月亮, 然后孩子说月亮的属性是块奶酪, 你会跟它怎幺说呢?  首先, 你一定知道月亮是一个石头的星球而非奶酪, 那幺这件事你要如何去跟孩子说呢? 首先我们生活在概率的世界, 你要和它说的是你可以认为月亮是石头或者奶酪, 但是你不要相信任何一个, 既然不相信, 你把它们称为假设1 和假设2,  然后你给它们各自一个数字来代表可能性的大小, 这就是概率。 然后我们看频率观和贝叶斯的区别

 

1, 频率观的家长: 到天空做一些测量, 看看奶酪和石头的比例, 然后算出假设1和假设2的概率。

 

2,  贝叶斯的家长:  孩子我们去不了天空, 但是我们可以想象下我们生活中的经验, 然后查看一下教科书。 首先, 教科书里说, 到目前为止,天空中发光的99.99%是石头。   然后,  再联想下生活经验, 如果是奶酪, 那幺它确实是黄灿灿的发光, 因此生活证据显示, 月亮是奶酪的假设并不违和。 那幺把两个综合一下, 通过一系列后面会说的公式, 你给出孩子它的观测结合书里的知识的合理性概率: 月亮是石头的概率99.9%。 贝叶斯通过承认我们自身的无知,给不同的假设以调整空间。

 

 

哪个过程更合理? 哪个方法更正确? 你自行去分析。这里要说的是, 在真实世界里, 我们所做的往往是把现象的经验推理, 和某种先验结合, 去估计事物的可能性,这正是贝叶斯的思路 . 没有人会对每件重要的事做无限的测量, 也不是所有事件都可以重复(分手不可以, 股灾不可以),这是我们唯一可以做的。

 

贝叶斯的数学公式十分简单, 一, 你要有先验概率P(A),二, 似然性  P(B|A), 最终得到后验概率P(A|B)。这三者构成贝叶斯统计的三要素。 似然性实用条件概率表达, 后验也用条件概率来表达, 基于此的贝叶斯定律数学方程极为简单:

 

 

套用月亮的例子,P(A)代表月亮是奶酪的假设, P(B|A)代表现象黄色发光。  即月亮是奶酪的先验概率, 是如果月亮是奶酪, 那幺它是黄色发光的概率, 你得到前两者,就可以根据公式算出结合了证据之后的月亮是奶酪的后验概率。 这里比较难计算的是 P(B)

 

事实上对它的计算你要把所有可以给出这个结果的假设都包含进来, 用概率的marginal law 展开每个假设之下观测到现象的概率, 比如这个问题里, 你就要把月亮是奶酪和石头两个假设都包含进来, 分别计算各自假设下发光现象的概率。

 

有一个非常有趣的现象是如果我们的先验概率审定为1或0(即肯定或否定某件事发生), 那幺无论我们如何增加证据你也依然得到同样的条件概率(此时P(A)=0 或 1 , P(A|B)= 0或1) 这告诉我们的第一个经验就是不要过早的下论断, 下了论断你的预测也就无法进化了, 或者可以称之为信仰。 你如果想让你的认知进步,就要给各种假设留一点空间。

 

贝叶斯分析的思路对于由证据的积累来推测一个事物发生的概率具有重大作用, 它告诉我们当我们要预测一个事物, 我们需要的是首先根据已有的经验和知识推断一个先验概率, 然后在新证据不断积累的情况下调整这个概率。整个通过积累证据来得到一个事件发生概率的过程我们称为贝叶斯分析。

 

贝叶斯的数学计算主要考察对条件概率的实用。 但是有时候我们也不理解条件概率, 比如着名的辛普森案, 为了证明辛普森有杀妻之罪,检方说辛普森之前家暴的历史,而辩护律师说,美国有400万女性被丈夫或男友打过,而其中只有1432人被杀,概率是2800分之一。 这其实就是误用了条件概率, 因为辩护律师用的条件是家暴,用来推测的事件是男友杀人, 而事实上这里的条件是被杀而且有家暴,而要推测的事件是凶手是男友(事实上概率高达90%),这才是贝叶斯分析的正当用法, 而辩护律师却把完全在混淆条件与要验证的假设。

 

 

二, 把贝叶斯概率工具用来建模

 

贝叶斯概率是非常基础的统计知识, 有的人只把它当成统计, 而它在心理学,经济学, 神经科学等领域具有巨大潜力。 为什幺?  因为这类问题的研究对象往往具有极高的不确定性, 是由大量较低一级单元组成的复杂系统。 这就造成直接用物理学搞定分子结构解薛定谔方程的思路是不行的, 你不能把人的行为像氢原子光谱一样求解出来。

 

那幺怎幺办? 纯统计? 你可以做量表, 去统计所有可能的人的属性和和它们的行为之间的联系, 然后求一个皮尔森系数。 但是这样的方法虽然可以用, 但在量化和机器学习发展急速的今天还是naive了一点。

 

一个折衷的方法? 贝叶斯建模。 贝叶斯建模非常善于处理“黑箱” 问题,对付这种不好精确预测但有些用到一点建模的东西很关用。 贝叶斯建模可以很快的把实验数据和理论做一个结合。 而且据说我们的大脑处理信息也确实符合贝叶斯框架。

 

你只要有假设先验, 有观测, 有似然性, 就可以用一个贝叶斯。这里的似然性,经常是由我们的理论模型提供的,而贝叶斯的框架可以把这个模型的参数迅速的推到出来。 这同时也意味着,果你手里有几个不同的模型假设,有一些数据,贝叶斯会迅速告诉你哪个比较合理。

 

比如你有两个截然不同的假设解释一种心理现象,贝叶斯方法迅速告诉你哪个更合理。 我们通过下面的几个例子说明, 刚刚说了, 我们哟啊建立一个模型, 然后用贝叶斯把它转化为一个预测机器, 模型可以到多简单? 请看下面的例子:

 

1, 多个运动物体例子

 

 

Bayesian modelling of behaviour (Weiji Ma)

 

 

Bayesian modelling of behaviour (Weiji Ma)

 

如果看到一组一起移动的物体, 比如上图, 人往往会倾向于认为它们是一个整体。这个现象被格式塔心理学解释为一宗天然的心理倾向。 而解释同样的现象, 你只需要搭建一个简单的贝叶斯概率模型:

 

1, 找到两种可能的假设和现象, A 上面的五个物体是独立的, 刚好一起向上运动  B  上面的5个物体是一个整体  。 现象:  五个物体一起向上运动

 

2, 找到A和B的先验概率:  先验可以。 基于知识或者大量过去的观测, 那幺平时生活经验或者书本都会告诉你, 两种情况可能差距不大

 

3,A和B得到现象的概率, 事实上它测量假设到现象的关联, 在这个情况下, B几乎一定得到现象, A, 如果每个物体向上或向下的概率是0.5, 那幺你应该已经求出来了: 1/32

 

4, 合成后验概率 :  B压倒A。

 

所以, 我幺倾向于认为A是对的,即使A和B都有成立的可能。 由此得到的推论是人有把一起移动的物体看成一个整体的趋势, 这符合格式塔原理。

 

2, 运动眩晕

 

类似的方法可以解释很多我们日常生活中的一些现象,比如我们一个非常常见的现象, 晕船。 关于晕船的一个重要的进化心理学理论说, 这是祖先的一个毒物排出反应, 因为祖先在尝到毒物之后会引起眩晕, 而这个时候呕吐可以排出毒物。 进化心理学用这个例子说明我们事实上生活在祖先的记忆感觉里。

 

那幺, 这个非常简单的模型假设成立的可能是多大呢? 如果用贝叶斯方法来分析这个问题会有个很清楚的框架。在此处我们先预设眩晕确实是我们的大脑根据现象对世界做出了预测产生的反应, 我们在船舱里产生了眩晕, 我们有三个可能的模型:

 

A, 我们的大脑检测到我们自己的运动, 是我们自己的运动导致我们的眼睛和前庭(vestibular) 的感觉

 

B, 我们的大脑检测到了地面的运动, 我们自己的运动(摇摆)导致了我们的视觉感知, 而前庭(vestibular)则感觉到了船舱和地面的相对运动

 

C   我们的大脑检测到了我们吸入毒物。 毒物的作用导致了你自己的运动, 以及你所感知到的地面的剧烈晃动(幻觉)。

 

贝叶斯的分析框架告诉我们, A, 似然性为0, 因为因果关系是错的, 我们自己的运动只能解释我们的视觉感知。   B,  先验为0, 除非世界末日,我们的祖先几乎不会在车船这类快速运动的物体上活动  C, 这种情况确实会出现在祖先的生活里,先验不为0, 而一旦吸入毒物, 那幺确实有可能产生幻觉, 因此似然性不为0 .  所以相对前两者, C最有可能。  当然细心的你会发现这里还是做了太多的假设,尤其对先验, 但是这无疑是一个相对合理的框架。

 

3, 颜色误差

 

 

 

你有没有印象这篇刷爆朋友圈的文章,  这个裙子的颜色是黑色还是金色? 有的人猜是黑色, 有的人猜是金色,而它到底是什幺颜色的? 没有人知道。 这是不是说明客观世界是不存在的? 还是说我们发现了一个检测乐观主义和悲观主义者的方法?  如果你在思考前面两个,那幺你不懂贝叶斯。  事实上, 这个问题的实质是, 这条裙子的颜色确实是不确定的。 而我们在现实世界中对颜色的判断, 本来就是一个贝叶斯推断。

 

我们来看为什幺,颜色事实上光谱决定的, 也是不同频率光的成分大小。 这里我们做个简化,我们只有黑白灰。 大家知道, 其实真实世界的物体本身谈不上颜色, 它只是在反射, 而入射光乘以反射率决定了我们看到的样子。 黑色的物体代表反射率为0,   白色的物体是1, 而中间就是灰色。 但是, 你记住, 你的研究只能检测反射光强,这个反射光强等于反射率乘以入射光强。 如果你的眼睛检测到一个反射光强, 而我们的物体识别问题实际上正是想找到反射率这个特征(它才与颜色相关)。

 

也就是说,我们的研究遇到一个两难处境。 它所收集的资料反射光强, 既包含反射率, 又包含入射光的信息。 我们得到的是一组反射率和入射光的组合, 那幺我们究竟为什幺会看到黑白灰的色彩呢?  原因是, 我们的大脑根据先验和似然性, 做了一个贝叶斯推断。  首先, 这里的先验是什幺? 我们在自然界中, 往往会根据时间现场的光线强度等对于入射光强做一个估计, 这个经验数值就是我们的先验(在这里最好把这个经验数值想成一个以最可能的值为中心的高斯分布)。 因为日常生活吗, 总归是在那几种光线下。然后根据刚刚的乘法法则(这个相当于似然性, 你有了反射度和入射光强, 可以完全确定你眼睛的检测光强,一个狄拉克函数), 你可以推出反射度的后验分布, 这个分布的峰值, 正是你最可能看到的颜色。

 

 

这个实验解释了那个裙子的颜色问题, 你是看到黑色还是金色, 和你日常经验里对现场光强的先验有关, 看来酒吧里的DG和阳光下的建筑工程师的想法应该不太一样。  而这也在告诉我们, 我们看到的东西永远并非真实,由于我们接受的信息总是有限,我们在不自觉的做大量的脑补, 这些脑补, 组成了我们最终看到的世界。

 

你估计还记得旋转舞女的实验吧, 如果你理解了刚刚的颜色问题, 那幺这个问题很容易解释。  你看到她是向右还是向左旋转?  不是有人引用来解释左脑还是右脑型人?  你还相信吗? 旋转舞女是一个典型的信息不全, 而可以容纳不同的解释的问题。虽然说一些八卦的说法并不可靠, 如果人和人之间在对这类问题的回答上真有差异, 说不定会告诉我们一定所从未想到的东西(比如是什幺导致了我们的先验?)。

 

你可以举出无数这类脑补的例子,比如为什幺一篇英语文章每个单词都只保留首尾字母你还能猜到一些?

 

 

4, 和时间有关的因子预测

 

贝叶斯方法很擅长解决的一个问题就是和时间有关的因子预设。 假设你经常去一家喜爱的餐厅吃饭, 某一天你突然发现这家餐厅的菜突然就好吃了, 这可能是怎幺回事呢?  是不是厨师换了呢? 然而你没法进到餐厅里去看, 这个时候你会开始回想前几天吃的是不是味道也变化了你没有留意。

 

其实, 这里你已经开始进行一个贝叶斯推断过程了。 假定你每天来吃一次饭, 你想推测某个点开始厨师坏了的概率, 这就是一个经典的点推测问题。  这个问题之所以有难度, 是因为如果你把每次吃饭看作一次测量, 那幺测量本身是有噪声的,这使得你比较难做出决断,到底是那天厨师心情不好做坏了饭,还是换了厨师。  这个问题的实用性不用多说, 无论是在医疗健康诊断问题里, 还是某段人际关系的变化(好好一段感情突然就变了? No, 所有的突然变化都是潜在的蓄谋已久)。

 

那幺具体如何做呢?  事实上这已经开始涉及到很复杂的数学,回到贝叶斯本质, 先验在哪里, 似然性在哪里? 在很多贝叶斯问题, 先验充满主观性, 这里也不例外, 在所有主观里最客观的就是假定它是一个常数, 也就是厨师变化的概率随时间是均匀的。

 

然后, 似然性呢 ?  似然性就是一个生成模型。 也就是给你一个内在的过程,比如厨师的变化, 然后推导出菜的味道的变化。 一个最简单可以放进去的模型, 就是转化概率随时间独立的马尔科夫过程。 有了这个生成模型, 你会得到一系列不同时间厨师变化下吃菜味道的分布。 这就完成了生成模型部分, 后面的工作很简单, 只要按照贝叶斯把它反过来,你就得到了给定观测下, 潜在因子(厨师)在不同时间段发生变化的概率分布。

 

三  贝叶斯推理究竟告诉我们什幺

 

传统的深度学习的特点是大量标注数据驱动的黑箱, 不太考虑概率分布。 而到了深度生成模型的时代,我们必须考虑概率分布, 因此深度生成模型和贝叶斯有着深刻的内在联系。 同时,贝叶斯框架通过结合有效的先验,可以做到用更少的数据达到更好的泛化效果, 也极为的符合深度学习的需求。 两者在网络训练的结合请参考深度贝叶斯

 

贝叶斯分析里, 你会发现, 你始终要有一个先验, 一个似然性, 而似然性事实上是某种简单的模型 (也可以很复杂!)。 事实上我们在我们的思维过程, 主动或被动, 正确或不正确的运用着贝叶斯,你所认可的事实里, 很多是你的推断。同样的客观数据面前,先验或似然性不同的人, 可以得出完全相反的结论。  教条的人可能给予了某个假设一个无限强的先验。 而容易被忽悠的大多数可能用到了过于简单的似然性模型, 比如用好人和恶棍解释很复杂的社会现象。 而自做聪明的人呢? 可能用了一个对自己有利的解释模型, 而忽略了其它可能。

 

更多阅读

 

贝叶斯大脑

 

趣味贝叶斯推理

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注