平凡又神奇的贝叶斯方法
来源: | 作者:k君 | 发布时间: 2016-08-02 | 471 次浏览 | 分享到:
1.1 一个例子:自然语言的二义性n n下面举一个自然语言的不确定性的例子。当你看到这句话:nThe girl saw the boy with a telescope.n你对这句话的含义有什么猜测?平常人肯定会说:那个女孩拿望远镜看见了那个男孩(即你对这个句子背后的实际语法结构的猜测是:The girl saw-with-a-telescope the boy )。然而,仔细一想,你会发现这个句子完全可以解释成:那个女孩看见了那个拿着望远镜的男孩(即:The girl saw the-boy-with-a-telescope )。那为什么平常生活中我们每个人都能够迅速地对这种二义性进行消解呢?这背后到底隐藏着什么样的思维法则?我们留到后面解释。n n1.2 贝叶斯公式n n贝叶斯公式是怎么来的?n我们还是使用 wikipedia 上的一个例子:n一所学校里面有 60% 的男生,40% 的女生。男生总是穿长裤,女生则一半穿长裤一半穿裙子。有了这些信息之后我们可以容易地计算“随机选取一个学生,他(她)穿长裤的概率和穿裙子的概率是多大”,这个就是前面说的“正向概率”的计算。然而,假设你走在校园中,迎面走来一个穿长裤的学生(很不幸的是你高度近似,你只看得见他(她)穿的是否长裤,而无法确定他(她)的性别),你能够推断出他(她)是男生的概率是多大吗?n n一些认知科学的研究表明(《决策与判断》以及《Rationality for Mortals》第12章:小孩也可以解决贝叶斯问题),我们对形式化的贝叶斯问题不擅长,但对于以频率形式呈现的等价问题却很擅长。在这里,我们不妨把问题重新叙述成:你在校园里面随机游走,遇到了 N 个穿长裤的人(仍然假设你无法直接观察到他们的性别),问这 N 个人里面有多少个女生多少个男生。n n你说,这还不简单:算出学校里面有多少穿长裤的,然后在这些人里面再算出有多少女生,不就行了?n n我们来算一算:假设学校里面人的总数是 U 个。60% 的男生都穿长裤,于是我们得到了 U * P(Boy) * P(Pants|Boy) 个穿长裤的(男生)(其中 P(Boy) 是男生的概率 = 60%,这里可以简单的理解为男生的比例;P(Pants|Boy) 是条件概率,即在 Boy 这个条件下穿长裤的概率是多大,这里是 100% ,因为所有男生都穿长裤)。40% 的女生里面又有一半(50%)是穿长裤的,于是我们又得到了 U * P(Girl) * P(Pants|Girl) 个穿长裤的(女生)。加起来一共是 U * P(Boy) * P(Pants|Boy) + U * P(Girl) * P(Pants|Girl) 个穿长裤的,其中有 U * P(Girl) * P(Pants|Girl) 个女生。两者一比就是你要求的答案。n n下面我们把这个答案形式化一下:我们要求的是 P(Girl|Pants) (穿长裤的人里面有多少女生),我们计算的结果是 U * P(Girl) * P(Pants|Girl) / [U * P(Boy) * P(Pants|Boy) + U * P(Girl) * P(Pants|Girl)] 。容易发现这里校园内人的总数是无关的,可以消去。于是得到nP(Girl|Pants) = P(Girl) * P(Pants|Girl) / [P(Boy) * P(Pants|Boy) + P(Girl) * P(Pants|Girl)]n n注意,如果把上式收缩起来,分母其实就是 P(Pants) ,分子其实就是 P(Pants, Girl) 。而这个比例很自然地就读作:在穿长裤的人( P(Pants) )里面有多少(穿长裤)的女孩( P(Pants, Girl) )。n n上式中的 Pants 和 Boy/Girl 可以指代一切东西,所以其一般形式就是:nP(B|A) = P(A|B) * P(B) / [P(A|B) * P(B) + P(A|~B) * P(~B) ]n收缩起来就是:nP(B|A) = P(AB) / P(A)n其实这个就等于:nP(B|A) * P(A) = P(AB)n难怪拉普拉斯说概率论只是把常识用数学公式表达了出来。n n然而,后面我们会逐渐发现,看似这么平凡的贝叶斯公式,背后却隐含着非常深刻的原理。n n