神奇的贝叶斯理论

概率论只不过是把常识用数学公式表达了出来。(From Laplace)

历史

根据维基,所谓的贝叶斯方法起源于逆向概率问题。正向概率问题很常见,如「已知一个袋内有 N 个白球和 M 个黑球,伸手进去摸一球,问摸出黑球的概率几何」;而反过来,一个相应的逆向概率问题可以是「现不知袋中黑白球的个数,在经过多次取出放入后,根据取出球的颜色求袋中黑白球的比例」。可见,逆概问题即,不知实际模型如何,但知观测数据怎样,求模型。

对于逆概问题,我们可以先给出若干个假设,然后求出不同假设的可能性(假设本身成立的概率,即先验概率)和可靠性(由假设得到观测的概率,即似然),其中最可能又可靠的假设即为所求。

第一个例子

在使用 Office Word 写作时,我们会发现一个非常人性化的功能,叫拼写纠正。

在攻城狮实现这一功能时就涉及到一个概率问题,比如用户输入 thwn,那么可以猜测用户本意输入 than 或者 then,讲道理,在显示这两个纠正选项时应该按可能性排序,那么问题来了,到底哪个纠正选项可能性更大呢?怎么看起来好像两个选项的可能性差不多呢?

第二个例子

下面展示的是自然语言的歧义性:

1
The girl saw the boy with a telescope.

作者想通过这句话表达什么意思呢?这个句子该如何理解?「那个女孩用望远镜看见了那个男孩 (The girl saw-with-a-telescope the boy) 」?也可以吧,但有没有另一种可能?「那个女孩看见了那个拿着望远镜的男孩 (The girl saw the-boy-with-a-telescope) 」怎样呢?

那么问题也来了,为什么我们大部分人在这两种理解中优先选择了前者?其实,我们的选择过程中就隐藏着一个贝叶斯理论的应用。

第三个例子

这里在平面上给出 $N$ 个点,求一个函数拟合这些离散点。

贝叶斯公式

贝叶斯理论有一个很简单的公式,绝不是「非专人所不能理解」的那种:

$$P(B|A)=\frac{P(A|B)\times P(B)}{P(A)}=\frac{P(A|B)\times P(B)}{P(A|B)\times P(B)+P(A|\sim B)\times P(\sim B)}$$

也就是,$P(B|A)=\frac{P(AB)}{P(A)}$ 或者 $P(B|A)\times P(A)=P(AB)$。

是的,贝叶斯理论就是一个简单而又深刻的生活道理:两件事同时发生的可能性,就是一件事发生的可能性和一件事发生的情况下另一件事发生的可能性的乘积。

基本的贝叶斯公式给出了一个启示:我们现在有一个观测数据 A 和一个假设模型 B,对于不同的假设模型都有一个恒定不变的观测数据的可能性 $P(A)$(在只有实际模型才会影响观测结果的提前下,可认为这个概率为 1),那么 $P(B|A)\propto P(B)\times P(A|B)$,即这个观测数据是由这个假设模型产生的的可能性 $P(B|A)$,由这个模型本身的可能性 $P(B)$(我们常常忽略这一点)和这个模型产生这个数据的可能性 $P(A|B)$(我们常常用拟合度来表征)的乘积决定。这里注意 $P(B|A)$ 和 $P(A|B)$ 的区别,前者是已有数据 A 时模型 B 存在的可能性,后者是在模型 B 的基础上获得数据 A 的可能性。

也就是说:

对于给定的观测数据,一个假设模型是好是坏,取决于「这个假设模型本身独立的可能性大小(先验概率,Prior )」和「这个假设模型生成我们的观测数据的可能性大小(似然,Likelihood )」的乘积。

奥卡姆剃刀与最大似然

我们总是希望透过表象看本质,却又往往容易被表象所迷惑而看不到本质。总结起来,在这里迷惑我们的就是奥卡姆剃刀或最大似然。

奥卡姆剃刀

回到前述拼写纠正的例子(第一个例子),为什么我们觉得两个猜测 than 或 then 是等可能的?因为这两个单词的常见程度相近。在这里,迷惑我们的就是奥卡姆剃刀。

奥卡姆剃刀认为,先验概率最大的模型具有最大的优势,即 $P(B|A)\propto P(B)$。一个假设模型越平凡,越常见,它本身的概率越大,这个模型就越好,越可能是隐藏在观测数据背后的真实模型。

是的,我们很容易发觉,奥卡姆剃刀太片面了。就在上述的拼写纠正的例子中,两个猜测的常见程度相近,先验概率约等,这可让有强迫症的攻城狮们如何是好?就算两个纠正选项的好坏程度相同,也不能把两个排布在候选列表的同一个位置啊。对,这就是一个奥卡姆剃刀应用失败的例子,因为它回答不了我们的问题,比较不出两个假设模型的好坏差异(那么一个问题,如何才能合理地对这两个猜测作出一个优胜劣汰的评断呢?留给后面作讨论)。

对于上述的函数拟合的例子(第三个例子),奥卡姆剃刀告诉我们,要用最常见最普通的函数,也即一阶多项式(直线)。虽然在这些离散点趋于共线的情况下,奥卡姆剃刀给了我们一个简单直接而又合理的方案,这时的直线拟合已经能我们满意了;但对于离散点趋于呈拋物线,甚至更高阶多项式分布的情况下,我们就不能在奥卡姆剃刀的指导下再去用一条直线去拟合离散点了。在第一种情况下,直线并不能保证精确地穿过所有离散点,即数据还不能完美匹配,但我们却觉得这样做还是可靠的,为什么呢?因为实践告诉我们,在一个直线上随意地取一些离散点,在拾取这些点位坐标时存在着不可避免的观测误差,这些误差会导致拾取到的离散点不再共线。

最大似然

回到前述语言歧义的例子(第二个例子),为什么我们很习惯地就形成了第一种理解呢?因为采用第二种语句结构不太可能恰好形成如上的表述。在这里,迷惑我们的又是最大似然。

最大似然认为,似然程度最大的模型具有最大的优势,即 $P(B|A)\propto P(A|B)$。一个假设模型越可能生成我们的观测数据(常用假设模型的仿真数据和观测数据的契合程度来表征),这个模型就越好。

在上述的语言歧义的例子中,若作者真正想表述的是第一种理解,那么这个 telescope 就必须是一个可以「目光透过」的东西,即第一种语句结构形成如上表述(从模型 see-with-sth. sb. 到观测 see the boy with a telescope)的可能性就大概是,从一堆可以「目光透过」的东西中取出 telescope 的可能性;若是第二种理解(从模型 see sb.-with-sth. 到观测 see the boy with a telescope),男孩手里的几近是任何可以随身的东西,这种语句结构的可能性就差不多为,从大千世界的琳琅满目的几乎不受限定的东西中取出 telescope 的可能性,即接近零。就这样,最大似然诱导我们悄悄地做出了选择。

这里扩展一下,如果把前述语句中的 telescope 换成 telephone 又该如何理解?我们的直觉很快告诉我们,应该是第二种理解。继续,为什么呢?因为此时第一种语句结构是要从一堆可以「目光透过」的东西中取出 telephone,这种可能性直直地为零,telephone 明明不能「目光透过」的嘛。

是的,该轮到批评最大似然了,即使它在语言歧义的例子中应用得很成功(那么又一个问题,为什么它在这里这么成功?后面再讨论)。

同样地,对于函数拟合的例子(第三个例子),最大似然告诉我们,要用与离散点拟合效果最好的函数,也即 $N-1$ 阶多项式。虽然在离散点的离散程度很大的情况下,这样拟合会可能得到一个比较合理的方案;但在离散点本就近似共线的情况下,再用高阶多项式去拟合,就不大合适了。在第二种情况下,高阶函数曲线能精确地穿过所有离散点,即数据能完美匹配,但我们却觉得这样做并不可靠,为什么呢?因为实践告诉我们,从一个高阶函数曲线上随意地取一些离散点,而这些点恰好近似共线的可能性却几乎为零。就是最大似然所谓的数据过配(overfitting)问题,即过分地寻求能够完美解释观测数据的模型。

这里告诉我们,数据过配不好,但从理论上来说,为什么不好?因为实践中数据的观测存在误差,在我们离散取点拾取坐标时会引入人为误差,如果过分地追求数据完美匹配,也就在用模型解释观测的同时,努力地用部分模型贡献去解释这些误差,而误差却不是由模型产生的,这就会导致我们的假设模型偏离真实模型。

问题的最终解决

对于由观测到模型的问题,前面介绍了两种简单方便却都以偏盖全的方法。到这里,问题的最终解决,就要依靠贝叶斯理论了。

第一个例子

前面提到,奥卡姆剃刀在拼写纠正中应用失败,那我们在这里应该如何安排两个猜测 than 和 then 在候选列表里的先后顺序呢?随便,谁先谁后都一样?那不科学。非要排个座次?那就需要贝叶斯理论出场了。

在这个例子中,奥卡姆剃刀说,两个猜测的先验概率基本相同,那我们再考虑一下两个猜测的似然程度。经常使用键盘就会发现,e 键比 a 键离 w 键更近,我们更可能在手指抽动的时候将 e(而非 a)错敲成 w,所以相比之下,thwn 更可能是 then 的错误拼写,从模型 then 到观测 thwn 的可能性比从模型 than 到观测 thwn 的可能性更大,也就是说,then 的似然程度更高。根据贝叶斯理论 ,先验概率相同,似然越大,二者相乘,则模型越好。进一步地,我们就可以心安理得地在候选列表里将 then 安排在 than 的前面了。

第二个例子

前面说到,最大似然在语言歧义的例子中应用得很成功,但是为什么它在这里就成功了呢?其实也还是因为贝叶斯理论。

在这个例子中,最大似然说,两种语句结构的似然程度不同,不过我们还是来考虑一下两种语句结构的先验概率。咦,两种语句结构(see-with-sth. sb. 和 see sb.-with-sth.)所表达的场景的常见程度差不多唉,那就是说它俩的先验概率也基本相同呀。对,在先验概率 $P(B)$ 相同的情况下,贝叶斯理论 $P(B|A)\propto P(B)\times P(A|B)$ 也就退化成了最大似然 $P(B|A)\propto P(A|B)$。所以,最大似然才会在这个例子中应用得如此成功。

第三个例子

我们已经在前面看到了,在函数拟合时,既不能单纯地采用奥卡姆剃刀也不能单纯地采用最大似然来指导我们的工作。这时候,就得祭出大杀器贝叶斯理论了。

函数拟合这个例子比较复杂,我们应该始终秉承贝叶斯理论的思想,即同时考虑模型的先验概率和似然程度。在离散点分布有一定规律时,先用不同阶的多项式拟合,计算得到拟合误差(似然程度),再在可容忍的误差范围内的不同阶中选择更低阶的多项式(先验概率)。

至此,贝叶斯理论就完美解决了上述所有困扰我们的问题。

---------- 文结至此 静待下章 ----------