贝叶斯定理的由来
贝叶斯定理是18世纪英国数学家托马斯·贝叶斯(Thomas Bayes)提出得重要概率论理论。贝叶斯定理源于他生前为解决一个“逆概”问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的。在贝叶斯写这篇文章之前,人们已经能够计算“正向概率”,如“假设袋子里面有 N 个白球,M 个黑球,你伸手进去摸一把,摸出黑球的概率是多大”。
而一个自然而然的问题是反过来:“如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,那么我们可以就此对袋子里面的黑白球的比例作出什么样的推测”。这个问题,就是所谓的逆向概率问题。
贝叶斯定理的思想出现在18世纪,但真正大规模派上用途还得等到计算机的出现。因为这个定理需要大规模的数据计算推理才能凸显效果,它在很多计算机应用领域中都大有作为,如自然语言处理,机器学习,推荐系统,图像识别,博弈论等等。
贝叶斯定理的定义与推导
机器学习可以理解为通过观测数据(x)推测结果(y),同时学习推断规则(c),使得推断结果:
与真实值 y误差尽可能的小。举个例子,我拿到了一个硬币,并观察到了它的尺寸(x),就可以通过推断规则(c)来估计投掷结果是正面还是反面(y),下面都会举硬币的例子,我们能观测到硬币的尺寸X(大、中、小),可能的投掷结果为y:正(1)、反(0)。
1. 当我们一无所知时,如何进行推断?
假设我们第一次接触硬币正反的问题,什么都不知道。因为一无所知,只能预测正面和反面的概率都是0.5。
假设我们虽然第一次接触硬币问题,但神告诉我们这种硬币出现正面的概率 ,反面的概率是 ,在这种情况下,我们就会倾向于预测结果是正面,且预测错误的概率是
此处的p(1)=0.8和p(0)=0.2就叫做先验概率(prior probability),指的是在观测前我们就已知的结果概率分布。此处我们不需要观测硬币尺寸,就可以大胆推测硬币的正反。
2. 当我们有了更多信息,该如何利用它们?
显然,前文提到的估算方法是很不准确的,因为没有考虑到硬币的属性。而且现实情况中我们往往可以观测到硬币的一些属性,而非完全一无所知。因此,我们尝试回答:“当我观测到硬币大小时,它正面朝上的概率是多少?”用数学语言表达就是估计:
相似的,代表当我们观测到硬币属性X时,它被投掷后是反面的概率。
我们给和 起了个名字,叫做后验概率(posterior probability),指的是在观测到X后我们对结果y的估计。和p(y=1)不同,它不是计算y=1的概率,而是计算仅当X被观测到时(满足x条件时)y=1的概率。
先验概率和后验概率之间的关系是什么?简单来看,后验概率可以被看做是对先验概率的一种“更加细致的刻画和更新“,因为此时我们观测到了X,有了额外的信息。
所以后验概率比先验概率更有意义,因为引入了额外的观测信息,所以预测的准确度得到了加强。而大部分机器学习模型尝试得到的,就是后验概率。
3. 如何得到后验概率?为什么要引入贝叶斯公式?
后验概率无法直接获得,因此我们需要找到方法来计算它,而解决方法就是引入贝叶斯公式。后验概率这种表达叫做条件概率(conditional probability),一般写作 ,即仅当B事件发生时A发生的的概率,假设p(A)和p(B)都大于0,易得:
,变形后得到
,变形后得到
观察后易发现两式左边的联合概率p(AB)和p(BA)是等价的因此右边也等价,得到:=。于是我们就推出了大名鼎鼎的贝叶斯公式:
将其带入我们上文中的后验概率中去:
·公式1:正面向上的后验概率于是可以改写成
·公式2:背面向上的后验概率于是可以改写成
我们发现,在通过贝叶斯公式变形后,后验概率变得可以计算了。观察公式1和2的等号右边,发现这些概率都可以通过观测获得。
举个例子,我们假设做了100次硬币实验,有大中小三种硬币(X)。其中30次结果是反面(y=0),在反面时小硬币出现6次。在70次正面向上的情况中(y=1)小硬币出现了7次。我们此时假设X指的是小硬币,观察公式1&2:
分母p(x)代表特定观测X为小硬币出现的概率。那么小硬币的
分子上的p(X|y=0)代表当结果是反面时,小硬币的概率。这个也可以通过做实验进行统计, 。而分子上的。于是我们就可以因此计算当观测到小硬币时正面的后验概率:
同理也可计算观测到小硬币时正面的后验概率:
贝叶斯决策的预测值是选取后验概率最大的结果。在二分类问题中,也就是对比p(X|y=0)与p(X|y=1),并选择较大的那一个。因为正面的后验概率更大(0.54>0.46),因此我们认为观测到小硬币时的结果是反面的概率更大。
4. 贝叶斯决策理论有什么用?
既然贝叶斯决策理论这么好用且最优,为什么不盖过深度学习的锋芒呢?
玩笑过后,需要解释根本原因是贝叶斯决策中假设比较强,实际操作起来并不容易:
我们无法获得真实的先验概率等其他计算要件,需要通过统计学方法进行估计,存在一定的误差。比如我们上面给的例子就是一种估计,而并非直接使用概率计算。
计算所需要的概率往往是不可能的,会面临维度灾难(the curse of dimensionality)在条件概率p(X|y=0)与p(X|y=1),要考虑到观察的特征不止一个(不仅仅是大中小)可能还有重量等其他特征。而且实际计算时往往面临很多数值稳定性问题,所以朴素贝叶斯才会介绍平滑(smoothing)来解决一些特例。
综上所述,直接利用贝叶斯理论进行后验概率估算是不大实用的。但对于理论上计算边界(bound),尤其是误差的上界比较有意义。