贝叶斯理论——一种由表及里的方法

来源:互联网 发布:linux vim 显示行数 编辑:程序博客网 时间:2024/06/05 11:32

贝叶斯理论介绍

 

 

贝叶斯理论说,你如果观察到了一个现象,

表象

我来告诉你由这个现象出发寻找真象的方法。

P(真象|表象)

不管这个真象存不存在,

P(真象)

不管这个现象大家以前见没见过,

P(表象)

也不管有没人知道什么样的真象会导致这个现象,

P(表象|真象)

至少我告诉你方法了,

你可以试着算算这个现象后头到底最有可能是哪种真象。

P(真象|表象)= P(真象)* P(表象|真象)/ P(表象)

 

上面的表述非常通用化,随便举几个例子:

·      拼写纠正,当用户写了一个错字的时候,估计下他最想写的其实是哪个单词。

·      吸毒检测,在某地进行吸毒检测某人出现阳性啦,估计下他吸毒的概率有多高?

·      路遇美女每次都对着你笑,这意味着什么?

·      某家中贵重物品被偷,猜猜是誰干的?

·      什么原因导致的经济衰退?

 

听起来像推理?抑或干脆是算命?

至少说明贝叶斯理论适用的范围非常广泛,但是能不能用好,就需要进一步论证了。

下面就介绍几个例子,来探讨下贝叶斯理论是如何应用的。

 

经典的拼写纠正

这个例子引用于刘未鹏的这篇关于贝叶斯方法的博客,这篇是国内不可多得的将贝叶斯方法说的浅显易懂的文章,强烈推荐!

这儿也不重复关于这个例子本身的介绍,就贴一段这篇博客中的描述吧。

 

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

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

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(D) 都是一样的,所以在比较 P(h1 | D) 和 P(h2 | D) 的时候我们可以忽略这个常数。即我们只需要知道:

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

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

 

从这个例子里我们至少可以看出如下几点:

1.     对表象的判断非常明确。这儿的表象就是打错的英文单词,只要查一查在不在英文字典里就能知道。

2.     (可能有关系的)真象的集合是确定的。这儿就是英文字典里所有的单词。

3.     P(真象) * P(表象|真象)都能找到某些方法来估计。比如P(真象)说的是某个单词(真象)本身在词汇表中被使用的可能性,由于英语已经发展了几千年,对这个的估计可以算是比较可靠的。而P(表象|真象)说的是想打某个单词(真象) 却打成一个错字(表象)的可能性大小。这个也可以通过某些方式来估算。比如thew和the的编辑距离是1,和these的编辑距离是2,那就可以估算P(thew|the)比P(thew|these)更大一点。

 

 

吸毒检测

 

这个例子出现在百度百科和维基百科关于贝叶斯理论的条目上,因此也算是非常典型的例子了。贴一下贝叶斯是如何应用在上面的。

 

假设一个常规的检测结果的敏感度与可靠度均为99%,也就是说,当被检者吸毒时,每次检测呈阳性(+)的概率为99%。而被检者不吸毒时,每次检测呈阴性(-)的概率为99%。从检测结果的概率来看,检测结果是比较准确的,但是贝叶斯定理却可以揭示一个潜在的问题。假设某公司将对其全体雇员进行一次鸦片吸食情况的检测,已知0.5%的雇员吸毒。我们想知道,每位医学检测呈阳性的雇员吸毒的概率有多高?令“D”为雇员吸毒事件,“N”为雇员不吸毒事件,“+”为检测呈阳性事件。可得

P(D)代表雇员吸毒的概率,不考虑其他情况,该值为0.005。因为公司的预先统计表明该公司的雇员中有0.5%的人吸食毒品,所以这个值就是D的先验概率。

P(N)代表雇员不吸毒的概率,显然,该值为0.995,也就是1-P(D)。

P(+|D)代表吸毒者阳性检出率,这是一个条件概率,由于阳性检测准确性是99%,因此该值为0.99。

P(+|N)代表不吸毒者阳性检出率,也就是出错检测的概率,该值为0.01,因为对于不吸毒者,其检测为阴性的概率为99%,因此,其被误检测成阳性的概率为1-99%。

P(+)代表不考虑其他因素的影响的阳性检出率。该值为0.0149或者1.49%。我们可以通过全概率公式计算得到:此概率 = 吸毒者阳性检出率(0.5%x 99% = 0.495%)+ 不吸毒者阳性检出率(99.5%x 1% = 0.995%)。P(+)=0.0149是检测呈阳性的先验概率。用数学公式描述为:

根据上述描述,我们可以计算某人检测呈阳性时确实吸毒的条件概率P(D|+):

 

我们也可以对这个例子做一下小结:

1.    对表象的判断依然非常明确,就是医学检测为阳性。

2.    真象的集合是确定的,就是吸毒或不吸毒。

3.    P(表象|真象)(吸毒者阳性检出率)依赖于医学检测本身的特性,而这儿是已知的。P(真象)(雇员吸毒的概率) 也是已知的。

4.    和第一个例子不一样的来了。这儿由于真象的集合只有两个:吸毒或不吸毒,因此P(表象)也是可以算出来的。从而可以最后算出每位医学检测呈阳性的雇员吸毒的概率。而在第一个例子中,为了求出P(表象),要求出所有单词的先验概率(P(真象))以及所有单词被打成那个错字的可能性大小(P(表象|真象))。可以想象,这个算出来的值未必就那么可靠了。

 

从上述两个例子中,我们可以看到,要将贝叶斯理论使用到某个场景,需要做一定的假设。如果假设找不到理论依据,那么贝叶斯理论的应用就不算成功。

·      对于真象的假设。我们假设出来一个现象,就能找到其对应的真象集合。不过在现实中,这往往无法实现。譬如某人得了某种病,也许有很多原因能导致这个病,但这个原因的集合往往无法判定边界。有的疑难杂症甚至找不到原因。

·      别忘了有时候多个真象对某个表象都有影响。

·      P(真象) 和P(表象|真象)也不一定好求。就像路遇美女那个例子里提到的,要知道美女随便喜欢一个人的概率(P(真象))其实也挺难,而P(表象|真象)在现实生活中也不一定能知道。

0 0