有一枚硬币(不知道它是否公平),假如抛了三次,三次都是“花”:

能够说明它两面都是“花”吗?

1 贝叶斯推断

按照传统的算法,抛了三次得到三次“花”,那么“花”的概率应该是:

但是抛三次实在太少了,完全有可能是运气问题。我们应该怎么办?

托马斯·贝叶斯(1702-1761),18世纪英国数学家,1742年成为英国皇家学会会员。

贝叶斯认为在实验之前,应根据不同的情况对硬币有所假设。不同的假设会得到不同的推断。

比如和滑不溜手的韦小宝玩。韦小宝可能拿出各种做过手脚的硬币,让我们猜不透,只能假设对硬币一无所知。这种假设之下,我们就只能根据实验结果来猜测。

因此,实验结果是“扔三次,三次花”,倾向于认为韦小宝有可能作弊:

大侠陈近南用的可能是公平硬币:

而憨坏的多隆,真的有可能用两面“花”来和你玩:

各种假设称为先验分布,结合刚才“扔三次,三次花”的实验数据,推断出硬币的后验分布,这就是贝叶斯推断:

这里补充一下,可能大家觉得再多抛几次硬币就可以了,何必弄什么贝叶斯推断。不过现实生活中有一些事件不是能够多“抛”几次的,比如地震、彗星撞击地球等等。这里只是借着硬币来讨论问题。

 分布

那么问题来了,“先验分布”,“后验分布”用数学怎么表示:

对于扔硬币, 分布非常适合用来完成这个任务。

2.1 先验分布

 分布简记为(这一节里面的所有细节会在后面给出):

根据 参数的不同,形态各异:

这个特性非常适合用来做先验分布。比如,在韦小宝面前,我们对硬币一无所知。

贝叶斯说一无所知也就是意味着任何概率都是一样的,都是有可能的,所以选用均匀分布(所谓的无信息先验,可以参看这篇文章):

 正好就是均匀分布:

正直的陈近南,可能用的是公平硬币,也就是说概率在0、1之间(0表示“字”,1表示“花”), 可以表示这样的分布:

而憨坏的多隆,可能用了两面花,也就是说概率可能集中到1附近, 可以表示这样的分布:

也就是说可以用 分布来模拟各种先验分布:

  • 一无所知:
  • 公平硬币:
  • 两面花:

2.2 后验分布

 分布来模拟扔硬币的先验分布之后,通过贝叶斯推断,得到的后验分布依然是 分布:

具体到这里:

再具体到韦小宝的情况就是:

其中,用 来表示实验数据,意思是3次花,0次字( 就是2次花,1次字)。

图像上的变化就是:

可以看到,作弊的可能性还是比较大的。

陈近南的情况:

结合实验数据之后,图像的中心从0.5往0.6方向移动了,作弊可能性有所增加,不过总体来看应该还是公平硬币的可能性大。

多隆的情况:

更向1集中,作弊的可能性非常高。

3 代数细节

3.1 贝叶斯推断

贝叶斯推断:

的应用到二项式分布的数学细节如下。假设实验数据 服从二项分布:

上面的式子根据贝叶斯定理(离散贝叶斯可以参看怎样用非数学语言讲解贝叶斯定理(Bayes theorem)?,连续贝叶斯可以参看这里)可以表示为:

其中 为“花”的次数。分母与实验数据无关,可以视作常数:

因此,写成下面这样更容易看清楚重点(其中 表示两者之间成比例):

3.2  分布

 长成这个样子:

其中, 为 函数。

随着 的变换, 分布形态各异:

3.3 共轭先验

对于二项式分布,用 分布作为先验分布,通过贝叶斯推断之后,后验分布依然是 分布:

这种特性称为共轭先验

并且:

关于这点的证明请参看这里,需要***。

文章最新版本在(有可能会有后续更新):如何理解贝叶斯推断,beta分布?

如何通俗理解贝叶斯推断与beta分布?的更多相关文章

  1. (main)贝叶斯统计 | 贝叶斯定理 | 贝叶斯推断 | 贝叶斯线性回归 | Bayes' Theorem

    2019年08月31日更新 看了一篇发在NM上的文章才又明白了贝叶斯方法的重要性和普适性,结合目前最火的DL,会有意想不到的结果. 目前一些最直觉性的理解: 概率的核心就是可能性空间一定,三体世界不会 ...

  2. 贝叶斯推断之最大后验概率(MAP)

    贝叶斯推断之最大后验概率(MAP) 本文详细记录贝叶斯后验概率分布的数学原理,基于贝叶斯后验概率实现一个二分类问题,谈谈我对贝叶斯推断的理解. 1. 二分类问题 给定N个样本的数据集,用\(X\)来表 ...

  3. 贝叶斯推断 && 概率编程初探

    1. 写在之前的话 0x1:贝叶斯推断的思想 我们从一个例子开始我们本文的讨论.小明是一个编程老手,但是依然坚信bug仍有可能在代码中存在.于是,在实现了一段特别难的算法之后,他开始决定先来一个简单的 ...

  4. 概率编程:《贝叶斯方法概率编程与贝叶斯推断》中文PDF+英文PDF+代码

    贝叶斯推理的方法非常自然和极其强大.然而,大多数图书讨论贝叶斯推理,依赖于非常复杂的数学分析和人工的例子,使没有强大数学背景的人无法接触.<贝叶斯方法概率编程与贝叶斯推断>从编程.计算的角 ...

  5. tf-idf、朴素贝叶斯的短文本分类简述

    朴素贝叶斯分类器(Naïve Bayes classifier)是一种相当简单常见但是又相当有效的分类算法,在监督学习领域有着很重要的应用.朴素贝叶斯是建立在“全概率公式”的基础下的,由已知的尽可能多 ...

  6. LDA概率图模型之贝叶斯理解

    贝叶斯.概率分布与机器学习 转自:http://www.cnblogs.com/LeftNotEasy/archive/2010/09/27/1837163.html  本文由LeftNotEasy原 ...

  7. [机器学习] 分类 --- Naive Bayes(朴素贝叶斯)

    Naive Bayes-朴素贝叶斯 Bayes' theorem(贝叶斯法则) 在概率论和统计学中,Bayes' theorem(贝叶斯法则)根据事件的先验知识描述事件的概率.贝叶斯法则表达式如下所示 ...

  8. ML(3): 贝叶斯方法

    对于分类问题,我们每个人每天都在执行分类操作,只是我们没有意识到罢了.例如,当你看到一个陌生人,你的脑子下意识判断TA是男是女:你可能经常会走在路上对身旁的朋友说“这个人一看就很有钱.那边有个非主流” ...

  9. 基于贝叶斯网(Bayes Netword)图模型的应用实践初探

    1. 贝叶斯网理论部分 笔者在另一篇文章中对贝叶斯网的理论部分进行了总结,在本文中,我们重点关注其在具体场景里的应用. 2. 从概率预测问题说起 0x1:条件概率预测模型之困 我们知道,朴素贝叶斯分类 ...

随机推荐

  1. 不会发布npm包?进来看看?

    前言 npm(Node Package Manager),一个Node的包管理器,平时我们常用的公共模块(插件)或者叫做包大多都放在上面,所以接下来要封装的插件,我们就简单称它为npm包,本文从就从这 ...

  2. java String详解

    创建字符串: 1. String(char a[]) char a[] = {'g','o','o','d'}; String str = new String(a); 2. String(char ...

  3. WebGl 旋转(矩阵变换)

    代码1: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  4. emlog 百度熊掌号提交插件-基于Emlog6.0.1特别版美化

    插件截图 插件简介 此插件在发布文章的时候自动向百度熊掌号提交,有利于百度熊掌号收录.基于Emlog6.0.1特别版美化的插件. 在百度推送插件的基础上修改制作而成与百度推送共存,解放双手,走向人生巅 ...

  5. 笔记:javascript操作iframe内的DOM元素,及调用iframe内的方法

    iframe相当于一个嵌入在网页内的浏览器,它与当前网页是隔离的. 但有时我们也需要在当前网页操作iframe内的元素或操作iframe内的javascript方法. 在网页内操作DOM元素,是使用d ...

  6. SpringAOP的自定义注解实践

    springaop属于spring的重要属性,在java中有相当广泛的用途,大家一般都接触过aop实现事务的管理,在xml里配好声明式事务,然后直接在service上直接加上相应注解即可, 今天我们来 ...

  7. 20155213 2016-2017-2《Java程序设计》课程总结

    20155213 2016-2017-2<Java程序设计>课程总结 每周作业链接汇总 预备作业1:我所期望的师生关系 预备作业2:C语言的学习的回忆 预备作业3:小议linux 第一周作 ...

  8. 2015526 《Java程序设计》实验二实验报告

    2015526 <Java程序设计>实验二实验报告 一.单元测试和TDD 用程序解决问题时,要学会写以下三种代码: 伪代码 产品代码 测试代码 正确的顺序应为:伪代码(思路)→ 测试代码( ...

  9. 20155301 《Java程序设计》实验一(Java开发环境的熟悉)实验报告

    20155301 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 一.实验内容及步骤 (一)使用JDK编译.运行简单的java程序 命令行下的程序开发 步骤:打开cmd,建立 ...

  10. 第五周 mybash的实现

    第五周 mybash的实现 1. 使用fork,exec,wait实现mybash 2. 写出伪代码,产品代码和测试代码 3. 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 1. for ...