必赢56net手机版_亚洲必赢手机入口_必赢亚州手机网站
做最好的网站

贝叶斯方法的简要学习,数据开采之贝叶斯

原标题:当贝叶斯,奥卡姆和香农一起来定义机器学习

贝叶斯推理

贝叶斯法则

朴素贝叶斯分类器

应用:文本分类

各位小伙伴们大家好,前些日子,我看了一些关于贝叶斯方法的文章,其中以今天这一篇文章觉得最好,不仅讲的简单通俗易懂并且很多的方法都有概括到这是一篇关于贝叶斯方法的科普文,我会尽量少用公式,多用平白的语言叙述,多举实际例子。更严格的公式和计算我会在相应的地方注明参考资料。贝叶斯方法被证明是非常general且强大的推理框架,文中你会看到很多有趣的应用。所以今天我在征求到作者同意后对这个文章进行了转载,并且也加上了一些自己的理解方式,也请大家多多指教!

必赢56net 1

1. 贝叶斯推理

--提供了推理的一种概率手段

--两个基本假设:

(1)待考察的量遵循某概率分布

(2)可根据这些概率以及观察到的数据进行推理,以作作出最优的决策

--贝叶斯推理对机器学习十分重要:

        为衡量多个假设的置信度提供了定量的方法

        为直接操作概率的学习算法提供了基础

        为其他算法的分析提供了理论框架

--机器学习的任务:在给定训练数据D时,确定假设空间H中的最佳假设

        最佳假设: 在给定数据D以及H中不同假设的先验概率的有关知识下的最可能假设

--概率学习系统的一般框架

必赢56net 2

目录:

倒计时8**天**

2. 贝叶斯法则

2.1 基本术语

D :训练数据;

H : 假设空间;

h : 假设;

P(h):假设h的先验概率(Prior Probability)

        即没有训练数据前假设h拥有的初始概率

P(D):训练数据的先验概率

        即在没有确定某一假设成立时D的概率

P(D|h):似然度,在假设h成立的情况下,观察到D的概率;

P(h|D):后验概率,给定训练数据D时h成立的概率;

2.2 贝叶斯定理(条件概率的应用)

必赢56net 3

公式

        后验概率正比于P(h)和P(D|h)

        反比于P(D):D独立于h出现的概率越大,则D对h的支持度越小

2.3 相关概念

极大后验假设MAP:给定数据D和H中假设的先验概率,具有最大后验概率的假设h:

必赢56net 4

计算公式

极大似然假设ML:当H中的假设具有相同的先验概率时,给定h,使P(D|h)最大的假设hml:

必赢56net 5

计算公式

1.历史

新智元将于9月20日在北京国家会议中心举办AI WORLD 2018世界人工智能峰会,MIT物理教授、未来生命研究所创始人、《生命3.0》作者Max Tegmark,将发表演讲《我们如何利用AI,而不是被其压制》,探讨如何直面AI军事化和杀人武器的出现,欢迎到现场交流!

3. 贝叶斯分类器

必赢56net 6

必赢56net 7

必赢56net 8

必赢56net 9

1.1一个例子:自然语言的二义性

4. 文本分类

算法描述:

必赢56net 10

必赢56net 11

1.2贝叶斯公式

来源:towardsdatascience

2.拼写纠正

作者:Tirthajyoti Sarkar

3.模型比较与贝叶斯奥卡姆剃刀

【新智元导读】当贝叶斯、奥卡姆和香农一起给机器学习下定义,将统计学、信息理论和自然哲学的一些核心概念结合起来,我们便会会发现,可以对监督机器学习的基本限制和目标进行深刻而简洁的描述。

3.1再访拼写纠正

令人有点惊讶的是,在所有机器学习的流行词汇中,我们很少听到一个将统计学、信息理论和自然哲学的一些核心概念融合起来的短语。

3.2模型比较理论(Model Comparasion)与贝叶斯奥卡姆剃刀(Bayesian Occam’s Razor)

而且,它不是一个只有机器学习博士和专家懂得的晦涩术语,对于任何有兴趣探索的人来说,它都具有精确且易于理解的含义,对于ML和数据科学的从业者来说,它具有实用的价值。

3.3最小描述长度原则

这个术语就是最小描述长度(Minimum Deion Length)。

3.4最优贝叶斯推理

让我们剥茧抽丝,看看这个术语多么有用……

4.无处不在的贝叶斯

贝叶斯和他的理论

4.1中文分词

我们从托马斯·贝叶斯(Thomas Bayes)说起,顺便一提,他从未发表过关于如何做统计推理的想法,但后来却因“贝叶斯定理”而不朽。

4.2统计机器翻译

必赢56net 12

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

Thomas Bayes

4.4 EM算法与基于模型的聚类

那是在18世纪下半叶,当时还没有一个数学科学的分支叫做“概率论”。人们知道概率论,是因为亚伯拉罕 · 棣莫弗(Abraham de Moievre)写的《机遇论》(Doctrine of Chances)一书。

4.5最大似然与最小二乘

1763年,贝叶斯的著作《机会问题的解法》(An Essay toward solving a Problem in the Doctrine of opportunities)被寄给英国皇家学会,但经过了他的朋友理查德·普莱斯(Richard Price)的编辑和修改,发表在伦敦皇家学会哲学汇刊。在那篇文章中,贝叶斯以一种相当繁复的方法描述了关于联合概率的简单定理,该定理引起了逆概率的计算,即贝叶斯定理。

5.朴素贝叶斯方法(又名“愚蠢者的贝叶斯(idiot’s bayes)”)

自那以后,统计科学的两个派别——贝叶斯学派和频率学派(Frequentists)之间发生了许多争论。但为了回归本文的目的,让我们暂时忽略历史,集中于对贝叶斯推理的机制的简单解释。请看下面这个公式:

5.1垃圾邮件过滤器

必赢56net 13

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

这个公式实际上告诉你,在看到数据/证据(可能性)之后更新你的信念(先验概率),并将更新后的信念程度赋予后验概率。你可以从一个信念开始,但每个数据点要么加强要么削弱这个信念,你会一直更新你的假设

6.层级贝叶斯模型

听起来十分简单而且直观是吧?很好。

6.1隐马可夫模型(HMM)

不过,我在这段话的最后一句话里耍了个小花招。你注意了吗?我提到了一个词“假设”。

7.贝叶斯网络

在统计推理的世界里,假设就是信念。这是一种关于过程本质(我们永远无法观察到)的信念,在一个随机变量的产生背后(我们可以观察或测量到随机变量,尽管可能有噪声)。在统计学中,它通常被称为概率分布。但在机器学习的背景下,它可以被认为是任何一套规则(或逻辑/过程),我们认为这些规则可以产生示例或训练数据,我们可以学习这个神秘过程的隐藏本质。

1.历史

因此,让我们尝试用不同的符号重新定义贝叶斯定理——用与数据科学相关的符号。我们用D表示数据,用h表示假设,这意味着我们使用贝叶斯定理的公式来尝试确定数据来自什么假设,给定数据。我们把定理重新写成:

托马斯·贝叶斯(Thomas Bayes)同学的详细生平在这里。以下摘一段wikipedia上的简介:

必赢56net 14

所谓的贝叶斯方法源于他生前为解决一个“逆概”问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的。在贝叶斯写这篇文章之前,人们已经能够计算“正向概率”,如“假设袋子里面有N个白球,M个黑球,你伸手进去摸一把,摸出黑球的概率是多大”。而一个自然而然的问题是反过来:“如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,那么我们可以就此对袋子里面的黑白球的比例作出什么样的推测”。这个问题,就是所谓的逆概问题。

现在,一般来说,我们有一个很大的(通常是无限的)假设空间,也就是说,有许多假设可供选择。贝叶斯推理的本质是,我们想要检验数据以最大化一个假设的概率,这个假设最有可能产生观察数据(observed data)。我们一般想要确定P(h|D)的argmax,也就是想知道哪个h的情况下,观察到的D是最有可能的。为了达到这个目的,我们可以把这个项放到分母P(D)中,因为它不依赖于假设。这个方案就是最大后验概率估计(maximum a posteriori,MAP)。

实际上,贝叶斯当时的论文只是对这个问题的一个直接的求解尝试,并不清楚他当时是不是已经意识到这里面包含着的深刻的思想。然而后来,贝叶斯方法席卷了概率论,并将应用延伸到各个问题领域,所有需要作出概率预测的地方都可以见到贝叶斯方法的影子,特别地,贝叶斯是机器学习的核心方法之一。这背后的深刻原因在于,现实世界本身就是不确定的,人类的观察能力是有局限性的(否则有很大一部分科学就没有必要做了——设想我们能够直接观察到电子的运行,还需要对原子模型争吵不休吗?),我们日常所观察到的只是事物表面上的结果,沿用刚才那个袋子里面取球的比方,我们往往只能知道从里面取出来的球是什么颜色,而并不能直接看到袋子里面实际的情况。这个时候,我们就需要提供一个猜测(hypothesis,更为严格的说法是“假设”,这里用“猜测”更通俗易懂一点),所谓猜测,当然就是不确定的(很可能有好多种乃至无数种猜测都能满足目前的观测),但也绝对不是两眼一抹黑瞎蒙——具体地说,我们需要做两件事情:1.算出各种不同猜测的可能性大小。2.算出最靠谱的猜测是什么。第一个就是计算特定猜测的后验概率,对于连续的猜测空间则是计算猜测的概率密度函数。第二个则是所谓的模型比较,模型比较如果不考虑先验概率的话就是最大似然方法。

现在,我们应用以下数学技巧:

1.1一个例子:自然语言的二义性

  • 最大化对于对数与原始函数的作用类似,即采用对数不会改变最大化问题
  • 乘积的对数是各个对数的总和
  • 一个量的最大化等于负数量的最小化

下面举一个自然语言的不确定性的例子。当你看到这句话:

必赢56net 15

The girl saw the boy with a telescope.

那些负对数为2的术语看起来很熟悉是不是......来自信息论(Information Theory)!

你对这句话的含义有什么猜测?平常人肯定会说:那个女孩拿望远镜看见了那个男孩(即你对这个句子背后的实际语法结构的猜测是:The girl saw-with-a-telescope the boy)。然而,仔细一想,你会发现这个句子完全可以解释成:那个女孩看见了那个拿着望远镜的男孩(即:The girl saw the-boy-with-a-telescope)。那为什么平常生活中我们每个人都能够迅速地对这种二义性进行消解呢?这背后到底隐藏着什么样的思维法则?我们留到后面解释。

让我们进入克劳德·香农(Claude Shannon)的世界吧!

1.2贝叶斯公式

香农和信息熵

贝叶斯公式是怎么来的?

如果要描述克劳德·香农的天才和奇特的一生,长篇大论也说不完。香农几乎是单枪匹马地奠定了信息论的基础,引领我们进入了现代高速通信和信息交流的时代。

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

香农在MIT电子工程系完成的硕士论文被誉为20世纪最重要的硕士论文:在这篇论文中,22岁的香农展示了如何使用继电器和开关的电子电路实现19世纪数学家乔治布尔(George Boole)的逻辑代数。数字计算机设计的最基本的特征——将“真”和“假”、“0”和“1”表示为打开或关闭的开关,以及使用电子逻辑门来做决策和执行算术——可以追溯到香农论文中的见解。

一所学校里面有60%的男生,40%的女生。男生总是穿长裤,女生则一半穿长裤一半穿裙子。有了这些信息之后我们可以容易地计算“随机选取一个学生,他(她)穿长裤的概率和穿裙子的概率是多大”,这个就是前面说的“正向概率”的计算。然而,假设你走在校园中,迎面走来一个穿长裤的学生(很不幸的是你高度近似,你只看得见他(她)穿的是否长裤,而无法确定他(她)的性别),你能够推断出他(她)是男生的概率是多大吗?

但这还不是他最伟大的成就。

一些认知科学的研究表明(《决策与判断》以及《Rationality for Mortals》第12章:小孩也可以解决贝叶斯问题),我们对形式化的贝叶斯问题不擅长,但对于以频率形式呈现的等价问题却很擅长。在这里,我们不妨把问题重新叙述成:你在校园里面随机游走,遇到了N个穿长裤的人(仍然假设你无法直接观察到他们的性别),问这N个人里面有多少个女生多少个男生。

1941年,香农去了贝尔实验室,在那里他从事战争事务,包括密码学。他还研究信息和通信背后的原始理论。1948年,贝尔实验室研究期刊发表了他的研究,也就是划时代的题为“通信的一个数学理论”论文。

你说,这还不简单:算出学校里面有多少穿长裤的,然后在这些人里面再算出有多少女生,不就行了?

香农将信息源产生的信息量(例如,信息中的信息量)通过一个类似于物理学中热力学熵的公式得到。用最基本的术语来说,香农的信息熵就是编码信息所需的二进制数字的数量。对于概率为p的信息或事件,它的最特殊(即最紧凑)编码将需要-log2(p)比特。

我们来算一算:假设学校里面人的总数是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)个女生。两者一比就是你要求的答案。

而这正是在贝叶斯定理中的最大后验表达式中出现的那些术语的本质!

下面我们把这个答案形式化一下:我们要求的是P(Girl|Pants)(穿长裤的人里面有多少女生),我们计算的结果是U * P(Girl) * P(Pants|Girl) / [必赢56net,U * P(Boy) * P(Pants|Boy) U * P(Girl) * P(Pants|Girl)]。容易发现这里校园内人的总数是无关的,可以消去。于是得到

因此,我们可以说,在贝叶斯推理的世界中,最可能的假设取决于两个术语,它们引起长度感(sense of length),而不是最小长度。

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

那么长度的概念是什么呢?

注意,如果把上式收缩起来,分母其实就是P(Pants),分子其实就是P(Pants, Girl)。而这个比例很自然地就读作:在穿长裤的人(P(Pants))里面有多少(穿长裤)的女孩(P(Pants, Girl))。

Length (h): 奥卡姆剃刀

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

奥卡姆的威廉(William of Ockham,约1287-1347)是一位英国圣方济会修士和神学家,也是一位有影响力的中世纪哲学家。他作为一个伟大的逻辑学家而享有盛名,名声来自他的被称为奥卡姆剃刀的格言。剃刀一词指的是通过“剔除”不必要的假设或分割两个相似的结论来区分两个假设。

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)

人们总是喜欢更短的假设。

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

那么我们需要一个关于假设的长度的例子吗?

然而,后面我们会逐渐发现,看似这么平凡的贝叶斯公式,背后却隐含着非常深刻的原理。

下面哪个决策树的长度更小?A还是B?

2.拼写纠正

必赢56net 16

经典著作《人工智能:现代方法》的作者之一Peter Norvig曾经写过一篇介绍如何写一个拼写检查/纠正器的文章(原文在这里,徐宥的翻译版在这里,这篇文章很深入浅出,强烈建议读一读),里面用到的就是贝叶斯方法,这里我们不打算复述他写的文章,而是简要地将其核心思想介绍一下。

即使没有一个对假设的“长度”的精确定义,我相信你肯定会认为左边的树(A)看起来更小或更短。当然,你是对的。因此,更短的假设就是,它要么自由参数更少,要么决策边界更不复杂,或者这些属性的某种组合可以表示它的简洁性。

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

那么Length(D | h)是什么?

问题是我们看到用户输入了一个不在字典中的单词,我们需要去猜测:“这个家伙到底真正想输入的单词是什么呢?”用刚才我们形式化的语言来叙述就是,我们需要求:

给定假设是数据的长度。这是什么意思?

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

直观地说,它与假设的正确性或表示能力有关。给定一个假设,它支配着数据的“推断”能力。如果假设很好地生成了数据,并且我们可以无错误地测量数据,那么我们就根本不需要数据。

这个概率。并找出那个使得这个概率最大的猜测单词。显然,我们的猜测未必是唯一的,就像前面举的那个自然语言的歧义性的例子一样;这里,比如用户输入:thew,那么他到底是想输入the,还是想输入thaw?到底哪个猜测可能性更大呢?幸运的是我们可以用贝叶斯公式来直接出它们各自的概率,我们不妨将我们的多个猜测记为h1 h2 ..(h代表hypothesis),它们都属于一个有限且离散的猜测空间H(单词总共就那么多而已),将用户实际输入的单词记为D(D代表Data,即观测数据),于是

想想牛顿的运动定律。

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

牛顿运动定律第一次出现在《自然哲学的数学原理》上时,它们并没有任何严格的数学证明。它们不是定理。它们很像基于对自然物体运动的观察而做出的假设。但是它们对数据的描述非常好。因此它们就变成了物理定律。

可以抽象地记为:

这就是为什么你不需要记住所有可能的加速度数字,你只需要相信一个简洁的假设,即F=ma,并相信所有你需要的数字都可以在必要时从这个假设中计算出来。它使得Length(D | h) 非常小。

P(h1 | D)

但是如果数据与假设有很大的偏差,那么你需要对这些偏差是什么,它们可能的解释是什么等进行详细描述。

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

因此,Length(D | h)简洁地表达了“数据与给定假设的匹配程度”这个概念。

P(h | D)

实质上,它是错误分类(misclassication)或错误率( error rate)的概念。对于一个完美的假设,它是很短的,在极限情况下它为零。对于一个不能完美匹配数据的假设,它往往很长。

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

而且,存在着权衡。

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

如果你用奥卡姆剃刀刮掉你的假设,你很可能会得到一个简单的模型,一个无法获得所有数据的模型。因此,你必须提供更多的数据以获得更好的一致性。另一方面,如果你创建了一个复杂的(长的)假设,你可能可以很好地处理你的训练数据,但这实际上可能不是正确的假设,因为它违背了MAP 原则,即假设熵是小的。

对于不同的具体猜测h1 h2 h3 ..,P(D)都是一样的,所以在比较P(h1 | D)和P(h2 | D)的时候我们可以忽略这个常数。即我们只需要知道:

必赢56net 17

P(h | D)∝P(h) * P(D | h)(注:那个符号的意思是“正比例于”,不是无穷大,注意符号右端是有一个小缺口的。)

将所有这些结合起来

这个式子的抽象含义是:对于给定观测数据,一个猜测是好是坏,取决于“这个猜测本身独立的可能性大小(先验概率,Prior)”和“这个猜测生成我们观测到的数据的可能性大小”(似然,Likelihood)的乘积。具体到我们的那个thew例子上,含义就是,用户实际是想输入the的可能性大小取决于the本身在词汇表中被使用的可能性(频繁程度)大小(先验概率)和 想打the却打成thew的可能性大小(似然)的乘积。

因此,贝叶斯推理告诉我们,最好的假设就是最小化两个项之和:假设的长度和错误率

下面的事情就很简单了,对于我们猜测为可能的每个单词计算一下P(h) * P(D | h)这个值,然后取最大的,得到的就是最靠谱的猜测。

这句话几乎涵盖了所有(有监督)机器学习

一点注记:Norvig的拼写纠正器里面只提取了编辑距离为2以内的所有已知单词。这是为了避免去遍历字典中每个单词计算它们的P(h) * P(D | h),但这种做法为了节省时间带来了一些误差。但话说回来难道我们人类真的回去遍历每个可能的单词来计算他们的后验概率吗?不可能。实际上,根据认知神经科学的观点,我们首先根据错误的单词做一个bottom-up的关联提取,提取出有可能是实际单词的那些候选单词,这个提取过程就是所谓的基于内容的提取,可以根据错误单词的一些模式片段提取出有限的一组候选,非常快地缩小的搜索空间(比如我输入explaination,单词里面就有充分的信息使得我们的大脑在常数时间内把可能性narrow down到explanation这个单词上,至于具体是根据哪些线索——如音节——来提取,又是如何在生物神经网络中实现这个提取机制的,目前还是一个没有弄清的领域)。然后,我们对这有限的几个猜测做一个top-down的预测,看看到底哪个对于观测数据(即错误单词)的预测效力最好,而如何衡量预测效率则就是用贝叶斯公式里面的那个P(h) * P(D | h)了——虽然我们很可能使用了一些启发法来简化计算。后面我们还会提到这样的bottom-up的关联提取。

想想它的结果:

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

  • 线性模型的模型复杂度——选择多项式的程度,如何减少平方和残差。
  • 神经网络架构的选择——如何不公开训练数据,达到良好的验证精度,并且减少分类错误。
  • 支持向量机正则化和kernel选择——软边界与硬边界之间的平衡,即用决策边界非线性来平衡精度

3.1再访拼写纠正

我们真正得出的结论是什么?

介绍了贝叶斯拼写纠正之后,接下来的一个自然而然的问题就来了:“为什么?”为什么要用贝叶斯公式?为什么贝叶斯公式在这里可以用?我们可以很容易地领会为什么贝叶斯公式用在前面介绍的那个男生女生长裤裙子的问题里是正确的。但为什么这里?

我们从最小描述长度(MDL)原理的分析中得出什么结论?

为了回答这个问题,一个常见的思路就是想想:非得这样吗?因为如果你想到了另一种做法并且证明了它也是靠谱的,那么将它与现在这个一比较,也许就能得出很有价值的信息。那么对于拼写纠错问题你能想到其他方案吗?

这是否一劳永逸地证明了短的假设就是最好的?

不管怎样,一个最常见的替代方案就是,选择离thew的编辑距离最近的。然而the和thaw离thew的编辑距离都是1。这可咋办捏?你说,不慌,那还是好办。我们就看到底哪个更可能被错打为thew就是了。我们注意到字母e和字母w在键盘上离得很紧,无名指一抽筋就不小心多打出一个w来,the就变成thew了。而另一方面thaw被错打成thew的可能性就相对小一点,因为e和a离得较远而且使用的指头相差一个指头(一个是中指一个是小指,不像e和w使用的指头靠在一块——神经科学的证据表明紧邻的身体设施之间容易串位)。OK,很好,因为你现在已经是在用最大似然方法了,或者直白一点,你就是在计算那个使得P(D | h)最大的h。

没有。

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

MDL表明,如果选择假设的表示(representation)使得h的大小为-log2 P(h),并且如果异常(错误)的表示被选择,那么给定h的D的编码长度等于-log2 P(D | h),然后MDL原则产生MAP假设。

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

然而,为了表明我们有这样一个表示,我们必须知道所有先验概率P(h),以及P(D | h)。没有理由相信MDL假设相对于假设和错误/错误分类的任意编码应该是首选。

最大似然还有另一个问题:即便一个猜测与数据非常符合,也并不代表这个猜测就是更好的猜测,因为这个猜测本身的可能性也许就非常低。比如MacKay在《Information Theory : Inference and Learning Algorithms》里面就举了一个很好的例子:-1 3 7 11你说是等差数列更有可能呢?还是-X^3 / 11 9/11*X^2 23/11每项把前项作为X带入后计算得到的数列?此外曲线拟合也是,平面上N个点总是可以用N-1阶多项式来完全拟合,当N个点近似但不精确共线的时候,用N-1阶多项式来拟合能够精确通过每一个点,然而用直线来做拟合/线性回归的时候却会使得某些点不能位于直线上。你说到底哪个好呢?多项式?还是直线?一般地说肯定是越低阶的多项式越靠谱(当然前提是也不能忽视“似然”P(D | h),明摆着一个多项式分布您愣是去拿直线拟合也是不靠谱的,这就是为什么要把它们两者乘起来考虑。),原因之一就是低阶多项式更常见,先验概率(P(h))较大(原因之二则隐藏在P(D | h)里面),这就是为什么我们要用样条来插值,而不是直接搞一个N-1阶多项式来通过任意N个点的原因。

对于实际的机器学习,人类设计者有时可能更容易指定一种表示来获取关于假设的相对概率的知识,而不是完全指定每个假设的概率。

以上分析当中隐含的哲学是,观测数据总是会有各种各样的误差,比如观测误差(比如你观测的时候一个MM经过你一不留神,手一抖就是一个误差出现了),所以如果过分去寻求能够完美解释观测数据的模型,就会落入所谓的数据过配(overfitting)的境地,一个过配的模型试图连误差(噪音)都去解释(而实际上噪音又是不需要解释的),显然就过犹不及了。所以P(D | h)大不代表你的h(猜测)就是更好的h。还要看P(h)是怎样的。所谓奥卡姆剃刀精神就是说:如果两个理论具有相似的解释力度,那么优先选择那个更简单的(往往也正是更平凡的,更少繁复的,更常见的)。

这就是知识表示和领域专业知识变得无比重要的地方。它使(通常)无限大的假设空间变小,并引导我们走向一组高度可能的假设,我们可以对其进行最优编码,并努力找到其中的一组MAP假设。

过分匹配的另一个原因在于当观测的结果并不是因为误差而显得“不精确”而是因为真实世界中对数据的结果产生贡献的因素太多太多,跟噪音不同,这些偏差是一些另外的因素集体贡献的结果,不是你的模型所能解释的——噪音那是不需要解释——一个现实的模型往往只提取出几个与结果相关度很高,很重要的因素(cause)。这个时候观察数据会倾向于围绕你的有限模型的预测结果呈正态分布,于是你实际观察到的结果就是这个正态分布的随机取样,这个取样很可能受到其余因素的影响偏离你的模型所预测的中心,这个时候便不能贪心不足地试图通过改变模型来“完美”匹配数据,因为那些使结果偏离你的预测的贡献因素不是你这个有限模型里面含有的因素所能概括的,硬要打肿脸充胖子只能导致不实际的模型,举个教科书例子:身高和体重的实际关系近似于一个二阶多项式的关系,但大家都知道并不是只有身高才会对体重产生影响,物理世界影响体重的因素太多太多了,有人身材高大却瘦得跟稻草,有人却是横长竖不长。但不可否认的是总体上来说,那些特殊情况越是特殊就越是稀少,呈围绕最普遍情况(胖瘦适中)的正态分布,这个分布就保证了我们的身高——体重相关模型能够在大多数情况下做出靠谱的预测。但是——刚才说了,特例是存在的,就算不是特例,人有胖瘦,密度也有大小,所以完美符合身高——体重的某个假想的二阶多项式关系的人是不存在的,我们又不是欧几里德几何世界当中的理想多面体,所以,当我们对人群随机抽取了N个样本(数据点)试图对这N个数据点拟合出一个多项式的话就得注意,它肯定得是二阶多项式,我们要做的只是去根据数据点计算出多项式各项的参数(一个典型的方法就是最小二乘);它肯定不是直线(我们又不是稻草),也不是三阶多项式四阶多项式..如果硬要完美拟合N个点,你可能会整出一个N-1阶多项式来——设想身高和体重的关系是5阶多项式看看?

总结和思考

3.2模型比较理论(Model Comparasion)与贝叶斯奥卡姆剃刀(Bayesian Occam’s Razor)

一个奇妙的事实是,如此简单的一套数学操作就能在概率论的基本特征之上产生对监督机器学习的基本限制和目标的如此深刻而简洁的描述。对这些问题的简明阐述,读者可以参考来自CMU的一篇博士论文《机器学习为何有效》(Why Machine Learning Works)。

实际上,模型比较就是去比较哪个模型(猜测)更可能隐藏在观察数据的背后。其基本思想前面已经用拼写纠正的例子来说明了。我们对用户实际想输入的单词的猜测就是模型,用户输错的单词就是观测数据。我们通过:

原文链接:

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。实际上,只要对这个式子求一个导数就可以得到最值点。

Why Machine Learning Works:

以上说的是当我们知道先验概率P(h)的时候,光用最大似然是不靠谱的,因为最大似然的猜测可能先验概率非常小。然而,有些时候,我们对于先验概率一无所知,只能假设每种猜测的先验概率是均等的,这个时候就只有用最大似然了。实际上,统计学家和贝叶斯学家有一个有趣的争论,统计学家说:我们让数据自己说话。言下之意就是要摒弃先验概率。而贝叶斯支持者则说:数据会有各种各样的偏差,而一个靠谱的先验概率则可以对这些随机噪音做到健壮。事实证明贝叶斯派胜利了,胜利的关键在于所谓先验概率其实也是经验统计的结果,譬如为什么我们会认为绝大多数硬币是基本公平的?为什么我们认为大多数人的肥胖适中?为什么我们认为肤色是种族相关的,而体重则与种族无关?先验概率里面的“先验”并不是指先于一切经验,而是仅指先于我们“当前”给出的观测数据而已,在硬币的例子中先验指的只是先于我们知道投掷的结果这个经验,而并非“先天”。

然而,话说回来,有时候我们必须得承认,就算是基于以往的经验,我们手头的“先验”概率还是均匀分布,这个时候就必须依赖用最大似然,我们用前面留下的一个自然语言二义性问题来说明这一点:

倒计时 8

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章。

3.3最小描述长度原则

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

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

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

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

显然,最大化P(h | D)也就是最大化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。如果我们只想知道对于观测数据哪个模型最可能,那么只要取第一个就行了,故事到此结束。然而很多时候我们建立模型是为了推测未知的事情的发生概率,这个时候,三个模型对未知的事情发生的概率都会有自己的预测,仅仅因为某一个模型概率稍大一点就只听他一个人的就太不民主了。所谓的最优贝叶斯推理就是将三个模型对于未知数据的预测结论加权平均起来(权值就是模型相应的概率)。显然,这个推理是理论上的制高点,无法再优了,因为它已经把所有可能性都考虑进去了。

只不过实际上我们是基本不会使用这个框架的,因为计算模型可能非常费时间,二来模型空间可能是连续的,即有无穷多个模型(这个时候需要计算模型的概率分布)。结果还是非常费时间。所以这个被看作是一个理论基准。

4.无处不在的贝叶斯

以下我们再举一些实际例子来说明贝叶斯方法被运用的普遍性,这里主要集中在机器学习方面,因为我不是学经济的,否则还可以找到一堆经济学的例子。

4.1中文分词

贝叶斯是机器学习的核心方法之一。比如中文分词领域就用到了贝叶斯。Google研究员吴军在《数学之美》系列中就有一篇是介绍中文分词的,这里只介绍一下核心的思想,不做赘述,详细请参考吴军的文章(这里)。

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

南京市长江大桥

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

1.南京市/长江大桥

2.南京/市长/江大桥

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

我们用贝叶斯公式来形式化地描述这个问题,令X为字串(句子),Y为词串(一种特定的分词假设)。我们就是需要寻找使得P(Y|X)最大的Y,使用一次贝叶斯可得:

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

用自然语言来说就是这种分词方式(词串)的可能性乘以这个词串生成我们的句子的可能性。我们进一步容易看到:可以近似地将P(X|Y)看作是恒等于1的,因为任意假想的一种分词方式之下生成我们的句子总是精准地生成的(只需把分词之间的分界符号扔掉即可)。于是,我们就变成了去最大化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)的层面,在这个层面机器学习只能看到一些非常表面的现象,有一点科学研究的理念的人都知道:越是往表层去,世界就越是繁复多变。从机器学习的角度来说,特征(feature)就越多,成百上千维度都是可能的。特征一多,好了,高维诅咒就产生了,数据就稀疏得要命,不够用了。而我们人类的观察水平显然比机器学习的观察水平要更深入一些,为了避免数据稀疏我们不断地发明各种装置(最典型就是显微镜),来帮助我们直接深入到更深层的事物层面去观察更本质的联系,而不是在浅层对表面现象作统计归纳。举一个简单的例子,通过对大规模语料库的统计,机器学习可能会发现这样一个规律:所有的“他”都是不会穿bra的,所有的“她”则都是穿的。然而,作为一个男人,却完全无需进行任何统计学习,因为深层的规律就决定了我们根本不会去穿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)是多大。

一点注记:还是那个问题:难道我们人类真的是用这种方式进行翻译的?highly unlikely。这种计算复杂性非常高的东西连三位数乘法都搞不定的我们才不会笨到去使用呢。根据认知神经科学的认识,很可能我们是先从句子到语义(一个逐层往上(bottom-up)抽象的folding过程),然后从语义根据另一门语言的语法展开为另一门语言(一个逐层往下(top-down)的具体化unfolding过程)。如何可计算地实现这个过程,目前仍然是个难题。(我们看到很多地方都有bottom-up/top-down这样一个对称的过程,实际上有人猜测这正是生物神经网络原则上的运作方式,对视觉神经系统的研究尤其证明了这一点,Hawkins在 《On Intelligence》 里面提出了一种HTM(Hierarchical Temporal Memory)模型正是使用了这个原则。)

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

贝叶斯方法是一个非常general的推理框架。其核心理念可以描述成:Analysis by Synthesis(通过合成来分析)。06年的认知科学新进展上有一篇paper就是讲用贝叶斯推理来解释视觉识别的,一图胜千言,下图就是摘自这篇paper:

首先是视觉系统提取图形的边角特征,然后使用这些特征自底向上地激活高层的抽象概念(比如是E还是F还是等号),然后使用一个自顶向下的验证来比较到底哪个概念最佳地解释了观察到的图像。

4.4  EM算法与基于模型的聚类

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

图中有两个正态分布核心,生成了大致两堆点。我们的聚类算法就是需要根据给出来的那些点,算出这两个正态分布的核心在什么位置,以及分布的参数是多少。这很明显又是一个贝叶斯问题,但这次不同的是,答案是连续的且有无穷多种可能性,更糟的是,只有当我们知道了哪些点属于同一个正态分布圈的时候才能够对这个分布的参数作出靠谱的预测,现在两堆点混在一块我们又不知道哪些点属于第一个正态分布,哪些属于第二个。反过来,只有当我们对分布的参数作出了靠谱的预测时候,才能知道到底哪些点属于第一个分布,那些点属于第二个分布。这就成了一个先有鸡还是先有蛋的问题了。为了解决这个循环依赖,总有一方要先打破僵局,说,不管了,我先随便整一个值出来,看你怎么变,然后我再根据你的变化调整我的变化,然后如此迭代着不断互相推导,最终收敛到一个解。这就是EM算法。

EM的意思是“Expectation-Maximazation”,在这个聚类问题里面,我们是先随便猜一下这两个正态分布的参数:如核心在什么地方,方差是多少。然后计算出每个数据点更可能属于第一个还是第二个正态分布圈,这个是属于Expectation一步。有了每个数据点的归属,我们就可以根据属于第一个分布的数据点来重新评估第一个分布的参数(从蛋再回到鸡),这个是Maximazation。如此往复,直到参数基本不再发生变化为止。这个迭代收敛过程中的贝叶斯方法在第二步,根据数据点求分布的参数上面。

4.5最大似然与最小二乘

学过线性代数的大概都知道经典的最小二乘方法来做线性回归。问题描述是:给定平面上N个点,(这里不妨假设我们想用一条直线来拟合这些点——回归可以看作是拟合的特例,即允许误差的拟合),找出一条最佳描述了这些点的直线。

一个接踵而来的问题就是,我们如何定义最佳?我们设每个点的坐标为(Xi, Yi)。如果直线为y = f(x)。那么(Xi, Yi)跟直线对这个点的“预测”:(Xi, f(Xi))就相差了一个 ΔYi = |Yi–f(Xi)|。最小二乘就是说寻找直线使得(ΔY1)^2 (ΔY2)^2 ..(即误差的平方和)最小,至于为什么是误差的平方和而不是误差的绝对值和,统计学上也没有什么好的解释。然而贝叶斯方法却能对此提供一个完美的解释。

我们假设直线对于坐标Xi给出的预测f(Xi)是最靠谱的预测,所有纵坐标偏离f(Xi)的那些数据点都含有噪音,是噪音使得它们偏离了完美的一条直线,一个合理的假设就是偏离路线越远的概率越小,具体小多少,可以用一个正态分布曲线来模拟,这个分布曲线以直线对Xi给出的预测f(Xi)为中心,实际纵坐标为Yi的点(Xi, Yi)发生的概率就正比于EXP[-(ΔYi)^2]。(EXP(..)代表以常数e为底的多少次方)。

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

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

又见贝叶斯!这里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[-(ΔY3)^2] * .. = EXP{-[(ΔY1)^2 (ΔY2)^2 (ΔY3)^2 ..]}最大化这个概率就是要最小化(ΔY1)^2 (ΔY2)^2 (ΔY3)^2 ..。 熟悉这个式子吗?

5.朴素贝叶斯方法

朴素贝叶斯方法是一个很特别的方法,所以值得介绍一下。我们用朴素贝叶斯在垃圾邮件过滤中的应用来举例说明。

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 )却不容易求,因为D里面含有N个单词d1, d2, d3, ..,所以P(D|h ) = P(d1,d2,..,dn|h )。我们又一次遇到了数据稀疏性,为什么这么说呢?P(d1,d2,..,dn|h )就是说在垃圾邮件当中出现跟我们目前这封邮件一模一样的一封邮件的概率是多大!开玩笑,每封邮件都是不同的,世界上有无穷多封邮件。瞧,这就是数据稀疏性,因为可以肯定地说,你收集的训练数据库不管里面含了多少封邮件,也不可能找出一封跟目前这封一模一样的。结果呢?我们又该如何来计算P(d1,d2,..,dn|h )呢?

我们将P(d1,d2,..,dn|h )扩展为:P(d1|h ) * P(d2|d1, h ) * P(d3|d2,d1, h ) * ..。熟悉这个式子吗?这里我们会使用一个更激进的假设,我们假设di与di-1是完全条件无关的,于是式子就简化为P(d1|h ) * P(d2|h ) * P(d3|h ) * ..。这个就是所谓的条件独立假设,也正是朴素贝叶斯方法的朴素之处。而计算P(d1|h ) * P(d2|h ) * P(d3|h ) * ..就太简单了,只要统计di这个单词在垃圾邮件中出现的频率即可。关于贝叶斯垃圾邮件过滤更多的内容可以参考这个条目,注意其中提到的其他资料。

一点注记:这里,为什么有这个数据稀疏问题,还是因为统计学习方法工作在浅层面,世界上的单词就算不再变多也是非常之多的,单词之间组成的句子也是变化多端,更不用说一篇文章了,文章数目则是无穷的,所以在这个层面作统计,肯定要被数据稀疏性困扰。我们要注意,虽然句子和文章的数目是无限的,然而就拿邮件来说,如果我们只关心邮件中句子的语义(进而更高抽象层面的“意图”(语义,意图如何可计算地定义出来是一个人工智能问题),在这个层面上可能性便大大缩减了,我们关心的抽象层面越高,可能性越小。单词集合和句子的对应是多对一的,句子和语义的对应又是多对一的,语义和意图的对应还是多对一的,这是个层级体系。神经科学的发现也表明大脑的皮层大致有一种层级结构,对应着越来越抽象的各个层面,至于如何具体实现一个可放在计算机内的大脑皮层,仍然是一个未解决问题,以上只是一个原则(principle)上的认识,只有当computational的cortex模型被建立起来了之后才可能将其放入电脑。

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

朴素贝叶斯方法的条件独立假设看上去很傻很天真,为什么结果却很好很强大呢?就拿一个句子来说,我们怎么能鲁莽地声称其中任意一个单词出现的概率只受到它前面的3个或4个单词的影响呢?别说3个,有时候一个单词的概率受到上一句话的影响都是绝对可能的。那么为什么这个假设在实际中的表现却不比决策树差呢?有人对此提出了一个理论解释,并且建立了什么时候朴素贝叶斯的效果能够等价于非朴素贝叶斯的充要条件,这个解释的核心就是:有些独立假设在各个分类之间的分布都是均匀的所以对于似然的相对大小不产生影响;即便不是如此,也有很大的可能性各个独立假设所产生的消极影响或积极影响互相抵消,最终导致结果受到的影响不大。具体的数学公式请参考这篇paper。

6.层级贝叶斯模型

层级贝叶斯模型是现代贝叶斯方法的标志性建筑之一。前面讲的贝叶斯,都是在同一个事物层次上的各个因素之间进行统计推理,然而层次贝叶斯模型在哲学上更深入了一层,将这些因素背后的因素(原因的原因,原因的原因,以此类推)囊括进来。一个教科书例子是:如果你手头有N枚硬币,它们是同一个工厂铸出来的,你把每一枚硬币掷出一个结果,然后基于这N个结果对这N个硬币的 θ (出现正面的比例)进行推理。如果根据最大似然,每个硬币的 θ 不是1就是0(这个前面提到过的),然而我们又知道每个硬币的p(θ)是有一个先验概率的,也许是一个beta分布。也就是说,每个硬币的实际投掷结果Xi服从以 θ 为中心的正态分布,而 θ 又服从另一个以 Ψ 为中心的beta分布。层层因果关系就体现出来了。进而 Ψ 还可能依赖于因果链上更上层的因素,以此类推。

6.1隐马可夫模型(HMM)

吴军在数学之美系列里面介绍的隐马可夫模型(HMM)就是一个简单的层级贝叶斯模型:

那么怎么根据接收到的信息来推测说话者想表达的意思呢?我们可以利用叫做“隐含马尔可夫模型”(Hidden Markov Model)来解决这些问题。以语音识别为例,当我们观测到语音信号o1,o2,o3时,我们要根据这组信号推测出发送的句子s1,s2,s3。显然,我们应该在所有可能的句子中找最有可能性的一个。用数学语言来描述,就是在已知o1,o2,o3,…的情况下,求使得条件概率P (s1,s2,s3,…|o1,o2,o3….)达到最大值的那个句子s1,s2,s3,…

吴军的文章中这里省掉没说的是,s1, s2, s3, ..这个句子的生成概率同时又取决于一组参数,这组参数决定了s1, s2, s3, ..这个马可夫链的先验生成概率。如果我们将这组参数记为 λ ,我们实际上要求的是:P(S|O,λ)(其中O表示o1,o2,o3,..,S表示s1,s2,s3,..)

当然,上面的概率不容易直接求出,于是我们可以间接地计算它。利用贝叶斯公式并且省掉一个常数项,可以把上述公式等价变换成

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

其中

P(o1,o2,o3,…|s1,s2,s3….)表示某句话s1,s2,s3…被读成o1,o2,o3,…的可能性,而P(s1,s2,s3,…)表示字串s1,s2,s3,…本身能够成为一个合乎情理的句子的可能性,所以这个公式的意义是用发送信号为s1,s2,s3…这个数列的可能性乘以s1,s2,s3..本身可以一个句子的可能性,得出概率。

这里,s1,s2,s3…本身可以一个句子的可能性其实就取决于参数 λ ,也就是语言模型。所以简而言之就是发出的语音信号取决于背后实际想发出的句子,而背后实际想发出的句子本身的独立先验概率又取决于语言模型。

7.贝叶斯网络

贝叶斯网络是一种概率网络,它是基于概率推理的图形化网络,而贝叶斯公式则是这个概率网络的基础。贝叶斯网络是基于概率推理的数学模型,所谓概率推理就是通过一些变量的信息来获取其他的概率信息的过程,基于概率推理的贝叶斯网络(Bayesian network)是为了解决不定性和不完整性问题而提出的,它对于解决复杂设备不确定性和关联性引起的故障有很的优势,在多个领域中获得广泛应用。

简介

又称信度网络,是Bayes方法的扩展,目前不确定知识表达和推理领域最有效的理论模型之一。从1988年由Pearl提出后,已经成为近几年来研究的热点.。一个贝叶斯网络是一个有向无环图(Directed Acyclic Graph,DAG),由代表变量节点及连接这些节点有向边构成。节点代表随机变量,节点间的有向边代表了节点间的互相关系(由父节点指向其子节点),用条件概率进行表达关系强度,没有父节点的用先验概率进行信息表达。节点变量可以是任何问题的抽象,如:测试值,观测现象,意见征询等。适用于表达和分析不确定性和概率性的事件,应用于有条件地依赖多种控制因素的决策,可以从不完全、不精确或不确定的知识或信息中做出推理。

网络建造

贝叶斯网络的建造是一个复杂的任务,需要知识工程师和领域专家的参与。在实际中可能是反复交叉进行而不断完善的。面向设备故障诊断应用的贝叶斯网络的建造所需要的信息来自多种渠道,如设备手册,生产过程,测试过程,维修资料以及专家经验等。首先将设备故障分为各个相互独立且完全包含的类别(各故障类别至少应该具有可以区分的界限),然后对各个故障类别分别建造贝叶斯网络模型,需要注意的是诊断模型只在发生故障时启动,因此无需对设备正常状态建模。通常设备故障由一个或几个原因造成的,这些原因又可能由一个或几个更低层次的原因造成。建立起网络的节点关系后,还需要进行概率估计。具体方法是假设在某故障原因出现的情况下,估计该故障原因的各个节点的条件概率,这种局部化概率估计的方法可以大大提高效率。


转载地址:

本文由必赢56net手机版发布于必赢56net,转载请注明出处:贝叶斯方法的简要学习,数据开采之贝叶斯

Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。