今天看论文的时候,看到了贝叶斯推理,搜索的时候,正巧搜到了一个大牛的博客,博客中对于贝叶斯推理的进阶实例讲解,真的是非常精彩,这里将自己对贝叶斯推理的收获记录下来。如有理解错误的地方,欢迎指正共同讨论~

为了一点基础也没有的同学观看方便,这里先介绍一些基本概念

先验概率与后验概率

1、先验概率

  • 定义:直观理解,所谓“先”,就是在事情之前,即在事情发生之前事情发生的概率。是根据以往经验和分析得到的概率。
  • 例子:比如抛硬币,我们都认为正面朝上的概率是0.5,这就是一种先验概率,在抛硬币前,我们只有常识。这个时候事情还没发生,我们进行概率判断。所谓的先验概率是对事情发生可能性猜测的数学表示

2、后验概率

  • 定义:事情已经发生了,事情发生可能有很多原因,判断事情发生时由哪个原因引起的概率。
  • 例子:比如今天你没去学校,原因有两个,可能是生病了,也可能是自行车坏了。然后上课时老师发现你没来。(这里是一个结果,就是你没来学校这件事情已经发生了)老师叫同学计算一下概率,分别是因为生病了没来学校的概率和自行车坏了没来学校的概率。

贝叶斯定理

开始谈贝叶斯定理之前,必须首先从条件概率 (conditional probability) 说起。所谓条件概率,就是在一个事件发生的情况下,去判断另一个相关联的事件发生的概率,或者简单说,就是指在事件 B 发生的情况下,事件 A 发生的概率。通常记为 P(A|B) 。接下来对贝叶斯公式做一个简单的推导,根据概率知识,我们可以求得 P(A|B) 为:
P(A∣B)=P(AB)P(B)P(A|B) = \frac{P(AB)}{P(B)} P(A∣B)=P(B)P(AB)​
同理可得:
P(B∣A)=P(AB)P(A)P(B|A) = \frac{P(AB)}{P(A)} P(B∣A)=P(A)P(AB)​
所以可以得到:
P(A∣B)∗P(B)=P(B∣A)∗P(A)P(A|B) *P(B) = P(B|A)*P(A) P(A∣B)∗P(B)=P(B∣A)∗P(A)
最终可以得到大名鼎鼎的贝叶斯公式:
P(A∣B)=P(B∣A)∗P(A)P(B)P(A|B) = \frac{P(B|A)*P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)∗P(A)​

实例一、偷窃与狗吠

​ 住在一座别墅里的一家人,在过去的 20 年中,发生了 2 次盗窃,这家人养了一只狗,这只狗平均每周晚上叫 3 次,而且,当发生盗窃时,这只狗会叫的概率是 0.9,那么问题是:在这只狗叫的情况下,发生盗窃的概率是多少?

​ 我们假设 A 事件是狗晚上叫,则 P(A) = 3/7 ,假设 B 事件是发生盗窃,则P(B) = 2/365*20 。我们还知道,当 B 事件发生的条件下,A 事件发生的概率 P(A|B) = 0.9 。因此,根据贝叶斯公式,我们推断得到,狗叫时,发生盗窃的概率,即:
P(B∣A)=P(A∣B)∗P(B)P(A)=(结果略)P(B|A) = \frac{P(A|B)*P(B)}{P(A)} = (结果略) P(B∣A)=P(A)P(A∣B)∗P(B)​=(结果略)

实例二、兽医领域的贝叶斯推理

当去看兽医时,需要给小狗称重,但是小狗总是喜欢在秤上晃来晃去,这样就很难得到准确的体重,但是这个体重是否准确还是很关键的。要根据狗狗的体重变化相应控制饮食。就这样,在狗狗的来回晃动中,我们测得了三组数据,分别是13.9磅、17.5磅、14.1磅。通过计算这组数据的均值、标准差就可以得到小狗的称重分布图
注:默认总体服从正太分布

上面这个图就是狗的称重分布图,它是一个均值为15.2标准差为1.2的正态分布,三条白线是我们三次实际测量的结果,从这条曲线可以看出,尽管峰值为15.2但在13处很容易达到一个很低的值,在17处很容易达到一个很高的值。
但由于过于宽泛,我们很难做出一个更加准确的预测,当遇到这种情况时,我们可以进行更多次的测量,但是在某些情况下多次测量是不可行的。
比如说,我们的例子中,在狗狗失去耐心前,也只能进行这几次的测量

这个时候贝叶斯定理就派上用场了。

为了更清楚的描述贝叶斯的使用,我们用w(体重)和m(称重得到的体重)替换A和B。

  • 先验概率P(w)表示我们对已有事物的认知,在这里为:在狗狗称重前,我们认为的它的体重为w的概率

  • 似然值P(m | w)表示在狗狗体重为w的情况下,测量狗狗得到他的体重为m的概率

  • 后验P(w | m)表示测量体重为m的时候,实际体重为w的概率,当然这也是我们最关心的

  • P(m)表示测出体重为m的概率,本例中我们假设它为一常量,且测量本身是无偏的。

假定狗狗的体重是 13磅或者15磅或者1磅或者1000000磅的概率是一样的,因此我们假设一个统一的先验,这意味着它的概率分布对于所有的值都是一个常数,因此可以将贝叶斯定理简化为P(w | m) = P(m | w)

注:很多文章对这个例子的原文都进行了翻译讲解,但在这个地方说的不清楚,这里我的理解是,由于我们什么前置条件都没有,所以我们得到的称重重量为k的概率=狗狗实际重量为k的概率=某个常数。所以才会有上述贝叶斯定理的简化形式

借助狗狗的每个可能体重我们可以得到三个测量值的似然值,比如,如果体重是1000磅,那么我们的测量结果是极不可能的。如果体重实际上是14磅或16磅,那么我们的测量值是很有可能的。

注:这里通过上述贝叶斯公式,来测试正态分布的位置参数μ\muμ的最大可能值,同时,这个值也就是狗狗真正体重的最大可能值

我们可以遍历体重的每一个假设值计算我们的测量结果的似然值,这就是P(m | w),得益于均一的先验,所以它等同于后验分布P(w | m)。这并非偶然,通过均值、标准偏差、标准差计算得来的结果,虽然很像我们计算出来的答案。

计算出来的5.2也被称为最大似然估计MLE

虽然使用了贝叶斯定理,但离有用的估计还差一些距离。为此,我们需要均一的先验概率,先验概率表示我们在进行测量之前对某一事物的信任程度。均一的先验概率说明我们相信每一个可能的结果都具有相同的概率,这通常很少见。我们通常知道我们测量的量年龄总是大于零,温度总是高于-276摄氏度,成年人的身高很少超过8英尺。有时候我们有额外的领域知识,有些值很有可能出现在其他值中。

注:也就是说如果在不认为称重重量为k的概率=狗狗实际重量为k的概率=某个常数的情况下,比如说我们有某些前置信息(通常都会有),该怎么做呢?

在狗狗的称重案例中,还有一些其他的信息,比如,上次去看兽医时它的体重是14.2磅,而且这段时间并没有感觉到它有明显的变重和减轻。虽然手臂并不能准确的感觉到这个重量的变化。鉴于此,我们粗略的估计它大概有14.2磅,可能有上下一两磅的偏差,为了方便,我们使用一个最大值14.2,标准差为0.5的正态分布表示

有了先验概率,我们就可以重复计算后验概率。为此,我们考虑一种可能性,假设狗狗的重量为一特定值,比如说17磅,然后17磅这一似然值乘以测量值为17的条件概率,接着对于其他的体重,重复这一过程。先验的作用是降低某些概率,扩大其他概率。本例中,增加更多的测量值在13-15磅之间,之外的区间减少测量值,这与均一先验概率是不同的。它给出了一个狗狗体重是17磅的合理的可能性,在非均一先验概率下,17磅落在正太分布的尾部,乘以该处的概率使17磅体重的似然值降的很低。

注:
P(w∣m)=P(m∣w)∗P(w)P(w|m) = P(m|w) * P(w)P(w∣m)=P(m∣w)∗P(w)
P(w)根据我们前置条件构造的正太分布获取概率,通过前置条件我们能缩紧峰值

通过计算狗狗每一个可能的体重的概率,我们得到一个新的后验概率。后验概率分布的峰值也叫作最大后验概率(MAP),在本例中为14.1磅。这与之前使用均一先验概率计算的结果明显不同,此峰值更窄,有助于我们做出更可信的估计。现在看,狗狗的体重变化不大,它的体型依旧如前。

通过整合我们的认知以及测量值,我们能够更有信心的做出一个更准确的估计。有助于我们使用更小的数据集。先验概率赋予17.5磅一个很低的概率值,这几乎等同于反对此偏离正常值的测量值。不同于直觉和常识的异常检测方式,贝叶斯定理有助于我们使用数学的方式进行异常检测。

另外,我们假设P(m)是均一的,碰巧我们知道我们的测量存在某种程度上的偏差,这将反映在P(m)中,如果测量仅仅输出一些偶数或者10%的时间内返回一个2.0或者每三次测量产生一个随机数,那么必须手动修改P(m)以提高后验概率的准确性

参考文章

https://brohrer.github.io/how_bayesian_inference_works.html
https%3A%2F%2Fdocs.google.com%2Fpresentation%2Fd%2F1325yenZP_VdHoVj-tU0AnbQUxFwb8Fl1VdyAAUxEzfg%2Fedit%3Fusp%3Dsharing&redir_token=xNLRKoRFaGbCEAjYDtHinLzED2V8MTU3MzA0OTA1NEAxNTcyOTYyNjU0&v=5NMxiOGL39M&event=video_description
https://blog.csdn.net/qq_40597317/article/details/81002463
https://zhuanlan.zhihu.com/p/44266960

【实例讲解】贝叶斯推理原理相关推荐

  1. Java JUC之Atomic系列12大类实例讲解和原理分解

    http://blog.csdn.net/xieyuooo/article/details/8594713 在java6以后我们不但接触到了Lock相关的锁,也接触到了很多更加乐观的原子修改操作,也就 ...

  2. 断点续传的原理剖析与实例讲解

    断点续传的原理剖析与实例讲解 本文所要讲的是Android断点续传的内容,以实例的形式进行了详细介绍. 一.断点续传的原理 其实断点续传的原理很简单,就是在http的请求上和一般的下载有所不同而已. ...

  3. 手摸手教你数据可视化!(附实例讲解)

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:CrescentAI,华南理工大学,Datawhale优秀学习者 ...

  4. 【Python基础】手把手教你数据可视化!(附实例讲解)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者:CrescentAI,华南理工大学,Datawhale优秀学 ...

  5. linux Shell(脚本)编程入门实例讲解详解

    linux Shell(脚本)编程入门实例讲解详解 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集, ...

  6. php接口开发 安全_PHP开发api接口安全验证的实例讲解

    php的api接口 在实际工作中,使用PHP写api接口是经常做的,PHP写好接口后,前台就可以通过链接获取接口提供的数据,而返回的数据一般分为两种情况,xml和json,在这个过程中,服务器并不知道 ...

  7. python dataframe 列_python pandas库中DataFrame对行和列的操作实例讲解

    用pandas中的DataFrame时选取行或列: import numpy as np import pandas as pd from pandas import Sereis, DataFram ...

  8. python中locals函数_Python神奇的内置函数locals的实例讲解

    摘要 本文我们介绍神奇的locals函数,包括动态创建变量和动态访问变量,以及一个应用场景. 相同属性不相邻问题 需求:有两个list,分别为list1和list2.list1中有n个对象,每个对象有 ...

  9. 实例讲解基于 React+Redux 的前端开发流程

    前言:在当下的前端界,react 和 redux 发展得如火如荼,react 在 github 的 star 数达 42000 +,超过了 jquery 的 39000+,也即将超过前几年比较火的an ...

最新文章

  1. VS2013+OpenCV3.1.0配置教程
  2. SAMBA的一些特殊设置
  3. redis 3.2.1 centos7
  4. vector、map 内存释放
  5. vb与matlab数据交互时间延时多长,VB中实现延时(等待)的几种方法
  6. hapi mysql项目实战路由初始化_用hapi.js mysql和nuxt.js(vue ssr)开发仿简书的博客项目...
  7. vfp程序转换为c语言程序软件,c语言程序设计及vfp程序设计试题.doc
  8. 记几种解决跨域问题的办法
  9. 【C++入门】从C到C++
  10. ubuntu 12.04 server + OPENACS(TR069)安装配置日记
  11. java基本数据类型的变量
  12. Android入门之本地音乐播放器
  13. 带宽和下载速度的关系
  14. 一文读懂:DNA甲基化的作用及各种高通量检测方法比较
  15. uniapp 查看图片点击放大预览图片 单张 多张
  16. Python自动化测试如何自动生成测试用例?
  17. Nvivo使用步骤记录
  18. 青少年编程scratch一级-熟悉编程软件(答案及详解+线上题库答题)
  19. 发现美,创造美,拥有美^_^.
  20. python第十四课 面向对象(三)

热门文章

  1. ISTA2A认证试验项目
  2. JS - 使用slice截取数组
  3. python局域网嗅探_使用python来嗅探局域网内的qiuqiu号码
  4. 【用tk写小游戏系列】用tk自制小游戏【有奖问答】
  5. 心动公司:重磅新品表现不俗,产品周期全面兑现
  6. C语言中自定义函数返回数组类型
  7. 简约但不简单 干净但有质感
  8. 计算机蓝屏原因原理,电脑蓝屏的正确处理方式
  9. vi 和 vim 文本编辑器
  10. 现在的我不知道下一步该怎么走?