图像处理基础知识系列之五:贝叶斯方法简单梳理
    
       文章来源:
        
        刘未鹏        数学之美番外篇:平凡而又神奇的贝叶斯方法(作者是个技术兼心理学大拿,有兴趣的童鞋可以深入了解一下)
        
        引用文章为百度搜索“贝叶斯”排名第二的搜索结果,这里仅摘抄其中自己感觉收获最大的两段(蓝色文字原文没有)。

1. 贝叶斯公式

贝叶斯公式是怎么来的?

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

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

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

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

我们来算一算:假设学校里面人的总数是 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) / [U * P(Boy) * P(Pants|Boy) + U * P(Girl) * P(Pants|Girl)] 。容易发现这里校园内人的总数是无关的,可以消去。于是得到

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

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

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(AB) 为A,B事件同时出现的概率=P(A)*P(B),A,B之间互不影响;P(B|A) 为在A的基础上(这里P(A)=1)出现B的概率,换句话说是B占A的多少。)

其实这个就等于:

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

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

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

2. 拼写纠正

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

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

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

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 本身在词汇表中被使用的可能性(频繁程度)大小(先验概率P(h) )和 想打 the (公式中对应着h,这里的the只是所有可能选项中的一个)却打成 thew(公式中对应着D,观测数据) 的可能性大小(似然)的乘积。(感觉这两句话是精髓,对于深入理解相对来讲一头雾水的干巴巴的公式,有了形象的认识。)

下面的事情就很简单了,对于我们猜测为可能的每个单词计算一下 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 的关联提取。

图像处理基础知识系列之五:贝叶斯方法简单梳理相关推荐

  1. 贝叶斯方法的思想基础

    进军概率深度学习的第一步,首先要弄清楚什么是贝叶斯深度学习. 而贝叶斯深度学习的基础是要搞明白贝叶斯的思想到底是个什么思想. 首先给出老生常谈的贝叶斯公式: 各种生动形象的例子就不自己想了,这里引用知 ...

  2. 详解凸优化、图神经网络、强化学习、贝叶斯方法等四大主题

    加入AI行业拿到高薪仅仅是职业生涯的开始.现阶段AI人才结构在不断升级,这也意味着如果目前仍然停留在调用一些函数库,则在未来1-2年内很大概率上会失去核心竞争力的.几年前如果熟练使用TensorFlo ...

  3. 详解机器学习的凸优化、图神经网络、强化学习、贝叶斯方法等四大主题

    AI是一门入门简单,但想深入却很难的学科,这也是为什么AI高端人才一直非常紧缺的重要原因.在AI领域技术领域,我们可以说机器学习功底决定了一个人的上限也不为过.为什么?机器学习就像物理学中的数学,如果 ...

  4. [work]从贝叶斯方法谈到贝叶斯网络

    0 引言 事实上,介绍贝叶斯定理.贝叶斯方法.贝叶斯推断的资料.书籍不少,比如<数理统计学简史>,以及<统计决策论及贝叶斯分析 James O.Berger著>等等,然介绍贝叶 ...

  5. 机器学习笔记:贝叶斯方法与正则化的关系

    贝叶斯方法与正则化 统计学分为两个学派:频率派和贝叶斯派. 频率派 频率派常用的参数估计方法为极大似然法(MLE),它的目标是让似然函数最大化,就是求出一个固定参数,这个参数使数据出现的概率最大. 假 ...

  6. 独家 | 为什么要尝试A/B测试的贝叶斯方法(附链接)

    作者:Michael Armanious 翻译:欧阳锦 校对:阿笛 本文约3400字,建议阅读8分钟 本文通过一个A/B测试的实例,介绍了贝叶斯方法的各种优点和具体的实现方法,同时也将贝叶斯推断方法与 ...

  7. 贝叶斯方法与连续值离散化

    https://www.toutiao.com/a6701998782122295819/ 奇技指南 实际算法工作中,需要经常处理特征值为连续值,而目标变量为可数属性的情况.这时, 将特征变量进行离散 ...

  8. 转:数学之美番外篇:平凡而又神奇的贝叶斯方法 收藏

    为什么80%的码农都做不了架构师?>>>    转自:http://blog.csdn.net/pongba/archive/2008/09/21/2958094.aspx 数学之美 ...

  9. [Python图像处理] 一.图像处理基础知识及OpenCV入门函数

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

最新文章

  1. PyTorch框架:(4)如何去构建数据
  2. Java集合工具类(三)-泛型集合工具类,用于便捷快速的定义、操作集合。包含Set的交集、并集......
  3. 在控制台中循环录入字符串,输入q时退出。 然后显示一个新的字符(Python)
  4. 史上最大规模高校分析技术大赛是如何诞生的
  5. Logistic回归与梯度上升算法
  6. linux实现shell,linux
  7. Ubuntu下设置环境变量的三种方法
  8. 8g内存一般占用多少_手机的运行内存6g和8g有什么区别?内行人一语道破,别被骗了...
  9. Codeforces903E Swapping Characters
  10. 2021年怎么自学前端?
  11. vue读取本地xlsx文件
  12. java docx 文档不可编辑、复制
  13. 拜访名寺古刹之圆通寺
  14. 知识存储之Apache Jena
  15. 一直想写的关于tarjan算法的理解——向struct edge大佬低头
  16. 华为是ICT人才培养的“黑土地”,谁又是浇水人呢?
  17. js与数组有关的函数:splice(),concat(),slice(),unshift()
  18. IE浏览器版本切换解决的问题
  19. ASP对接国际验证码接口DEMO示例
  20. 深度解析NRF24L01

热门文章

  1. 个人简记为css3,H5+css3春节贺卡之个人收获
  2. 【最新评估报告】最先进的EDR并不完美,无法检测到常见的攻击
  3. HTML5 video视频字幕的使用和制作
  4. 相邻块(数细胞)问题之BFS解
  5. 数字化城市大脑赋能社会治理现代化体系新动能
  6. matlab做神经网络的步骤,用matlab实现神经网络
  7. 关于@Test单元测试
  8. 反戈一击――流氓软件之父的嬗变之谜
  9. mysql实现心跳表_MySQL配备HeartBeat实现心跳监控和浮动IP
  10. nim2 取石头youxi