龙空技术网

广东科学中心「院士说」 | 人工智能算法之一:贝叶斯算法

杜如虚院士 1425

前言:

现时大家对“算法贝叶斯”大致比较看重,兄弟们都想要剖析一些“算法贝叶斯”的相关内容。那么小编在网摘上搜集了一些关于“算法贝叶斯””的相关知识,希望同学们能喜欢,朋友们快快来了解一下吧!

原作始发于 广东科学中心 ,共分为五部分,本文为第一部分内容。

读者们都听过人工智能(Artificial Intelligence,简称AI)。顾名思义,人工智能是用计算机来代替人的思维,进而代替人的工作。

计算机靠什么来思维呢?那就是算法了。人工智能的算法有多种。

这里介绍其中一种:贝叶斯算法

//托马斯·贝叶斯//

托马斯·贝叶斯(Thomas Bayes,1702-1761)

托马斯·贝叶斯(Thomas Bayes,1702-1761)是18世纪英国神学家、数学家。

贝叶斯出生于一个牧师家庭,1719-1722年间在爱登堡大学学习神学与逻辑学。毕业后终身从事教会事业。1750年左右,他读到大卫·休谟(David Hume,1711—1776)的一本书,书中讲述了一套新的哲学思想,推崇实践理性,宣称神迹不可信。

休谟认为我们只能信赖我们的真实经历(We can rely only on what we learn from experience),这是因为我们可以计算原因(Cause, C)导致后果(Effect,E)的概率(即P(E/C),例如因为堵车(C),所以迟到(E);却不能够计算后果来自什么原因,即P(C/E),例如迟到(E)不一定是因为堵车(C)。一个确定的原因不能够肯定会导致一个确定的后果(We cannot be sure that a specific cause will lead to a specific effect)。

贝叶斯想要解决这个问题,因此开始钻研概率论,他写了两本书,其中有一本讲到提出了贝叶斯理论。

他举了个例子来说明:把一个球随机地扔在一张四方桌上,然后记录下球的位置(原因)。接着把另一些球同样地扔在四方桌上并记录下这些球与第一个球的相对位置(后果)。我们可以想想:如果所有后来扔出去的球都在第一个球的右边,那么第一个球会是在哪里?贝叶斯的结论是扔出的球越多(后果),我们就越能准确地判断第一个球会在哪里(原因)。他假定球落在四方桌上任何一个位置的概率都是一样的(这在概率论中叫做“均匀分布”),第一个球的位置是C(原因),随后扔出去球的位置是E(后果),他证明这个因果关系的概率P(C/E)是一个“Beta分布”。

贝叶斯逝世后,他的朋友理查德·普莱斯(Richard Price,1723-1791))花了两年的时间修改他的书稿,并在英国皇家学院宣读(他也因此入选英国皇家学院院士)。普莱斯认为这足以回应休谟提出的挑战。

比贝叶斯晚了半个世纪的法国人皮埃尔-西蒙·拉普拉斯 (Pierre-Simon Laplace,1749-1827)是人类历史上最伟大的数学家之一。

拉普拉斯出生于一个富裕的家庭。从小就才华出众。据说他去拜见著名的数学家让·勒朗·达朗贝尔(Jean le Rond d'Alembert,1717-1783),达朗贝尔给了他一本厚厚的数学书,叫他回家慢慢看。拉普拉斯两天就看完了,让达朗贝尔大为赞赏。

//皮埃尔-西蒙·拉普拉斯//

皮埃尔-西蒙·拉普拉斯 (Pierre-Simon Laplace,1749-1827)

达朗贝尔建议拉普拉斯去研究天文学。当时牛顿(Isaac Newton,1643-1727)的万有引力理论已经遍传欧洲。用万有引力理论计算的星体运行轨道却与观测值有所不同。

拉普拉斯意识到这是测量误差所致,他研究根概率论,给出了一个漂亮的解释:在观测到E(后果)后,各种不同Ci(原因)的发生概率分别为

当时,拉普拉斯不知道贝叶斯的工作。贝叶斯也没有如此清晰的表述。后来,拉普拉斯把这个结论进一步扩展:如果不同的原因发生的概率P(Ci)不一样,那么:

特别的是如果原因只有一个,那么上面的公式就成了:

这就是我们今天所说的贝叶斯公式了,它也许应该叫做拉普拉斯公式才对。

拉普拉斯用这个公式去分析法国的男女之比。不过由于数据太多(当时法国每年的出生人口有11万左右),他实在计算不出来。最后他做了一个估计:也许男女比例大于1是人类的特点。根据2010年的中国人口普查,男女比例为(51.27%/48.73%) = 1.052。

拉普拉斯对数学和物理学的贡献良多,除了概率论,还有流体力学、天文学等等。他的拉普拉斯变换(Laplace transform)是现代工程学不可或缺的利器。“学而优则仕”,1799年法国大革命后拿破仑(Napoléon Bonaparte,1789-1821)任命拉普拉斯当内政部部长,但过了6周就把他给罢免了,说他只会为小事情瞎忙。拉普拉斯回到学校继续做他的学问。他有一句名言:我们知道的不多,忽略的却太多(What we know is little, and what we are ignorant of is immense)。

在拉普拉斯以后的一百多年中,贝叶斯算法很少应用。这主要是因为数据太多了无法计算,而数据太少了又没有意义。到了第二次世界大战的时候,贝叶斯算法终于派上了大用途。

//贝叶斯算法应用//

英国科学家艾伦·图灵(Alan Mathison Turing,1912—1954)用贝叶斯算法破译了纳粹德国的密码,为盟军的胜利立下大功。图灵注意到:

德军的密码电报中会有天气预报,其中必有“天气”(Weather)一词;电报总是以“希特勒万岁”(heil Hitler)结尾;电报中总有“1”(eins)。

艾伦·图灵(Alan Mathison Turing,1912—1954)

据此,他用贝叶斯公式和字母排序的概率计算出所有字母的编码,并编制一个“1字表” (eins table)。战后,图灵还提出了自动计算的想法,是现代计算机技术的先驱。图灵是个同性恋者,这在当时被视为异端,他因此惨遭羞辱的“治疗”,最后服毒自尽。今天苹果公司那个缺了一块的苹果标记就是为了纪念他。

在冷战时期,美国国防部还用贝叶斯算法去估算苏联核潜艇的位置。其准确度让苏联人震惊。

//肺癌因果与诊断//

近年来随着计算机技术的高速发展,海量运算不再是个难题。贝叶斯算法在理论及实际应用两方面都有了很大的进步。下图是一个描述肺癌因果与诊断的贝叶斯网络。如图所示,空气污染(Pollution)和吸烟(Smoker)会导致肺癌(Cancer),而肺癌会导致呼吸困难(Dyspnoea);此外,肺癌可通过X光(XRay)检查出来。

肺癌因果与诊断的贝叶斯网络

贝叶斯算法需要定义三个要素:

(1) 变量。变量用网络的节点来表示,每个节点表示一个变量,这些变量可以是不同类型的,有不同的取值。例如,图4中有5个节点,表示5个变量。变量“污染”是二值的变量,取值为低(Low)或高(High);变量“吸烟者”是逻辑变量,取值为真(True)或假(False),等等。

(2) 因果关系。因果关系用箭头表示,从因到果。例如,在图4中有一个箭头从“吸烟者”指向“肺癌”意为吸烟引起肺癌。还有一个箭头从“肺癌”指向“X光检查”意为肺癌可由X光检查确认。

(3) 概率分布。每一个变量都有一个概率分布。在图4中有5个变量,每个变量都有特定的概率分布,包括:

污染的概率分布;吸烟者的概率分布;肺癌与污染及吸烟的概率关系;X光检查与肺癌的概率关系;呼吸困难与肺癌的概率关系。

有了上面的信息,我们可以做一系列各种各样的运算,例如:

预测:沿箭头顺推,根据原因预测后果,如肺癌患者有呼吸困难的概率;诊断:逆箭头反推,根据后果诊断原因。如已知呼吸困难诊断患肺癌的概率;排除:排除多个原因中的部分原因;组合:已知部分原因和后果,推断原因。

这些计算需要用到概率论的知识。有兴趣的读者可以参考相关书籍。

//总结//

贝叶斯算法的特别之处在于当有了新的数据时,可以递推地计算预测、诊断、排除和组合。而且数据越多,计算就越准确。这正是贝叶斯的初衷:我们要估计第一个球在哪里(原因),后来扔出去的球越多(后果),判断就越准确。

此外,贝叶斯算法的计算量也比传统的概率论方法大大减少。例如,如果一个贝叶斯网络有10个二值变量,那么传统的概率论计算方法就需要计算= 1024次;而贝叶斯算法只需要计算10×= 80次。这解决了一部分拉普拉斯想要解决的问题。

通过实验的方法获取数据耗费时日。在许多情况下我们可以建立一个数学模型,接着用计算机仿真来生成数据,然后再用贝叶斯算法进行分析。现在网上好几个贝叶斯算法的软件(如SPSS,PyMC3,WinBUGS等),都有这些功能。

人工智能被称为第四次工业革命的引擎。贝叶斯算法能够在复杂的数据中找到重要的因果关系,在各行各业中都会有很多应用。

S B McGrayne,《不会死的理论:贝叶斯》

参考书:Sharon Bertsch McGrayne,《不会死的理论:贝叶斯》The Theory That Would Not Die : How Bayes' Rule Cracked the Enigma Code, Hunted Down Russian Submarines, and Emerged Triumphant from Two Centuries of Controversy,Yale University Press,2011。这本书暂时还没有中译本。

撰稿:杜如虚

排版:慕橙

标签: #算法贝叶斯