Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >贝叶斯:没有人比我更懂南京市长江大桥

贝叶斯:没有人比我更懂南京市长江大桥

作者头像
统计学家
发布于 2020-09-24 03:10:58
发布于 2020-09-24 03:10:58
6130
举报

摘要:贝叶斯方法对于由证据的积累来推测一个事物发生的概率具有重大作用,它告诉我们当我们要预测一个事物,我们需要的是首先根据已有的经验和知识推断一个先验概率,然后在新证据不断积累的情况下调整这个概率。用贝叶斯分析的方法,可以帮助我们解决生活中方方面面的问题,尤其在我们未来将有可能深入了解的机器学习,大数据挖掘,以及相关工程性问题中,有着极其重要的地位,接下来就让我们走进贝叶斯方法,通过一系列的例子来了解其含义及应用。

文章主线: ①引出贝叶斯方法的含义(1)。 ②通过模型比较理论体现出贝叶斯方法的优势所在(2)。 ③最后通过中文分词、机器翻译、最大似然与最小二乘、机器学习这几个实例来说明贝叶斯方法运用的普遍性(3)。

1. 贝叶斯学派与频率主义学派

简单说来,贝叶斯学派认为,概率是一个人对于一件事的信念强度,概率是主观的。但频率主义学派所持的是不同的观念:他们认为参数是客观存在的,即使是未知的,但都是固定值,不会改变。我参阅了一些资料,尝试以我们以前课堂上所学的概率论来解释一下,频率学派认为进行一定数量的重复实验后,如果出现某个现象的次数与总次数趋于某个值,那么这个比值就会倾向于固定。最简单的例子就是抛硬币了,在理想情况下,我们知道抛硬币正面朝上的概率会趋向于1/2。非常好理解不是么?但贝叶斯提出了一种截然不同的观念,他认为概率不应该这么简单地计算,而需要加入先验概率的考虑。先验概率也就是说,我们先设定一个假设(或信念,belief)。然后我们通过一定的实验来证明/推翻这个假设,这就是后验。随后,旧的后验会成为一个新的先验,如此重复下去。而归根结底,就得到了这样一个著名的公式:

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

(A | B表示A给定B的概率,也就是说,如果B发生,A发生的可能性有多大。反之亦然。)

2. 模型比较理论(ModelComparasion)

2.1模型比较

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

不过有时候我们必须得承认,就算是基于以往的经验,我们手头的“先验”概率还是均匀分布,这个时候就必须依赖用最大似然。可以用一个自然语言二义性问题来说明这一点:The girl saw theboy with a telescope.到底是 The girlsaw-with-a-telescope the boy 这一语法结构,还是 The girl sawthe-boy-with-a-telescope 呢?两种语法结构的常见程度都差不多。如果语法结构是 The girl sawthe-boy-with-a-telecope 的话,怎么那个男孩偏偏手里拿的就是望远镜?这也太小概率了吧。所以唯一的解释是,这个“巧合”背后肯定有它的必然性,这个必然性就是,如果我们将语法结构解释为 The girlsaw-with-a-telescope the boy 的话,就跟数据完美吻合了——既然那个女孩是用某个东西去看这个男孩的,那么这个东西是一个望远镜就完全可以解释了(不再是小概率事件了)。

2.2 最小描述长度原则

贝叶斯模型比较理论与信息论有一个有趣的关联: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 的编码长度。使这个和最小的模型就是最佳模型。

2.3 最优贝叶斯推理

推理分为两个过程,第一步是对观测数据建立一个模型。第二步则是使用这个模型来推测未知现象发生的概率。前面讲的都是对于观测数据给出最靠谱的那个模型。然而很多时候,虽然某个模型是所有模型里面最靠谱的,但是别的模型也并不是一点机会都没有。很多时候我们建立模型是为了推测未知的事情的发生概率,这个时候,不同的模型对未知的事情发生的概率都会有自己的预测,仅仅因为某一个模型概率稍大就只取它一个就太不科学了。所谓的最优贝叶斯推理就是将多个模型对于未知数据的预测结论加权平均起来(权值就是模型相应的概率)。这个推理已经把所有可能性都考虑进去,但由于计算模型可能非常费时间,它仅仅被视为一个理论基准。

3. 无处不在的贝叶斯

3.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)来。为了缓解这个问题,计算机科学家们用了“有限地平线”假设:假设句子中一个词的出现概率只依赖于它前面的有限的 k 个词(k一般不超过 3)。虽然这个假设很天真,但结果却表明它的结果往往是很好很强大的。有了这个假设,刚才那个乘积就可以改写成:P(W1) *P(W2|W1) * P(W3|W2) * P(W4|W3) .. (假设每个词只依赖于它前面的一个词)。统计 P(W2|W1) 就不再受到数据稀疏问题的困扰了。对于我们上面提到的例子“南京市长江大桥”,如果按照自左到右的贪婪方法分词的话,结果就成了“南京市长/江大桥”。但如果按照贝叶斯分词的话(假设使用 3-gram),由于“南京市长”和“江大桥”在语料库中一起出现的频率为 0 ,这个整句的概率便会被判定为 0 。从而使得“南京市/长江大桥”这一分词方式胜出。

有人可能会疑惑,难道我们人类也是基于这些天真的假设来进行推理的?不是的。事实上,统计机器学习方法所统计的东西往往处于相当表层的层面,在这个层面机器学习只能看到一些非常表面的现象,有一点科学研究的理念的人都知道:越是往表层去,世界就越是繁复多变。从机器学习的角度来说,特征就越多,成百上千维度都是可能的。特征一多,高维诅咒就产生了,数据就很稀疏,不够用。而人类的观察水平显然比机器学习的观察水平要更深入一些,为了避免数据稀疏我们不断地发明各种装置(最典型就是显微镜),来帮助我们直接深入到更深层的事物层面去观察更本质的联系,而不是在浅层对表面现象作统计归纳。举一个简单的例子,通过对大规模语料库的统计,机器学习可能会发现这样一个规律:所有的“他”都是不会穿裙子的,所有的“她”则都是会穿的。然而,作为一个男人,却完全无需进行任何统计学习,因为深层的规律就决定了他们根本不会去穿裙子。至于机器学习能不能完成后者的推理,则是人工智能领域的经典问题。至少在那之前,统计学习方法是不可能终结科学研究的。

3.2 统计机器翻译

统计机器翻译的问题可以描述为:给定一个句子e,它的可能的外文翻译f 中哪个是最靠谱的。即我们需要计算:P(f|e) 。一旦出现条件概率,贝叶斯总是挺身而出:P(f|e) ∝ P(f) * P(e|f),这个式子的右端很容易解释:那些先验概率较高,并且更可能生成句子 e 的外文句子 f 将会胜出。我们只需简单统计就可以得到任意一个外文句子 f 的出现概率。

然而 P(e|f) 却不是那么好求的。假设 e 为:John loves Mary,首选f是:Jean aime Marie。为了求出 P(e|f),我们需要考虑 e 和 f 有多少种对齐的可能性。为什么要对齐,是因为一旦对齐了之后,就可以容易地计算在这个对齐之下的 P(e|f) 是多大,只需计算:P(John|Jean) * P(loves|aime) * P(Marie|Mary)即可。然后我们遍历所有的对齐方式,并将每种对齐方式之下的翻译概率∑求和。便可以获得整个的 P(e|f) 是多大。

3.3 最大似然与最小二乘

学过线性代数的同学都知道用经典的最小二乘方法来做线性回归。问题描述是:给定平面上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]。

我们要想最大化的后验概率是: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 + ..

3.4统计建模

我们先将贝叶斯方法分为两类:一为统计建模,另一个为概率机器学习。后者包括了所谓的非参数方法。

建模通常在数据稀缺且难以获得时得以应用,比如在社会科学和其它难以进行大规模对照实验的环境中。想象一下,如果一个数据学家手头只拥有少量的数据,那么他会不遗余力地对算法进行调整,以期让每个数据都发挥最大的功用。

此外,对于小数据而言,最重要的是量化不确定性,这也正是贝叶斯方法所擅长的。而贝叶斯方法——尤其是MCMC——通常计算量巨大,这又与小数据是共存的。在名为《Data Analysis Using Regression Analysis andMultilevel /Hierarchical Models》(http://www.stat.columbia.edu/~gelman/arm/)的书中,介绍了从一个没有预测变量的线性模型开始,不断增加到11个预测变量的情况并进行讨论。这种劳动密集性模式实际上与我们的机器学习方向背道而驰,我们还是希望能使用数据,让计算机自动学习。

3.5 概率机器学习

我们现在尝试把“概率”一词替换“贝叶斯”。从这个角度而言,它与其它分类方法并没有区别。如果从分类考虑,大多数分类器都能够输出概率预测,比如最经典的SVM(支持变量机)。但需要指出的是,这些概率只是源于分类器的信念陈述,而它们是否符合真实的概率则完全是另一回事了,这也就是所谓的校准

贝叶斯非参数模型:接下来我们要说说贝叶斯非参数模型的一些内容,顾名思义,这个名字代表着模型中的参数数量可以随着数据的增大或减少而自适应模型的变化。这与SVM有些相似,它能在训练点中选择支持向量,而贝叶斯非参数模型也能根据数据多少来选择参数确定模型。比较流行的贝叶斯非参数模型包括高斯回归过程,还有隐含狄里克雷分布(LDA)。

高斯回归过程:高斯回归过程有点类似于SVM——采用内核并具有类似的可伸缩性。其最大的特点在于回归特性,分类做为事后的判断,而对于SVM而言,这个过程是相反的。此外,GP是从头开始进行概率判断,而SVM不是。大多数的常规方法只提供数据点估计,而贝叶斯非参数模型则会输出不确定性估计。高斯回归过程的流行主要应用于机器学习算法的超参数优化上。数据非常小,也只有几个参数需要调整。

后记:偶然间读了数学之美上的一篇文章——《平凡而又神奇的贝叶斯方法》,在被贝叶斯方法这一工具惊艳到的同时,也让我明白了概率论与数理统计与实际生产生活的联系之紧密。通过资料的查找,将概率论与未来可能深入学习的机器学习、大数据挖掘分析及互联网相关领域联系起来,让我更加明晰其内在含义与运行机制。

参考资料:《数学之美番外篇——平凡而又神奇的贝叶斯方法》,以及Google、Wikipedia 上关于机器学习,概率统计的示例及例子的条目。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与统计学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
WEB前端day1(HTML5+CSS3)
Outline轮廓 绘制于元素周围的一条线,在边框border的外围,起突出元素的作用。
王中阳Go
2022/10/26
6270
WEB前端day1(HTML5+CSS3)
一些小参考
工作区(你本身的电脑)和版本库(git仓库,仓库里面有git的主体和暂存区),首先是工作区提交到暂存区(可以重复很多次),然后暂存区提交到git主体就是提交改变内容,插入分支里面(git commit的话只会commit暂存区内容)
用户7267083
2022/12/08
6470
HTML 常见面试题速查
DOCTYPE 是 html5 标准网页声明,且必须声明在 HTML 文档的第一行。用来告知浏览器的解析器用什么文档标准来解析该文档,不同的渲染模式会影响到浏览器对于 CSS 代码甚至 JavaScript 的解析。
Cellinlab
2023/05/17
8210
HTML 常见面试题速查
HTML5新特性
HTML5是下一代HTML标准,是HTML最新的修订版本,2014年10月由万维网联盟W3C完成标准制定,HTML5将HTML从用于构造一个文档的一个简单标记,到一个完整的应用程序开发平台,HTML5还包括新元素和用于增强存储、多媒体和硬件访问的JavaScript APIs。
WindRunnerMax
2020/08/27
1.7K0
前端开发面试题总结之——HTML
---- 相关知识点 web标准、 web语义化、 浏览器内核、 兼容性、 html5... 题目&答案 Doctype作用?严格模式与混杂模式如何区分?它们有何意义(1)<!DOCTYPE>声明位于HTML文档中的第一行,处于<html>标签之前,用于告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。 (2)标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点
用户1667431
2018/04/18
1.9K0
前端开发面试题总结之——HTML
HTML5(九)——超强的 SVG 动画
SVG 动画有很多种实现方法,也有很大SVG动画库,现在我们就来介绍 svg动画实现方法都有哪些?
呆呆
2021/09/30
3.3K0
【前端面试题】01—42道常见的HTML5面试题(附答案)
HTML5为我们提供了更多的语义化标签、更丰富的元素属性,以及更让人欣喜的功能。但在面试中,HTML5部分的面试题主要考察应试者对HTML5API的掌握情况,这是HTML5的重点,也正是这些API推动了前端的发展。
前端达人
2021/03/16
5.6K0
【前端面试题】01—42道常见的HTML5面试题(附答案)
前端HTML5面试官和应试者一问一答
form特性在HTML5中,可以把从属于表单的元素放在任何地方,然后指定该元素的form特性值为表单的id,该元素就从属于表单。
达达前端
2021/01/14
2.1K0
前端HTML5面试官和应试者一问一答
HTML5学习笔记
参考资料:http://www.runoob.com/html/html-tutorial.html
易墨
2018/09/14
1.6K0
HTML5学习笔记
HTML5新特性
本章的主要内容有: ---- [1] 用于媒体回放的 video 和audio 元素 [2] HTML5拖放 [3] canvas简单应用 [4] Web存储: localStorage 和 SessionStorage [5] Input输入类型 [6] 表单类型 [7] 表单属性 [8] 地理定位 (geolocation) [9] Web Workers: Worker [10] 服务器发送事件 EventSource ---- [1] 用于媒体回放的 video 和audio 元素 video 支持
echobingo
2018/04/25
1.7K0
HTML5新特性
三种图表技术SVG、Canvas、WebGL 3D比较
因为前两项都是描述2D图形的,而WebGL是描述3d的,所以以下针对SVG和Canvas做比较。
IT人一直在路上
2019/09/16
3.8K0
HTML 面试知识点总结
本部分主要是笔者在复习 HTML 相关知识和一些相关面试题时所做的笔记,如果出现错误,希望大家指出!
不愿意做鱼的小鲸鱼
2022/09/26
2K0
HTML 面试知识点总结
前端面试那些坑之HTML篇
HTML 1、Doctype作用?标准模式与兼容模式各有什么区别? (1)、<!DOCTYPE>声明位于位于HTML文档中的第一行,处于<html> 标签之前。告知浏览器的解析器用什么文档标准解析这
用户1667431
2018/04/18
1.5K0
「资深前端工程师总结」前端面试知识点大全——html篇
定时让网页在3秒内跳转到mozilla首页(http-equiv 属性为名称/值对提供了名称。并指示服务器在发送实际的文档之前先在要传送给浏览器的 MIME 文档头部包含名称/值对。)
用户5997198
2019/08/12
2K0
「资深前端工程师总结」前端面试知识点大全——html篇
H5新增的特性及语义化标签
为了更好地处理今天的互联网应用,HTML5添加了很多新元素及功能,比如: 图形的绘制,多媒体内容,更好的页面结构,更好的形式 处理,和几个api拖放元素,定位,包括网页 应用程序缓存,存储,网络工作者,等
青梅煮码
2023/01/31
2.5K0
HTML5 学习总结(四)——canvas绘图、WebGL、SVG
一、Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术。<canvas> 标记和 SVG以及
张果
2018/01/04
9.8K0
HTML5 学习总结(四)——canvas绘图、WebGL、SVG
HTML5之API
  加载时直接播放音频的方式:new Audio("BY2.mp3").play();
JQ实验室
2022/02/09
5500
大厂前端面试考什么?5
以下是代码实现,实现了思路,但是可能会存在 Bug,但是这种设计题一般是给出设计思路和部分代码,不会需要写出一个无问题的代码
loveX001
2023/01/09
9990
01 . 前端之HTML
HTML(Hyper Text Markup Language)超文本标记语言,它不同于编程语言
iginkgo18
2020/09/27
1.7K0
01 . 前端之HTML
HTML5游戏开发实战–当心
1.WebSocket它是HTML5该标准的一部分。Web页面可以用它来连接到持久socketserver在。该接口提供一个浏览器和server与事件驱动的连接。这意味着client每次需要时不再server发送一个新的数据请求。
全栈程序员站长
2022/07/06
1.9K0
相关推荐
WEB前端day1(HTML5+CSS3)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档