作者:黄永刚

初次接触《概率论与数理统计》这门课的时候,脑袋中只有三个词:黑球、白球、袋子,所有的课程内容就是先取,后取,接触一月之后成功的被放趴下了,因此对于这门课程是没有什么好感的,考试也在“互助互爱”中顺利通过了。

大三为了准备考研又不得不再次拿起了那本厚厚的同济绿皮书,但也只是学会了先取和后取的区别和一些运算的技巧。脑海里一直存在一个疑问学这些球,用处何在?等到上研期间接触到一些应用才逐渐有所领悟,渐渐的惊讶于它的神奇与美妙。

这篇文章选择对于概率论中的贝叶斯理论进行阐述,由于网络上已经存在一些里程碑式的经典之作,因此尝试站在巨人的肩膀上讲一些另类的东西。

本文主要分为三个部分:

第一部分在引入贝叶斯公式的基础上介绍它的部分应用;

第二部分主要介绍贝斯理论的核心观念;

第三部分论述贝叶斯理论对于个人生活的启示。

SECTION 1 贝叶斯理论及应用

维基百科的陈述如下:

贝叶斯定理是关于随机事件A和B的条件概率的一则定理。

其中P(A|B)是在B发生的情况下A发生的可能性。

在贝叶斯定理中,每个名词都有约定俗成的名称:

P(A|B)是已知B发生后A的条件概率,也由于得自B的取值而被称作A的后验概率。

P(B|A)是已知A生发后B的条件概率,也由于得自A的取值而被称作B的后验概率。

P(A)是A的先验概率或(或边缘概率)。之所以称为”先验”是因为它不考虑任何B方面的因素。

P(B)是B的先验概率或边缘概率。

按这些术语,贝叶斯定理可表述为:

后验概率 = (相似度*先验概率)/标准化常量

也就是说,后验概率与先验概率和相似度的乘积成正比。

例子:

重复的抛掷一枚具有两个面的物体,抛出去5次,5次正面,0次反面,从正常的概率角度即相似度去推断,下一次抛掷得到正面的概率是1,得到反面的概率是0;那如果我告诉你这个物体就是硬币的时候,大家很容易知道这个推断不成立的,大脑的意识告诉我们抛掷一次硬币得到正反面的概率应该近似相等地;我们会考虑到,抛掷硬币之间是相互独立的,每一次抛掷的结果是不受前面结果的影响的,它下一次抛掷的结果得到正反面的概率应该还是近似相等的。

这里的思考过程就是我们上面说到的先验P(A),先于我们抛掷硬币事件之前形成的知识或意识;而前面得到五次都是正面,是不是这个硬币不均匀啊?是不是应该放大一下正面的概率为好!这里思考就是相似度起作用的过程P(B|A),因此整个决策过程就是相似度和先验概率共同作用的过程。

这里的事件B就是五次正面,0次反面的条件下,求事件A即下次抛掷结果的概率即求P(A|B)大小。

再来看下面这个句子:

The girl saw the boy with a telescope.

你对这句话的含义有什么猜测?平常人肯定会说:那个女孩拿望远镜看见了那个男孩(即你对这个句子背后的实际语法结构的猜测是:The girl saw-with-a-telescope the boy )。然而,仔细一想,你会发现这个句子完全可以解释成:那个女孩看见了那个拿着望远镜的男孩(即:The girl saw the-boy-with-a-telescope )。

那为什么平常生活中我们每个人都能够迅速地对这种二义性进行消解呢?这是因为saw和telescope一起出现的可能性要比一个拿着telescope的男孩出现的可能性要高,如果把男孩换成猎人,我们的理解又会变成另外一种了,此时猎人的组合又比小女孩用telescope看出现的可能性更高。telescope和saw更搭还是和男孩更搭配,是小女孩和telescope搭配还是猎人和telescope更搭一些,我们大脑中对于这个判断所使用的意识,在贝叶斯理论中就称为先验P(A);在忽略这种先验的情况下,boy with a telescope和The girl saw with a telescope在相似性度量上是相同的即P(B|A)。后验概率与先验概率和相似度的乘积成正比,因此在相似度相同和先验概率不同的情况下就很容易区分出这个语句的具体含义了。

由于贝叶斯理论简单并描述了事物判断的本质,因此在众多方面都有应用。例如自动拼写纠正、机器翻译、垃圾邮件过滤、中文分词等等都应用到了贝叶斯理论,还有机器学习等学科中各种复杂理论都多多少少能够看到贝叶斯的身影,如:贝叶斯网络、马尔科夫模型、条件随机场、模型选择理论等等,最权威的证据就是Christopher Bishop 从贝叶斯角度的诠释—机器学习的“圣经”PRML。在实践中直接产生巨大影响的,如后面链接中松鼠会文章讲述的美国海军在汪洋大海里搜索丢失的氢弹、失踪的核潜艇、数盟文章中联邦党人文集作者公案均使用贝叶斯理论。

【郑重提醒,先验概率里面的“先验”并不是指先于一切经验,而是仅指先于“当前”给出的观测数据而已,并非“先天”。】

下面这幅图是随意找的贝叶斯理论在其他领域的研究(去除掉了贝叶斯的主要的两个应用领域金融和计算机领域)。

贝叶斯理论几乎已经渗透到我们生活的各个方面中。我们每时每刻也在应用这些理论,像松鼠会文章中介绍的把妹经历等,前几年很火的”微笑表哥“事件可谓是一块表引起的战火等。我给我的母亲说过这样一段话:我的一生就像作画一样,你们在我还是一张白纸的时候就勾勒出一个人的轮廓了;具体的眼睛大小、眉毛风格、发型样式才是我们努力描绘的,但是不论我们多么努力,它最终只会成为一幅人物画。对于成为人物画还是山水画,我们是无法控制的。

我所说的无法控制的东西也就是我们上面所说的先验P(A),我们努力改变的就是P(B|A),人生的成功和事件的成功不仅仅受我们自己控制即P(B|A),还受到P(A)控制,所以有的时候事情的失败或不如意原因并不能全归咎于我们努力的不够。很多时候,不是它不存在而是你没有意识到它的存在而已,就像这里的P(A)。

SECTION 2

当你不能准确知悉一个事物的本质时,你可以依靠与特定本质相关事件出现的频率去判断其本质属性的概率。用数学语言表达就是:支持某项属性的事件发生得愈多,则该属性成立的可能性就愈大。

拉普拉斯关心的问题是:当存在着大量数据,但数据又可能有各种各样的错误和遗漏的时候,我们如何才能从中找到真实的规律。

经典统计学,或者叫频率主义统计学:从理论上讲,它可以揭示一切现象产生的原因,既不需要构建模型,也不需要默认条件,只要进行足够多次的测量,隐藏在数据背后的原因就会自动揭开面纱

在经典统计学看来,科学是关于客观事实的研究,我们只要反复观察一个可重复的现象,直到积累了足够多的数据,就能从中推断出有意义的规律。而贝叶斯方法却要求科学家像算命先生一样,从主观猜测出发【先验】,这显然不符合科学精神。就连拉普拉斯后来也放弃了贝叶斯方法这一思路,转向经典统计学。因为他发现,如果数据量足够大,人们完全可以通过直接研究这些样本来推断总体的规律。

但后来事实证明在认识事物不全面的情况下,贝叶斯方法是一种很好的利用经验帮助作出更合理判断的方法。

经典统计学比较适合于解决小型的问题,同时该方法要求我们获得足够多的样本数据,而且要求这些样本能够代表数据的整体特征。在处理涉及几个参数的问题时,它可以得心应手。但如果相对于问题的复杂程度,我们只掌握少量的信息时经典统计学就显得力不从心了,原因就是数据的稀疏性问题

根据采样定理进行估算,采用经典统计学方法至少需要获得1%-10%的样本才能确定其整体特征,因此对于少量信息经典统计学是不适用地。

贝叶斯公式的价值在于,当观测数据不充分时,它可以将专家意见和原始数据进行综合,以弥补测量中的不足。我们的认知缺陷越大,贝叶斯公式的价值就越大。

人工智能近年来取得了长足的进步,但目前的人工智能通常需要从大量的数据中进行学习,而人类具有“仅从少量案例就形成概念”的能力,两者之间存在巨大差距。比如,尽管你这辈子只见过一个菠萝,但你一眼就能看出菠萝的特征,很快就能从一堆水果中认出菠萝来,甚至还能在纸上画出菠萝的简笔画,而目前的人工智能算法得看成千上万张菠萝的图片才能做到。

当科学不断强调其对世界认识的客观性时,贝叶斯公式却融入了主观性因素:它并不向我们表述世界,而是表述我们所掌握的知识和经验。这些带有观察者个人因素的知识是脱离研究现象本身的;而它在向我们描述外部现实世界的同时,也描述了观察者对现实的认知。更重要的,它迫使我们认识到,科学理论和科学模型反映的是现实的心理意象,而不是现实本身。而现实为我们提供数据,以保证对现实的意象不会离现实本身太远。在寻找各种现象原因的同时,它也在规范着我们的思想。

我们经常需要在信息不充分或者不准确的情况下进行判断和决策,一条街上哪个饭馆最靠谱?在自习室惊鸿一瞥的女神有没有男朋友?老公的公文包里发现一只口红,他有没有出轨?新开发的App应该等做得尽善尽美再发布,还是应该尽早发布,用互联网的力量帮助它完善?我应该选择哪个工作offer或者还是考公务员才能使自己的收益最大化?

贝叶斯公式为我们提供了一些决策原则:

平时注意观察和思考,建立自己的思维框架,这样在面临选择时就容易形成一个接近实际情况的先验概率,这样经过少量的试错和纠错的迭代循环就可能得到理想的结果;在经过很多次选择和实践的历练后就能够形成自己的直觉,在面对陌生情况时,根据自己的经验和少量信息就能够快速地做出比较准确的判断。

SECTION 3

农夫想象中的皇宫生活是“皇帝用的一定是金扁担”,农妇想象中的生活是“西宫娘娘摊鸡蛋,东宫娘娘烙大饼”,早期的科幻小说,如凡尔纳那个系列的,对于未来生活的高科技描写大多基于机械革新,各种按键各种机器,因为那是机械时代的作品。之后的科幻小说中的机械,大多是触屏全息屏很少有整排整排的按键出现了。为什么?因为我们的知识结构升级了,我们知道我们不需要那样键盘装的按钮出现在高科技的未来中了。或许将来我们对未来的想象还会新的提升。而这些想象,都是基于我们对现在世界的了解。

插播几张朝鲜人民对中国的想象,这想象力,这违和感……。



因此,一个人在生活中基于对世界的认识,建立起自己的先验系统,再此基础上结合当前情况作出想象、选择和判断。

对于普通人要提高自己的效率和生活质量,在先验的建立上可以从以下两点着手:一是保持好奇心,尽可能多的参与人生体验,没试过的都试试。年纪轻轻就开始追求“平淡是真”的,多半是因为见识太短;二是多阅读,因为阅读是获取知识面的最廉价的办法,没有之一。

总结

贝叶斯理论的应用从开始就处在我们生活的各个方面,简单的理论在生活中表现却如此的丰富多彩,人们称数学是上帝的语言,从此就可见一斑了。

谈起数学理论很多人第一时间都会皱眉头,在十几近二十年的求学生涯中,我们从根源上已经产生了一种排异反应。但当我们一次一次的从生活具体的现象和事物中去深入思考的时候,那些最核心、最有趣的却是这些数学理论;当一次次的发现生活中到处渗透着数学理论甚至生活就是数学规律的各种表现形式的结合体时,我们不禁苦笑……。重新接纳数学,将其融入我们的生活中和思想中是需要时间的,还有很长的路要走。最后愿与诸君共勉。

reference

王晓峰,大数据背后的神秘公式(上):贝叶斯公式,http://dataunion.org/25353.html,2016-04-15.

Albert_JIAO,死理性派是怎样判断漂亮女孩是不是单身的,

http://songshuhui.net/archives/62770,2011-12-20.

王小圈,如何变成有趣的人,

http://mp.weixin.qq.com/s?__biz=MzA4ODM1MTMzMQ==&mid=504308124&idx=6&sn=7e4800ba0c9749f19d09f5aacadff4c1&scene=18#wechat_redirect,2016-06-08.

刘未鹏,数学之美番外篇:平凡而又神奇的贝叶斯方法,

http://mindhacks.cn/2008/09/21/the-magical-bayesian-method/,2008-09-21.

LeftNotEasy,贝叶斯、概率分布与机器习,

http://www.cnblogs.com/LeftNotEasy/archive/2010/09/27/1837163.html,2010-09-27.


本文原创首发于公众号:老王和他的IT界朋友们

微信扫描关注微信号:(原创投稿有惊喜!!!)

判断&数学&生活的更多相关文章

  1. HDU 6108(整除判断 数学)

    题意是求在给定的 P 进制下,满足条件的数字 B 有多少.条件:若任何一个数的各位数字之和能被 B 整除,则该数可被 B 整除. 在 p 进制下,每个正整数都可以都可以表示为:a0*p^0 + a1* ...

  2. Python学习笔记【第三篇】:if判断、while循环、for循环

    如果某些条件满足,才能做某件事情,而不满足时不允许做,这就是所谓的判断 不仅生活中有,在软件开发中“判断”功能也经常会用到 if判断语句 if 要判断的条件: 条件成立 num = 50 if num ...

  3. 数学与猜想 合情推理模式 (G. 波利亚 著)

    第十二章 几个著名模式 (已看) $1. 证实一个结论 $2. 连续证实几个结论 $3. 证实一个未必可信的结论 $4. 类比推理 $5. 加深类比 $6. 被隐没的类比推理 第十三章 更多的模式与最 ...

  4. python学习之路-1 python基础操作

    本篇所涉及的内容 变量 常量 字符编码 用户交互input 格式化字符串 python的缩进规则 注释 初始模块 条件判断 循环 变量 变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中 ...

  5. [蓝桥杯]2015蓝桥省赛B组题目及详解

    /*——————————————————————————————————————————————————————————— [结果填空题]T1 题目:奖券数目 有些人很迷信数字,比如带“4”的数字,认 ...

  6. Django MTV simple_tag filter inclusion_tag

    Django框架 模型(Model).视图(View)和控制器(Controller),具有耦合性低.重用性高.生命周期成本低等优点. MVC 框架 --  Model -View -Controll ...

  7. python-判断语句介绍

    1.生活中的判断场景 1.1 火车站安检 1.2 上网吧 2.开发中的判断场景 2.1 密码判断 2.2 重要日期判断 if 今天是周六或者周日: 约妹子 if 今天是情人节: 买玫瑰 if 今天发工 ...

  8. Golang的选择结构-switch语句

    Golang的选择结构-switch语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.选择语句应用场景概述 选择结构也称为条件判断,生活中关于判断的场景也非常的多,比如: ( ...

  9. Golang的选择结构-if语句

    Golang的选择结构-if语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.选择语句应用场景概述 选择结构也称为条件判断,生活中关于判断的场景也非常的多,比如: ()登录Q ...

随机推荐

  1. 基于vue2.0的一个系统

    前言 这是一个用vue做的单页面管理系统,这里只是介绍架子搭建思路 前端架构 沿用Vue全家桶系列开发,主要技术栈:vue2.x+vue-router+vuex+element-ui1.x+axios ...

  2. Win10 VS2012 无法注册IIS4.0 解决方案

    死活注册不上,度娘也找了,最终找到只要打个补丁就行. 安装: Microsoft Visual Studio 2012 更新 (KB3002339) 下载:http://www.microsoft.c ...

  3. JavaScript数据结构与算法(六) 链表的实现

    // 链表存储有序的元素集合,但不同于数组,链表中的元素在内存中并不是连续放置的.每个 // 元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成.下图展 // 示了一个链表的 ...

  4. ASP.NET Core + Docker +Jenkins 实现持续集成

    1.新建一个ASP.NET Core MVC应用程序: 2.将其上传到git: 3.建立Jenkins任务 (1)选择"新建任务",输入任务名称,选择"自由风格项目&qu ...

  5. Error:ivalue require as left operant of assignment

    Error:ivalue require as left operant of assignment 解答:该错误的意思是左操作数必须为左值,这个发生错误的原因在于赋值符号的左边不能是已确定的值,如: ...

  6. [HAOI2006]数字序列

    题目描述 现在我们有一个长度为n的整数序列A.但是它太不好看了,于是我们希望把它变成一个单调严格上升的序列.但是不希望改变过多的数,也不希望改变的幅度太大. 输入输出格式 输入格式: 第一行包含一个数 ...

  7. bzoj 1835: [ZJOI2010]基站选址

    Description 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di.需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci.如果在距离第i个村庄 ...

  8. [Codeforces]605E Intergalaxy Trips

    小C比较棘手的概率期望题,感觉以后这样的题还会贴几道出来. Description 给定一个n*n的邻接矩阵,邻接矩阵中元素pi,j表示的是从 i 到 j 这条单向道路在这一秒出现的概率百分比,走一条 ...

  9. Nginx+uWSGI+Django环境配置

    通常项目会部署在虚拟环境,虚拟环境的使用可以参考这里,点击前往 当然你也可以直接部署,这里不多说. 一.安装uWSGI 1.通过pip安装 pip install uwsgi 这里只说明了一种安装方式 ...

  10. python day3_liaoxuefeng

    1.Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子: names = ['Michael', 'Bob', 'Tracy'] for na ...