Advertisement

到底什么是贝叶斯,这一篇就够了!

阅读量:

前言
这篇科普文章主要介绍了贝叶斯方法的基本原理及其应用。为了便于读者理解,在文章中我将尽量避免过多复杂的数学公式,并采用简单易懂的语言进行阐述。通过实际案例来说明问题时会更加生动具体。对于那些需要详细数学推导的部分,则会在相应章节注明参考文献来源以供进一步研究。贝叶斯方法作为一种非常通用且强大的推理工具,在应用中展现了卓越的效果

以下是托马斯·贝叶斯的详细生平信息展示:以下是维基百科上的简要介绍:托马斯·贝叶斯(Thomas Bayes)是一位英国统计学家和神学家。他于1701年出生于英国非裔家庭,在1746年去世时才39岁。贝叶斯以其在概率论和统计学领域的开创性工作而闻名,在概率统计学中有着重要的地位。他的理论后来被广泛应用于各个领域中,并且形成了现代统计学中的一个重要分支——贝叶esian统计学。贝叶定理是该理论体系的核心内容之一,在数据科学和机器学习中有着广泛应用。贝叶定理描述了条件概率之间的关系,并提供了一种计算后验概率的方法。其中P(A|B)代表在事件B发生的情况下事件A发生的概率,并可以通过以下公式计算: P(A|B) = \frac{P(B|A)P(A)}{P(B)} 其中P(B|A)是在事件A发生条件下事件B发生的概率;P(A)是事件A发生的先验概率;而P(B)则是事件B发生的总概率。

即为现代统计学中广泛应用的一种分析推理方法的基础

实际上,在贝叶斯最初的论文中只是一个针对问题的具体求解尝试,并未明确意识到其中蕴含着深刻的思想意义。然而在后来的发展中这一方法逐渐被广泛应用于各个领域并彻底改变了整个概率论的研究方向其影响延伸至概率论的所有分支甚至渗透至机器学习等前沿学科当中几乎每一个需要进行概率预测的应用领域中都能看到贝叶斯方法的身影这是因为对于一个充满不确定性的世界而言仅凭表面现象是无法全面理解其运行规律的例如在探索微观粒子如电子的行为时,默认的研究假设是不需要深入研究原子结构就能理解其运行机制这一默认假设的存在使得许多科学研究者能够在缺乏足够理论支撑的情况下继续推进相关领域的研究而我们的日常观测仅能接触到事物表面现象(类似于用一个袋子代表系统内部的状态)因此我们无法直接观察到事物的本质状态或系统的内部机制

此时我们需提供一个假设(hypothesis),即一种可能性陈述(更为严格的说法是"假设")。所谓假设当然就是不确定的东西(可能存在多种甚至无数种可能性满足当前观测结果),但也不能一无所知——具体来说我们需要解决两个问题:第一项任务是计算所有这些可能性有多大;第二项任务是找出最可能的情况是什么。第一项任务其实就是计算特定情况下的后验概率分布(对于连续的情况则需要用概率密度函数来描述)。第二项任务也就是所谓的模型比较——如果不考虑任何先验知识的话,则采用最大似然方法来确定最佳模型。

1.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),我们会发现这个句子也可以被理解为:那个女孩看见了拿着望远镜的那个男孩(即你对这个句子潜在的语言学解释是:The girl saw the-boy-with-a-telescope)。那么问题来了:我们为何能够在日常生活中迅速而准确地消除这种二义性(即你探讨的核心问题是Why humans are able to rapidly and accurately disambiguate such ambiguities in everyday communication)?这背后究竟隐藏着什么样的思维规律(即你试图揭示的认知机制是What underlying cognitive mechanism allows us to achieve this)?我们留到后面详细阐述这些关键点。

1.2 贝叶斯公式

贝叶斯公式是怎么来的?

我们还是使用 wikipedia 上的一个例子:

这所学校里有60%的学生是男生而40%则是女生。多数男生穿着长裤;而女生则一半选择长裤另一半选择裙子。通过这些信息我们能够轻松地计算"随机选取一名学生他(她)穿着长裤的概率以及穿着裙子的概率有多大"这就是前面所述的正向概率问题。然而如果你在校园中偶遇一名穿着长裤的学生(很遗憾你的观察角度不够精确你只能判断这名学生是否穿着长裤却无法确定他的性别)那么你能估算出该生为男性的概率有多大吗?

相关领域的研究发现,在《决策与判断》一书中探讨了儿童解决贝叶斯推理的能力,并在《Rationality for Mortals》第12章中进一步讨论了这一现象的具体表现。具体而言,在这一章节中讨论了如何使孩子解决贝叶斯问题。然而对于形式化表述的贝叶斯推理存在挑战但当信息以频率形式呈现时,则表现出较高的处理能力。为了便于理解我们可以将此问题重新表述为:在一个校园环境中随机行走的过程中遇到了N位穿着长裤的同学(假设无法直接观察其性别),那么这N人中女生与男生的数量各是多少?

你说呀!说起来好像很简单呢:统计一下穿长裤的人数吧,在这些人当中找出女性的数量。听起来就这么点事啊!

我们来计算一下:假设学校里的总人数为U人。其中60%属于男性,在这U人中选择着装的是男性且着长裤的人数为U乘以P(Boy)再乘以Pants给Boys的概率(即U×P(BY)+P(AP)))。在剩下的40%女性中约有一半选择了着长裤,在这U人中选择着装的是女性且着短裙的人数为U乘以P(Girl)+乘以Pants给Girls的概率(即U×P(GIRL)+×P(AP)))。将这两个数值进行比较后就能得到所需的比例

为了将答案形式化地呈现出来

P(Girl|Pants) = P(Girl) * P(Pants|Girl) / [P(Boy) * P(Pants|Boy) + P(Girl) * P(Pants|Girl)]

注意,在将该公式简化为\frac{P(Pants, Girl)}{P(Pants)}时,其实际意义即为:在穿长裤的所有人中(P(Pants)),有多少比例的人同时持有穿长裤并穿女孩装的特点(P(Pants, Girl))。这种比率直观地理解为:在穿长裤的人群中所占的比例属于女性的概率是多少?

上式中的 Pants 和 Boy/Girl 可以指代一切东西,所以其一般形式就是:

P(B|A) = P(A|B) * P(B) / [P(A|B) * P(B) + P(A|~B) * P(~B) ]收缩起来就是:

P(B|A) = P(AB) / P(A)

其实这个就等于:

P(B|A) * P(A) = P(AB)

难怪拉普拉斯说概率论只是把常识用数学公式表达了出来。

但是随着深入探索下去我们会逐渐意识到看似平平无奇的贝叶斯公式其背后隐藏着极为深刻的道理。

在经典著作《人工智能:现代方法》中的一位作者Peter Norvig曾撰写了一篇关于如何构建拼写校正器的文章。(原文在此处, 徐宥的翻译版在此处)该文章运用的就是贝叶斯方法。我们无意重复其文章内容, 而是简要地将其核心思想介绍一下, 以便使读者更好地理解其基本原理。

首先,我们需要询问的是:“问题是什么?”

当用户输入一个不在字典中的单词时,我们的任务是推断:说话者实际上想要输入的是哪个单词?在我们之前建立的形式化体系中,我们需要找出满足以下条件的最接近真实意图的那个词:它必须与当前上下文最契合,并且能够在有限的语言模型中被合理识别。因此,在这种情况下,我们不得不借助于概率模型来辅助推测最可能的真实意图。

P(我们猜测他想输入的单词 | 他实际输入的单词)

这个概率值,并找出哪个猜测单词能够使得该概率达到最大值。显然,并非所有的猜测都是唯一的;例如,在前面讨论的自然语言的歧义性例子中;这里也是如此。例如,当用户输入 'thew' 时,则可能存在两种猜测:'the' 或 'thaw'。然而,在这两个可能性中究竟哪个更为合理呢?幸运的是我们可以直接运用贝叶斯公式来计算它们各自的概率值。我们不妨将我们的多个猜测记为 h1, h2, …(h代表 hypothesis),它们都属于一个有限且离散的猜测空间 H(单词总共就那么多而已),将用户实际输入的单词记为 D(D代表 Data ,即观测数据)。于是

P(我们的猜测1 | 他实际输入的单词)

可以抽象地记为:

P(h1 | D)

类似地,对于我们的猜测2,则是 P(h2 | D)。不妨统一记为:

P(h | D)

运用一次贝叶斯公式,我们得到:

P(h | D) = P(h) * P(D | h) / P(D)

假设我们面对不同的具体猜测h1, h2, h3,…这些概率值是相同的。因此,在评估条件概率P(h1 | D)和P(h2 | D)时,我们可以省略这一固定值。简而言之:

概率P(h|D)正比于先验概率P(h)与观测数据D发生的概率P(D|h)的乘积。(注:这个符号表示‘正比于’关系而不是无穷大值;注意该符号右侧有一个微小缺口。)

该式子所蕴含的意义在于:针对观测到的数据样本X,在假设空间H中对某个假设h进行评估时,其优劣程度由以下两个关键因素共同决定:一是该假设h本身独立存在的先验概率(Prior),反映了h在所有可能假设中的初始置信度;二是该假设h能够合理生成观察数据X的可能性大小(Likelihood),即模型对数据X产生正确预测的能力。举例而言,在我们的 the 案例中,这意味着用户的意图输入 the 的几率高低主要受词汇表中 the 单词出现频率的影响,并与在误操作下将 intended input 错误识别为 thew 的可能性程度相乘的结果综合判断。

这个任务其实非常容易完成。对于每一个可能被猜测的单词来说,在这里我们需要做的是评估每个假设的概率乘以条件概率,并找出最大的那个数值。一旦找到这个最大值之后就能确定最有可能正确的假设。

一点注记:Norvig’s spelling corrector specifically extracts all known words within an edit distance of two. This approach avoids the computational expense of iterating through the entire dictionary to calculate P(h) * P(D | h), but it does so at the risk of introducing some error. However, considering human cognition, we don’t actually scan every possible word to compute posterior probabilities. Instead, from a cognitive neuroscience perspective, we first perform a bottom-up associative extraction, identifying candidate words that could plausibly match the input—this process, known as content-based retrieval, rapidly narrows down possibilities by analyzing pattern fragments in the error word (e.g., recognizing that "explanation" is the most likely candidate when "explanation" is typed incorrectly). Following this, we conduct a top-down predictive analysis to determine which candidate best fits the observed data (the error word), with predictive strength measured using Bayes' formula (P(D | h) * P(h)). Although exact computations may be simplified with heuristics, further details will explore this associative extraction process.

  1. 模型比较与奥卡姆剃刀

3.1 再次审视拼写纠正
阐述了贝叶斯拼写纠正的方法后,随之提出的一个很自然的问题就是:"采用该方法的理由是什么?"具体而言,为何要在这一特定情境下应用贝叶斯公式的逻辑依据是什么?对于前面所举的那个男生女生长裤裙子的例子来说,理解为什么在那种情况下使用贝叶斯公式是合理的并不困难。然而,在当前的具体应用场景中,这种做法是否同样适用呢?

为了解答这一问题, 一种常用的方法就是考虑以下几点: 想想看: 非常必要不可行吗? 如果你找到了另一种方法并证实其有效性, 然后将其与现有的方法对比一下, 或许能从中获得有价值的启示. 那么针对拼写错误纠正的问题你还有其他方法想试试吗?

无论如何,在解决键盘输入错误问题时,默认采用最常用的选择之一就是挑选与目标单词(如 thew)编辑距离最近的那个候选词。具体而言,在本例中 both "the" 和 "thaw" 都与目标单词 "thew" 存在相同的编辑距离(均为1)。面对这种情况该如何抉择呢?请放心吧——我们确实有办法解决这个问题。关键在于我们能够明确区分哪些字母更容易被误触并被多打出来而形成变形字(即 'the' 变为 'thew')。观察发现,在键盘布局中字母 'e' 和 'w' 位于同一排且彼此相邻(无名指抽筋导致多出一个 'w'),因此当无名指向右轻点时很容易将 'e' 错误地输入为 'w' 而生成变形字 'thew' 。另一方面,'thaw' 被误打成 'thew' 的可能性则相对较小一些,这是因为输入这两个字母所需的指头并不相邻——一个是中指,另一个是小指(从神经科学的角度来看,这种非邻近的手指操作容易造成字符错位)。确实如此,因为我们实际上是在运用最大似然估计法来确定哪个候选词更容易被误打成目标词.

而贝叶斯方法计算的是什么?是 P(h) * P(D | h) 。多出来了一个 P(h) 。我们刚才说了,这个多出来的 P(h) 是特定猜测的先验概率。为什么要掺和进一个先验概率?刚才说的那个最大似然不是挺好么?很雄辩地指出了 the 是更靠谱的猜测。有什么问题呢?既然这样,我们就从给最大似然找茬开始吧——我们假设两者的似然程度是一样或非常相近,这样不就难以区分哪个猜测更靠谱了吗?比如用户输入tlp ,那到底是 top 还是 tip ?(这个例子不怎么好,因为 top 和 tip 的词频可能仍然是接近的,但一时想不到好的英文单词的例子,我们不妨就假设 top 比 tip 常见许多吧,这个假设并不影响问题的本质。)这个时候,当最大似然不能作出决定性的判断时,先验概率就可以插手进来给出指示——“既然你无法决定,那么我告诉你,一般来说 top 出现的程度要高许多,所以更可能他想打的是 top ”)。

以上只是最大似然的一个问题,即并不能提供决策的全部信息。

最大似然法还存在另一个局限性:即使某个假设与数据高度吻合,但这并不意味着该假设就是更为优秀的选择,因为该假设本身的可能性可能就非常低。例如,在MacKay所著的《信息论:推理与学习算法》一书中,他给出了一个很有说服力的例子:-1 3 7 11 你认为这是一个等差数列更有可能吗?还是通过求解-X³/11 + (9/11)X² + 23/11得到的每一项替换前一项所得的数列更有可能?类似地,在曲线拟合问题中,平面上N个点总是可以用N-1阶多项式精确拟合。然而,当这些点近似但并不精确地沿着一条直线分布时,使用N-1阶多项式进行拟合虽然能够经过每一个点,但在实际应用中使用直线进行拟合(即线性回归)却可能导致某些点无法精确位于直线上。那么到底应该选择多项式模型还是线性模型呢?一般来说,默认情况下更低阶的多项式模型更为合理(当然前提是不能忽视"似然"P(D | h)这一因素)。其主要原因之一就是低阶多项式能够更好地平衡数据拟合能力与模型复杂度之间的关系——原因之二是因为高阶多项式的先验概率(P(h))通常会随着复杂度升高而降低(原因之三则隐藏在P(D | h)内部)。因此,出于满足前提条件的前提下,默认倾向于选择较低阶的多项式模型更为合理。这就是为什么我们通常会采用样条插值方法而非直接构造一个N-1阶多项式来完美拟合任意N个离散点的原因之一:尽管高阶多项式可以在理论上完美拟合任意数量的数据点,但在实际应用中这种做法往往会引入过高的计算复杂度和预测不确定性。

在上述分析中所蕴含的哲学思想在于:观测数据不可避免地会包含多种类型的误差。例如,在实际测量过程中(如当你用一个MM设备进行测量时),由于偶然因素导致手抖等现象发生(即产生了测量误差)。因此,在过分追求能够完美拟合观测数据的模型时

另一个显著原因在于观测结果并非仅由误差引起显得不够精确反而是真实世界中影响数据的因素过于繁杂——这些偏差并非单一因素所致而是多个因素共同作用的结果——这种情况下现有模型无法完全涵盖这些复杂性——因此单纯的误差修正已经无法满足需求——这也意味着单纯依赖现有变量进行建模将难以捕捉所有影响因素

第3.2节讨论了基于统计模型的比较方法及其在数据分析中的应用,并结合贝叶斯奥卡姆剃刀原理进行了深入探讨。

具体来说, 模型比较即在于比较哪一个特定类型的模型(即猜测)是否能够较好地隐含在观测数据之中。通过实例分析可知, 将用户的输入猜测视为模型本身, 而将用户的错误输入视为观测数据, 我们便可以通过以下方法来进行推理:

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)的情况下,单纯依靠最大似然估计可能并不足够可靠。因为使用最大似然估计时,默认猜测某个假设的先验概率可能非常低。然而,在缺乏关于先验概率的具体信息时(即我们一无所知),通常会假设所有可能猜测的先验概率相等)。在这种情况下,则不得不依赖于最大似然方法来推断参数值。值得探讨的是统计学家与贝叶斯派之间的争论:统计学家坚持让数据本身说话(即摒弃引入主观性的先验假定),而贝叶斯支持者则辩称:即使面对数据可能出现的各种偏差情况(如噪声干扰),合理的先验知识仍然能够提供稳健的结果支持(即所谓的鲁棒性)。事实证明贝叶斯学派在这一争论中取得了胜利)。其关键在于:所谓"先验"并不是指某种先天存在的固定假定(比如硬币公平与否是与生俱来的性质),而是仅仅指在观测到具体的数据之前所掌握的知识积累(例如硬币的例子中所说的"先验"只是指在投掷结果尚未被观察到之前的已有经验积累)。因此,在这种情况下所说的"prior information"实际上指的是基于已有投掷结果的经验积累而非绝对意义上的先天认知

然而

The girl saw the boy with a telescope.

I am wondering whether it is "A girl saw with a telescope the boy" or "A girl saw the boy with a telescope." From a grammatical standpoint, both structures are equally common (one might actually argue that the latter structure is slightly less common, but not by much—consider this: One could easily imagine that scenario happening in real life). However, from massive corpus statistical data, it appears that there is an infinitesimal difference in frequency between them (but still not enough to account for our strong preference for one structure over the other).
But why do we tend to prefer one structure over the other?

我们不妨先来看看 MacKay 在书中举的一个漂亮的例子:

图片

在下图中,请问箱子里共有多少个箱子?特别地,请问那棵树后面是否只放了一个箱子?或者有两个箱子?也有可能是三个箱子吗?你可能会认为树后只有一个箱子摆放物品,请问为何有人认为有两个呢?如下图所示。

图片

其实你可能会问:假如真的有两个箱子那就太奇怪了,怎么就那么巧这两个箱子的颜色和高度都完全相同呢?

从概率论的角度来看,则可将其表述为:假设h不成立,则观察到的结果D发生的可能性P(D|h)非常低(过于巧合)。基于常识可知,在一般情况下,并非所有看似不可能的事件都会发生。因此,在观察到的结果D在假设h下发生的概率极低时,则认为这一情况极为不可能出现。

我们能回顾那个自然语言二义性的问题,并提供一个令人满意的解释。如果我们将语法结构视为 The girl saw a-boy-with-a-telescope 的话,则会发现这一现象的确切原因:这个男孩手里的望远镜实则是一个被设计用于观察他的仪器——即可以被用来 'saw-with' 的设备。然而这仍然是一次看似小概率的事件吗?可他为何不拿本书呢?无论他选择什么物品都可以——为什么偏偏选择了望远镜?因此唯一的解释是:这个 '巧合' 后面必然是有某种必然性的——即如果我们把语法结构解读为 The girl saw-with-a-telescope the boy 的话,则与数据呈现出完美的吻合——既然女孩所使用的工具是用来观察男孩的物品,则使用望远镜完全能够合理地解释这一现象(而非像之前那样显得偶然)。

自然语言二义性很常见,譬如上文中的一句话:

参阅《决策与判断》一书及其配套读物《Rationality for Mortals》,其中详细讨论了第十二章的内容:人类儿童也能处理贝叶斯推理问题。

就存在二义性:是否是查阅这两本书的第12章或是仅限于第二本书中的第12章呢?如果这两本书的第12章就是同一问题的不同阐述那就未免太过巧合了;更让人感到奇怪的是这两本书都有一个完全相同的标题。

注意,在这里我们讨论的是最大似然估计法(即仅考虑P(D | h)的大小),而不考虑先验概率。通过对两个实例的研究——特别是‘树后面有个箱子’这个实例——我们可以发现,在最大似然估计中也蕴含着奥卡姆剃刀原则:树后面有多个箱子意味着模型越复杂。最简单的模型是只有一个箱子的情况。最大似然估计选择了这种较为简单的模型。

我们通常称这种现象为贝叶斯奥卡姆剃刀(Bayesian Occam’s Razor)。它作用于贝叶斯公式中的似然部分(P(D | h),而非模型本身的先验概率)。为了更好地理解这一概念,请考虑一个曲线拟合的例子:假设平面上有 N 个点近似排列成一条直线但并非完全位于直线上。这时我们可以选择使用直线、二阶多项式、三阶多项式等模型来进行拟合。然而在这种情况下究竟应该选择哪个模型呢?根据奥卡姆剃刀原则较高的多项式往往更为复杂和罕见;然而这一观点并非不容置疑:有人可能会质疑难道更高阶的多项式就一定就一定更少见吗?让我们暂且搁置先验知识;假设所有阶次的可能性均相等那么我们可以关注似然函数 P(D | h) 的表现:随着多项式的次数升高其波动程度也会随之增大直到达到八九次方时几乎呈现出明显的上下波动趋势这种情况下如果我们观察到一个八次方程完美契合所有 N 个数据点的概率会极其微小;相反如果数据点确实符合一条直线那么基于该模型生成类似数据的概率则会显著增大这就是贝叶斯奥卡姆剃刀的基本原理

此乃对贝叶斯奥卡姆剃刀这一概念进行浅层介绍,并着重于直观阐述其基本原理。如欲深入探讨其理论框架与应用细节,请参考MacKay著作《Information Theory : Inference and Learning Algorithms》中第28章的相关论述。

3.3 最小描述长度原则

贝叶斯模型比较理论与信息论有一个有趣的关联:

P(h | D) ∝ P(h) * P(D | h)

两边求对数,将右式的乘积变成相加:

ln P(h | D) ∝ ln P(h) + ln P(D | h)

很自然地将问题转化为求解 \ln P(h | D) 的最大值。注意到 \ln P(h) + \ln P(D | h) 实际上等价于衡量模型 h 所需的信息量与数据 D 在此模型下的信息量之和。通过最小化这一总信息量就能确定最优的假设。

具体而言,在确定一个模型的编码长度时;同时,在数据以该模型中的表示方式进行编码时,则面临一个问题。对于进一步了解相关内容,读者可参考Mitchell所著《Machine Learning》中的第6.6节;另外一种相关讨论也可见Mackay在第28.3节中所做的分析和探讨

3.4 最优贝叶斯推理

推理通常分为两个阶段:第一阶段是根据观察到的数据构建模型;第二阶段则利用此模型预测未知事件发生的概率。此前我们主要关注的是在给定观测数据下表现最佳的那一个模型;然而,在实际应用中,尽管某个特定候选模型可能表现最佳(例如第一个候选方案的概率值为0.5),但其他候选方案仍然具有不可忽视的价值(例如第二个候选方案的概率值为0.4)。仅仅因为某一方案的概率稍高一些就将其独享预测结果的做法显得不够全面(第三个候选方案仅提供0.1的概率)。为了实现更为全面的预测目标,在贝叶斯框架下将各候选方案对未知事件发生概率的预测结果进行加权平均(其中权重即对应方案的概率值)是一种更为民主和科学的做法;这种最优贝叶斯推理方法被认为是理论上的至高点;因为它综合考虑了所有可能的情况并据此得出结论

不过实际上我们基本不会采用这一框架。原因在于:一方面由于计算模型可能耗时较长;另一方面此外还存在一种情况即存在无限多个模型(此时需考虑所有可能的模型的概率分布)。其结果依然耗时显著。因此可将其视为理论基准。

  1. 无处不在的贝叶斯

以下我们再进一步列举几个实例来体现贝叶斯方法的广泛应用,在机器学习领域中尤其突出其应用价值。由于缺乏经济学科的背景知识,我很难在经济学领域找到更多相关案例。

4.1 中文分词

贝叶斯算法是机器学习的关键工具之一,在多个领域均展现出显著价值。例如,在中文分词技术中,贝叶斯算法发挥了重要作用。吴军在《数学之美》一书中深入探讨了中文分词的基本原理,请您关注本文将重点阐述其核心概念。

分词问题的描述为:给定一个句子(字串),如:

南京市长江大桥

如何对这个句子进行分词(词串)才是最靠谱的。例如:

南京市/长江大桥

南京/市长/江大桥

这两个分词,到底哪个更靠谱呢?

我们采用贝叶斯公式来精确地建模这个问题,并令 X 代表字符串(句子),Y 代表词组(一种特定的分词假设)。我们的目标是找到使 P(Y|X) 达到最大值的 Y ,通过应用贝叶斯定理即可获得这一结果。

P(Y|X) ∝ P(Y)*P(X|Y)

用自然语言来说就是:这种分词方式(即所谓的词串)的概率等于这个特定的词语序列生成我们观察到的那个句子的概率。显而易见的是:我们可以近似地将 P(X|Y) 视为恒等于 1 的情况。这是因为,在任何一种假设性的分词方案下所生成的原始句子都是精确无误地被重建出来的(我们只需要去除词语之间的分割符号即可)。这样一来,则问题就转化为寻找能够使 Y 的边缘概率 P(Y) 达到最大的那种特定的词语分割方案——换句话说,则是要找到一种能够使整个词语序列所构成的句子的概率最大化的方式进行词语分割。那么问题来了:如何具体计算一个特定词语序列的概率呢?

W1, W2, W3, W4 …

的可能性呢?我们知道,根据联合概率的公式展开:P(W1, W2, W3, W4 …) = P(W1) * P(W2|W1) * P(W3|W2, W1) * P(W4|W1,W2,W3) * … 于是我们可以通过一系列的条件概率(右式)的乘积来求整个联合概率。然而不幸的是随着条件数目的增加(P(Wn|Wn-1,Wn-2,…,W1) 的条件有 n-1 个),数据稀疏问题也会越来越严重,即便语料库再大也无法统计出一个靠谱的 P(Wn|Wn-1,Wn-2,…,W1) 来。为了缓解这个问题,计算机科学家们一如既往地使用了“天真”假设:我们假设句子中一个词的出现概率只依赖于它前面的有限的 k 个词(k 一般不超过 3,如果只依赖于前面的一个词,就是2元语言模型(2-gram),同理有 3-gram 、 4-gram 等),这个就是所谓的“有限地平线”假设。虽然这个假设很傻很天真,但结果却表明它的结果往往是很好很强大的,后面要提到的朴素贝叶斯方法使用的假设跟这个精神上是完全一致的,我们会解释为什么像这样一个天真的假设能够得到强大的结果。目前我们只要知道,有了这个假设,刚才那个乘积就可以改写成:P(W1) * P(W2|W1) * P(W3|W2) * P(W4|W3) … (假设每个词只依赖于它前面的一个词)。而统计 P(W2|W1) 就不再受到数据稀疏问题的困扰了。对于我们上面提到的例子“南京市长江大桥”,如果按照自左到右的贪婪方法分词的话,结果就成了“南京市长/江大桥”。但如果按照贝叶斯分词的话(假设使用 3-gram),由于“南京市长”和“江大桥”在语料库中一起出现的频率为 0 ,这个整句的概率便会被判定为 0 。从而使得“南京市/长江大桥”这一分词方式胜出。

一点注记:有人可能会产生疑问:难道我们人类也是基于那些简单假设来进行推理活动吗?而实际上,则不然。事实上,在统计机器学习方法中所涉及的数据往往位于相当浅层(shallow)的层面,在这个层面里机器学习只能捕捉到表面上的一些现象。任何具备科学思维的人都知道:越往表层深入发展时,世界就越加复杂多变。从机器学习的角度来看,在特征数量大大增加的情况下会产生所谓的"维度灾难"(high-dimensional curse),数据变得极度稀疏以至于难以应用。然而我们人类的认知水平显然比之更高深得多。为了避免数据稀疏性问题出现我们不断开发各种工具(最典型的例子就是显微镜),以便能够深入到更深层的事物层面去观察事物的本质联系而不是仅仅停留在表面现象上进行统计归纳工作。举一个具体的例子:通过对大规模语料库的数据分析研究发现:所有的"他"都不会穿内衣(bra),而所有的"她"则都会穿内衣。然而作为男人我们完全无需依赖任何统计学习方法就能得出这一结论因为深层规律决定了根本不存在穿内衣的情况。至于机器学习系统是否具备类似人类这样的推理能力这仍然是人工智能领域尚未解决的经典难题至少在该领域内尚未有突破性进展之前声称统计学习方法能够终结科学研究的说法纯属外行言论无半点科学依据可言

4.2 统计机器翻译

统计机器翻译因其简便性而广受欢迎,在无需人工干预规则设定的情况下实现了快速应用,并迅速确立为机器翻译领域的事实标准。而其核心采用了贝叶斯方法作为支撑。

那么问题是怎样的?统计机器翻译的问题表现为:对于一个输入句子 e ,其潜在的外文译本 f 中最合适的候选者是哪一个?也就是我们需要确定 P(f|e) 的值。一旦涉及条件概率的情形,则通常会采用贝叶斯方法。

P(f|e) ∝ P(f) * P(e|f)

这个式子的右端很容易解释:那些先验概率较高,并且更可能生成句子 e 的外文句子 f 将会胜出。我们只需简单统计(结合上面提到的 N-Gram 语言模型)就可以统计任意一个外文句子 f 的出现概率。然而 P(e|f) 却不是那么好求的,给定一个候选的外文局子 f ,它生成(或对应)句子 e 的概率是多大呢?我们需要定义什么叫 “对应”,这里需要用到一个分词对齐的平行语料库,有兴趣的可以参考 《Foundations of Statistical Natural Language Processing》第 13 章,这里摘选其中的一个例子:假设 e 为:John loves Mary 。我们需要考察的首选 f 是:Jean aime Marie (法文)。我们需要求出 P(e|f) 是多大,为此我们考虑 e 和 f 有多少种对齐的可能性,如:

John (Jean) loves (aime) Marie (Mary)

主要指其中一种(最为可靠的)对齐方式。那么为什么需要进行对齐操作呢?因为一旦采用了特定的对齐方案后,就可以相对简便地计算出在该对齐方案下 P(e|f) 的概率值。具体来说,则只需进行相应的概率计算:

P(John|Jean) * P(loves|aime) * P(Marie|Mary)

即可。

接着我们逐一考察所有可能的对齐方案,并计算每种对齐方式对应的翻译概率总和。从而得出整个条件概率 P(e|f) 的具体数值。

一两点注记:还是那个问题:难道我们人类真的是要用那种方式进行翻译吗?极其不可能。很难想象我们的智慧会这么低效以至于无法处理三位数乘法这样的简单运算。根据认知神经科学的认识,在语言处理过程中很可能先是从句子到语义(一个层层向上(bottom-up)抽象的folding过程),然后是从语义根据目标语言的语法将其展开成目标语言(一个层层向下(top-down)的具体化unfolding过程)。如何实现这一过程在理论上是可行的仍然是一个待解决的问题。(我们看到很多地方都有bottom-up/top-down这样一个对称的过程,实际上有人猜测这正是生物神经网络所遵循的原则,在视觉神经系统的研究中尤其得到了证实。Hawkins在《On Intelligence》中提出的HTM(Hierarchical Temporal Memory)模型正是基于这一原则构建起来的。)

4.3 贝叶斯图像识别,Analysis by Synthesis

贝叶斯方法是一种广泛适用的推理框架。其基本思想可表述为Analysis by Synthesis(基于合成分析的方法)。2006年的《认知科学进展》期刊上有一篇论文详细探讨了使用贝叶斯推理解释视觉识别问题;通常情况下,“一图胜千言”,而下文将附有来自这篇论文的图表。

图片

视觉系统首先识别图形的边缘和角落特征,然后利用这些特征从底层开始驱动高层抽象概念(如E、F或等号)的学习与生成过程,在随后进行一个自顶向下的验证步骤以确定最能解释所观察图像的概念

4.4 EM 算法与基于模型的聚类
聚类是一种无指导的机器学习问题,问题描述:给你一堆数据点,让你将它们最靠谱地分成一堆一堆的。聚类算法很多,不同的算法适应于不同的问题,这里仅介绍一个基于模型的聚类,该聚类算法对数据点的假设是,这些数据点分别是围绕 K 个核心的 K 个正态分布源所随机生成的,使用 Han JiaWei 的《Data Ming:Concepts and Techniques》中的图:

图片

图中分为两组数据群,在二维空间中呈现出明显的双峰特征。
我们的目标是根据给定的数据群确定这两个正态分布的核心位置及其参数。
值得注意的是这实际上是一个连续型贝叶斯问题。
然而与之前的不同之处在于答案具有无限的可能性。
我们只有当能够明确划分哪些点属于同一个数据群时才能对这些分布参数做出可靠的估计。
目前的情况是两个数据群混杂在一起我们无法立即识别出哪个点属于第一个分布哪个属于第二个。
这种相互依赖的关系导致了一个难以解决的悖论:鸡生蛋还是蛋生鸡?
在这种情况下总有一方必须暂时放弃严格的推理逻辑随意设定一个初始值以打破这种僵局随后根据对方的变化不断调整自己的估计值形成一种迭代的过程最终达到一种平衡状态这就是EM算法的基本思想。

EM全称是Expectation-Maximization算法,在解决聚类问题时我们通常会先随机初始化两个正态分布的基本参数:如它们均值的位置以及方差大小等初始值设定。随后通过迭代计算的方式对数据进行分类归类处理:即根据现有模型将每个数据点归类到最有可能对应的分布中去这一操作被称为Expectation阶段;接着基于这些分类结果重新估计各分布模型的具体参数这一过程则被定义为Maximization阶段;如此反复交替执行分类与参数估计的过程直至模型参数收敛稳定为止这一完整的迭代优化流程中还融合了贝叶斯推理的思想特别是在模型更新阶段通过已有数据样本重新推断各概率分布的具体参数设置

4.5 最大似然与最小二乘

图片

对于学过线性代数的人来说,大致上熟悉的是经典的最小二乘法用于进行线性回归。问题可以表述为:在平面中给出N个点时(为了方便起见, 我们可以假设我们试图用一条直线来最佳拟合这些点——将回归视为一种特殊的拟合过程, 允许存在误差), 找到一条最能代表这些点的直线.

一个不断涌现的问题是关于如何确定最佳标准的问题。对于每个点i来说,在坐标平面上其位置坐标为(Xi, Yi)。假设存在一条直线y = f(x),那么对于每一个具体点(Xi, Yi),它与该直线上对应点的预测值f(Xi)之间的垂直距离即为ΔYi=|Yi – f(Xi)|。最小二乘法的目标就是找到这样一条直线使得所有观测值与预测值之间垂直距离平方和达到最小;尽管统计学界对于选择平方误差而非绝对误差之和作为目标函数缺乏明确解释(如采用绝对误差可能会导致计算上的复杂性),然而贝叶斯方法则能够对此提供了一个令人满意的解释。

我们假设对于坐标 Xi 的预测值 f(Xi),是基于直线得出的最优估计。这些偏离预测值 f(Xi) 较远的数据点被认为包含有噪声(noise),这些噪声导致这些点偏离了一条理想化的直线。我们可以合理地认为,在距离预测直线越远的位置上出现的概率就越低。具体来说,在距离预测值 ΔYi 的大小决定其出现概率多少时,我们可以使用正态分布曲线来进行模拟描述。这个正态分布曲线以 Xi 对应的预测值 f(Xi) 为中心位置,在此中心位置上每个可能对应的实际纵坐标 Yi 发生的概率与其误差平方成指数关系。

现在我们回到问题的贝叶斯方面,我们要想最大化的后验概率是:

P(h|D) ∝ P(h) * P(D|h)

又一次 encounter Bayes' theorem. 在这里, h代表一条特定的直线, 而D则表示这N个数据点. 我们要寻找一条直线h, 使它的先验概率P(h)与后验概率P(D|h)的乘积最大化. 很明显, 先验概率P(h)在所有可能的直线上都是均匀分布的, 因此我们只需关注后验部分P(D|h). 这一项表示这条直线生成这些数据点的可能性大小. 根据前面所述, 每个数据点(Xi,Yi)被生成的概率为EXP[-(ΔYi)^2]乘以一个常数. 因此, P(D|h)=P(d1|h)P(d2|h)… 即假设每个数据点都是独立生成的过程. 因此,N个数据点被这条直线生成的概率即为EXP[-(ΔY1)2]*EXP[-(ΔY2)2]*… 等于EXP{-[(ΔY1)2+(ΔY2)2+(ΔY3)^2+…]} 最大化这个生成概率等价于最小化各个预测值与实际值之间平方差之和(即(△y₁)²+(△y₂)²+(△y₃)²+…)。熟悉这个过程吗?

  1. 朴素贝叶斯方法

作为一种独特的方法,在机器学习领域具有其独特的特点。因此,在介绍该方法时, 我们可以选择一个具体的场景来进行阐述, 例如, 以邮件分类任务为例进行详细讲解。

5.1 贝叶斯垃圾邮件过滤器

问题是什么?问题是给定一封电子邮件判断其归属类别是垃圾邮件还是普通邮件。为了实现这一目标我们参考以往经验将这封电子邮件标记为D其中D由N个单词构成。我们需要建立一个分类模型将垃圾邮件标记为h+而将普通邮件标记为h-从而实现对未知来信的自动识别功能

P(h+|D) = P(h+) * P(D|h+) / P(D)

P(h-|D) = P(h-) * P(D|h-) / P(D)

其中先验概率P(h+)和P(h-)相对容易计算,在实际应用中可以通过统计邮件库中垃圾邮件与正常邮件的数量比例即可轻松获得。然而条件概率P(D|h+)的计算较为复杂,在这种情况下条件概率P(D|h+)等于所有这些单词同时出现的概率。由于D包含N个特定单词d1、d2、d3等,在这种情况下条件概率P(D|h+)等于所有这些单词同时出现的概率。我们又一次遇到了数据稀疏性问题——因为在现实中每封邮件都是独一无二的……瞧,在贝叶斯分类器中如何处理这种情况呢?结果呢?

我们具体化了条件概率链式法则中的联合概率表达式 P(d_1,d_2,\dots,d_n|h^+) ,将其分解为 P(d_1|h^+)P(d_2|d_1,h^+)P(d_3|d_2,d_1,h^+) 等一系列乘积形式。对这个式子还记得吗?在这里基础上,我们采用了更为激进的假设——即认为每个特征词 d_i 都与前一个特征词 d_{i-1} 完全条件无关。这样一来,原来的复杂乘积表达式就可以简化为只需统计每个单词在垃圾邮件中出现的概率即可计算的形式:即 P(d_1|h^+) \times P(d_2|h^+) \times P(d_3|h^+)\times \dots 。这就是所谓的条件独立假设,在朴素贝叶斯模型中正是这一简化的根本所在。而计算起来异常简便——只需统计每个单词在垃圾邮件中出现的频率即可完成任务。关于贝叶斯垃圾邮件过滤的相关内容可以参考此处链接提到的其他参考资料。

一点思考:为何会出现这种数据稀疏性问题?归因于统计学习方法的工作层次较为浅显。尽管世界上的单词总量虽然没有增加但却极为庞大,在这一背景下句子的组合方式同样千变万化。更不用说一篇文章了,在这种情况下每篇文章都是独一无二的存在。由于文章数目是无限的,在这种层次上进行统计必然会对数据稀疏性产生困扰。A single principle(单一原则)underlies this understanding.A single principle(单一原则)underlies this understanding.

5.2 为什么朴素贝叶斯方法令人诧异地好——一个理论解释

该方法基于条件独立性的假设看似简单甚至过于简化,但其实际表现却异常出色,这让人感到难以理解。举例而言,为何认为单词的概率仅受其前后有限词汇的影响就能准确预测其出现概率?更为关键的是,某些情况下这种现象确实存在:即某个单词的概率不仅受前几个词的影响,有时甚至会受到整个上下文段落的相关信息影响。那么为何该方法在实际应用中与决策树等模型相媲美?对此问题提出了解释,并确定了朴素贝叶斯与非朴素贝叶斯等效的具体条件:核心在于,在各类别间这些独立性假设计算出的概率分布较为均匀;即使分布不均衡,在综合考虑所有因素后对最终结果的影响往往可以相互抵消。

  1. 层级贝叶斯模型

图片

层级贝叶斯模型是现代贝叶斯方法中的重要组成部分之一。前面所讨论的贝叶斯方法主要关注于同一层次上的各个因素之间的统计推理过程,在哲学层面而言具有一定的局限性。而层次贝叶斯模型则在这一基础上进行了深化,在分析框架上多了一层维度,并将各因素背后存在的潜在影响纳入考虑范围之内。举一个典型例子:假设有N枚来自同一工厂生产的硬币,我们分别对每枚硬币独立地进行抛掷一次试验,并基于这些观察结果来推断每个硬币正面出现的概率θ值(即每次抛掷结果Xi)。当采用最大似然估计时,每个硬币的出现正面的概率θ只能取1或0值(如前所述)。然而,在贝叶斯框架下我们通常假设每个硬币对应的先验分布通常假设为Beta分布形式。具体而言,在观察到一系列试验结果的基础上,并非直接估计每个硬币自身的参数θ值(如每次抛掷结果Xi服从以θ为中心的正态分布),而是进一步认为这些参数本身也是随机变量,并遵循以超参数Ψ为中心的Beta分布规律变化。这种层级结构清晰地展示了各个因素之间的因果关系网络,并且这种关系可能会延伸至更高层潜在变量的影响范围内。

6.1 隐马可夫模型(HMM)

图片

在吴军的《数学之美》系列文章中探讨了隐马可夫模型(HMM),它实际上是一种简单的层级贝叶斯体系结构。

那么如何根据接收到的信息推断说话者的意图呢?我们借助隐含马尔可夫模型(Hidden Markov Model)这一工具来解决这些问题。以语音识别为例,在接收一组语音信号o₁, o₂, o₃时,则需要根据这组信号推测出发送的句子s₁, s₂, s₃等。显然,在所有可能的句子序列中我们应该找到最有可能出现的那个序列。用数学语言来说就是在已知o₁, o₂, o₃,…的情况下我们需要找到一个使得条件概率P(s₁, s₂, s₃,… | o₁, o₂, o₃…)达到最大值的句子序列s₁, s₂, s₃,…

吴军的文章中这里省略未提及的内容是这些变量:s_1s_2s_3等。这些变量的生成概率不仅依赖于一组特定的参数控制,并且由这一组参数所决定的是它们所构成的一个马可夫链的先验生成概率。令这一组参数标记为 \lambda ,则我们需要计算的概率表达式为 P(S | O,\ \lambda) ,其中 O 代表 o_1,\ o_2,\ o_3,\ \dots 序列;而 S 则代表 s_1,\ s_2,\ s_3,\ \dots 序列

通常情况下,在实际应用中我们遇到的概率往往难以直接计算。通过间接的方法对其进行估算。考虑到概率难以直接计算时,在应用贝叶斯定理后可忽略常数因子,并将其转换为更为简洁的形式。

P(o1,o2,o3,…|s1,s2,s3….) * P(s1,s2,s3,…)

其中

P(o₁,o₂,o₃,…|s₁,s₂,s₃….) 定义为当输入序列s₁, s₂, s₃,…时输出o₁, o₂, o₃,…的概率。其中P(s₁, s₂, s₃,...)表示输入序列s₁, s₂, s₃,...成为一个合乎语法的句子的概率。因此该公式的意义在于计算发送信号为s₁, s₂, s₃,...这一特定数列的概率,并将其与该数列能够构成一个合乎情理句子的可能性相乘从而得到最终的概率值

此处,s_1, s_2, s_3,\ldots本质上是否能构成独立的句子主要取决于参数\lambda这一语言模型。换言之,则是说发出的语音信号实际上反映了使用者想要表达的内容。然而,在这种情况下,每个想要表达的内容又都必须基于其自身的先验概率。

全部评论 (0)

还没有任何评论哟~