模型比较理论(Model Comparasion)与贝叶斯奥卡姆剃刀(Bayesian Occam’s Razor)
实际上,模型比较就是去比较哪个模型(猜测)更可能隐藏在观察数据的背后。其基本思想前面已经用拼写纠正的例子来说明了。我们对用户实际想输入的单词的猜测就是模型,用户输错的单词就是观测数据。我们通过:
P(h|D)∝P(h)*P(D|h)
来比较哪个模型最为靠谱。前面提到,光靠P(D|h)(即“似然”)是不够的,有时候还需要引入P(h)这个先验概率。奥卡姆剃刀就是说P(h)较大的模型有较大的优势,而最大似然则是说最符合观测数据的(即P(D|h)最大的)最有优势。整个模型比较就是这两方力量的拉锯。我们不妨再举一个简单的例子来说明这一精神:你随便找枚硬币,掷一下,观察一下结果。好,你观察到的结果要么是“正”,要么是“反”(不,不是少林足球那枚硬币:P),不妨假设你观察到的是“正”。现在你要去根据这个观测数据推断这枚硬币掷出“正”的概率是多大。根据最大似然估计的精神,我们应该猜测这枚硬币掷出“正”的概率是1,因为这个才是能最大化P(D|h)的那个猜测。然而每个人都会大摇其头——很显然,你随机摸出一枚硬币这枚硬币居然没有反面的概率是“不存在的”,我们对一枚随机硬币是否一枚有偏硬币,偏了多少,是有着一个先验的认识的,这个认识就是绝大多数硬币都是基本公平的,偏得越多的硬币越少见(可以用一个beta 分布来表达这一先验概率)。将这个先验正态分布p(θ)(其中θ表示硬币掷出正面的比例,小写的p代表这是概率密度函数)结合到我们的问题中,我们便不是去最大化P(D|h),而是去最大化P(D|θ)*p(θ),显然θ=1是不行的,因为P(θ=1)为0,导致整个乘积也为0。实际上,只要对这个式子求一个导数就可以得到最值点。
以上说的是当我们知道先验概率P(h)的时候,光用最大似然是不靠谱的,因为最大似然的猜测可能先验概率非常小。然而,有些时候,我们对于先验概率一无所知,只能假设每种猜测的先验概率是均等的,这个时候就只有用最大似然了。实际上,统计学家和贝叶斯学家有一个有趣的争论,统计学家说:我们让数据自己说话。言下之意就是要摒弃先验概率。而贝叶斯支持者则说:数据会有各种各样的偏差,而一个靠谱的先验概率则可以对这些随机噪音做到健壮。事实证明贝叶斯派胜利了,胜利的关键在于所谓先验概率其实也是经验统计的结果,譬如为什么我们会认为绝大多数硬币是基本公平的?为什么我们认为大多数人的肥胖适中?为什么我们认为肤色是种族相关的,而体重则与种族无关?先验概率里面的“先验”并不是指先于一切经验,而是仅指先于我们“当前”给出的观测数据而已,在硬币的例子中先验指的只是先于我们知道投掷的结果这个经验,而并非“先天”。
The girl saw the boy with a telescope.
到底是The girl saw-with-a-telescope the boy这一语法结构,还是The girl saw the-boy-with-a-telescope呢?两种语法结构的常见程度都差不多(你可能会觉得后一种语法结构的常见程度较低,这是事后偏见,你只需想想The girl saw the boy with a book就知道了。当然,实际上从大规模语料统计结果来看后一种语法结构的确稍稍不常见一丁点,但是绝对不足以解释我们对第一种结构的强烈倾向)。那么到底为什么呢?
我们不妨先来看看MacKay在书中举的一个漂亮的例子:
图中有多少个箱子?特别地,那棵书后面是一个箱子?还是两个箱子?还是三个箱子?你可能会觉得树后面肯定是一个箱子,但为什么不是两个呢?如下图:
很简单,你会说:要是真的有两个箱子那才怪了,怎么就那么巧这两个箱子刚刚好颜色相同,高度相同呢?
用概率论的语言来说,你刚才的话就翻译为:猜测h不成立,因为P(D|h)太小(太巧合)了。我们的直觉是:巧合(小概率)事件不会发生。所以当一个猜测(假设)使得我们的观测结果成为小概率事件的时候,我们就说“才怪呢,哪能那么巧呢?!”
现在我们可以回到那个自然语言二义性的例子,并给出一个完美的解释了:如果语法结构是The girl saw the-boy-with-a-telecope的话,怎么那个男孩偏偏手里拿的就是望远镜——一个可以被用来saw-with的东东呢?这也忒小概率了吧。他咋就不会拿本书呢?拿什么都好。怎么偏偏就拿了望远镜?所以唯一的解释是,这个“巧合”背后肯定有它的必然性,这个必然性就是,如果我们将语法结构解释为The girl saw-with-a-telescope the boy的话,就跟数据完美吻合了——既然那个女孩是用某个东西去看这个男孩的,那么这个东西是一个望远镜就完全可以解释了(不再是小概率事件了)。
自然语言二义性很常见,譬如这句话就有二义性:
参见《决策与判断》以及《Rationality for Mortals》第12章:小孩也可以解决贝叶斯问题
到底是参见这两本书的第12章,还是仅仅是第二本书的第12章呢?如果是这两本书的第12章那就是咄咄怪事了,怎么恰好两本书都有第12章,都是讲同一个问题,更诡异的是,标题还相同呢?
注意,以上做的是似然估计(即只看P(D|h)的大小),不含先验概率。通过这两个例子,尤其是那个树后面的箱子的例子我们可以看到,似然估计里面也蕴含着奥卡姆剃刀:树后面的箱子数目越多,这个模型就越复杂。单个箱子的模型是最简单的。似然估计选择了更简单的模型。
这个就是所谓的贝叶斯奥卡姆剃刀(Bayesian Occam’s Razor),因为这个剃刀工作在贝叶斯公式的似然(P(D|h))上,而不是模型本身(P(h))的先验概率上,后者是传统的奥卡姆剃刀。关于贝叶斯奥卡姆剃刀我们再来看一个前面说到的曲线拟合的例子:如果平面上有N个点,近似构成一条直线,但绝不精确地位于一条直线上。这时我们既可以用直线来拟合(模型1),也可以用二阶多项式(模型2)拟合,也可以用三阶多项式(模型3)……,特别地,用N-1阶多项式便能够保证肯定能完美通过N个数据点。那么,这些可能的模型之中到底哪个是最靠谱的呢?前面提到,一个衡量的依据是奥卡姆剃刀:越是高阶的多项式越是繁复和不常见。然而,我们其实并不需要依赖于这个先验的奥卡姆剃刀,因为有人可能会争辩说:你怎么就能说越高阶的多项式越不常见呢?我偏偏觉得所有阶多项式都是等可能的。好吧,既然如此那我们不妨就扔掉P(h)项,看看P(D|h)能告诉我们什么。我们注意到越是高阶的多项式,它的轨迹弯曲程度越是大,到了八九阶简直就是直上直下,于是我们不仅要问:一个比如说八阶多项式在平面上随机生成的一堆N个点偏偏恰好近似构成一条直线的概率(即P(D|h))有多大?太小太小了。反之,如果背后的模型是一条直线,那么根据该模型生成一堆近似构成直线的点的概率就大得多了。这就是贝叶斯奥卡姆剃刀。
这里只是提供一个关于贝叶斯奥卡姆剃刀的科普,强调直观解释,更多理论公式请参考MacKay的著作《Information Theory : Inference and Learning Algorithms》第28章。
(待续;此文的修订版已收录《暗时间》一书,由电子工业出版社2011年8月出版。作者于2009年7月获得南京大学计算机系硕士学位,现在微软亚洲研究院创新工程中心从事软件研发工程师工作。)
原文地址:http://www.infzm.com/content/80731