贝叶斯大脑
本文来自巡洋舰读者投稿,作者为复旦物理博士,现从事机器学习算法研究。首发于作者的的个人公众号“Kane的世界线”,欢迎各位关注。这里发布的这篇文章,和原文有些不同,进行了进一步的修改,以便于读者理解。
如果要从1到100里面猜一个和16最像的数,你会猜什么?
可能你会觉得无从下手,因为相像有无数可能性,可以是15或者17,因为数值相近;可以是96或者4,因为是16的倍数或者都是偶数;还可以是2,4,16,32,因为都是2的幂次。那接着告诉你,除了16之外,还有8,2,64也在同一组,那么你觉得下一个可能的数是什么?我想很多人会由此推断出要找的数是2的幂次;而如果说23,19,20和16是同一组呢,那么可能会推断是想找数值相近的数。
咋一看,这很显然。但细想,却很玄妙。在很多情况下,只给一个或少数几个例子,而且仅仅是正面例子,我们便可以从中学习、推断和做分类,这是一项神奇的能力,至少目前的机器学习算法还没有人类做得好。我们的大脑是怎么做到这一点的呢,这还要从Bayes,哦,不,Sheldon说起。
从Sheldon到Bayes定理
很多人都喜欢看《生活大爆炸》,欣赏里面Sheldon的绝顶聪明,上面的图片就出自《生活大爆炸》第四季第二集。里面的Sheldon非常担心,害怕自己活不到技术“奇点”的出现,也就无法通过意识上传获得永生。他根据家族成员的寿命和疾病史等,预期自己还有六十年可以活。他是怎么做到的呢?用的就是黑板上的贝叶斯定理,也是今天要讲的主题。
贝叶斯是18世纪英国的一位统计学家,他的生平事迹这里就不赘述,只需要知道他发现了这一定理的一种特别情况,后人因此用他名字给这一定理命名。这一定理看起来是如此的显然和稀松平常,以致于初次遇见可能会忽视它。而细究之下,又会发现,它的内涵是如此丰富,不仅仅改变了我们对概率论的看法,并且很多情况下,我们的思维和决策本身也是基于其基础之上的,就像前面所讲的例子。
在概率论中,设两个事件发生的概率分别是P(A)和P(B),那么他们同时发生的概率P(A,B)可以用两种方式计算,既可以表述为事件A发生的概率P(A)乘以事件A发生时事件B也发生的概率(条件概率)P(B|A),也可以表述为事件B发生的概率P(B)乘以事件B发生时事件A也发生的概率P(A|B),公式表达如下:
这就是贝叶斯定理的全部。很简单而且显然,对不对。只不过为了更好的理解其中的含义,我们把上述公式变换到它的标准形式:
通常情况下,B表示某一论断,例如“太阳每天从东方升起”,P(B)表示最初我们对这一论断的信念,称为先验概率prior。A表示对这一论断我们收集的证据,例如,今天太阳从东方升起。P(A|B)表示假如论断成立,出现这一证据的可能性,称为似然概率likelihood。那么我们便可以根据上述公式对信念进行更新,从先验概率P(B)变到后验概率posterior P(B|A)。
这里很重要的一点是,和我们平常所使用的概率方式不同,这里,一开始我们并没有假定“太阳每天从东方升起”一定正确,而是万事看证据,根据证据来修正我们对一件事物的看法。这一范式的改变发展出了概率论的贝叶斯学派,和传统的频率学派对概率论的解释形成对立,争论至今。
由此说开去,我们发现,不管是科学理论的建立还是发明创造,很多时候都是一条漫长曲折的寻找证据,并从证据中逐步抽象,建立起理论的道路。但在理论建立完备后,常常讲解的方式却是另外一种,高屋建瓴式的、抽象的、预设的前提假设出发,一步步小心求证,最后得到结论,这一方式发挥到极致的学科便是数学。后一种方法我们称之为演绎推理deduction,而前一种更多的是归纳推理induction。对归纳推理炉火纯青的应用,正是人类学习的一个很大优势。
认知的贝叶斯模型
回到开头提到的猜数字的游戏,有了贝叶斯定理的武装,我们便能更好的理解在这一任务中,大脑究竟发生了什么。这一例子出自Tenenbaum的博士论文,并被Murphy在《机器学习》[1]一书中采用,为了便于解释,我们截取Murphy书中的两张图:
上图给出了知道数字16之后,我们所做的各种模型假设,以及相应的先验概率、似然概率和后验概率分布。纵坐标为各个模型假设,横坐标标记为"prior"的左侧图是每个模型对应的先验概率P(h_i),它表示我们对每种假设的信念大小,例如把数字分成奇数偶数比较常见,于是我们把相应模型的先验概率设得比较大,而对于“都是2的幂次但排除32”这样的规则,我们会觉得很不“自然”,相应的会给予很小的概率。对模型的偏好来自于我们的先验知识,在两个一样解释力的模型中,我们会偏好更简单的模型,这就是经典的Occam剃刀原则。
同样的,我们还需要知道对每种既定假设,出现数字16的概率大小P(O|h_i),这表示在上图横坐标为"lik"的中部。具体计算逻辑为,设假设h_i允许出现的结果有|h_i|种,那么每种结果出现的可能性便是: