先验、后验与似然

在学习SLAM 14讲第六章时,看到三个概念,有些不太了解,查阅资料后有了一些自己的理解。

三个概念存在于贝叶斯公式

P(A|B)=\frac{P(B|A)\cdot P(A)}{P(B)}

P(A)表示先验概率Prior,P(A|B)表示后验概率posterior,P(B|A)表示似然likelihood

上式可以写为

Posterior=\frac{Likelihood\cdot Prior}{Evidence}

下面分别对三个概念进行描述

先验概率(Prior)

        先验概率可以理解为统计概率,是根据此前的经验统计总结出来的概率。

        如:假设事件A为下雨,根据该地区往年降雨量信息统计,P(A)=0.05。

后验概率(Posterior)由原因导出结果

        后验概率是结合某些结果信息修正之后的概率,表现为条件概率。

        如:补充事件B为阴天,结合当地降雨量数据,在阴天条件下下雨的概率P(A|B)=0.5。

似然概率(likelihood)由结果导出原因

        注重于表明结果与原因之间的逻辑关系,结果已经发生,什么原因造成这个结果的可能性最大。

        如:当地已经下雨了(事件A已经发生),什么原因造成下雨的可能性最大(阴天/晴天)。


在介绍完概念之后,结合SLAM 14讲进行分析

根据贝叶斯公式

P(x,y|u,z)=\frac{P(z,u|x,y)\cdot P(x,y)}{P(U,Z)}\propto P(z,u|x,y)\cdot P(x,y)

求解后验分布比较困难,可以求状态最优估计,使其后验概率最大化,即后验概率估计(MAP)

(x,y)_{MAP}^{*}=argmaxP(x,y|u,z)=argmax\left \{ P(z,u|x,y)\cdot P(x,y) \right \}

但在某些情况下可能不存在先验概率,只能求解最大似然估计(MLE)

(x,y)_{MAP}^{*}=argmaxP(z,u|x,y)

最大似然估计示例

        A堆里有99个白球、1个黑球,B堆里有1个白秋、99个黑球,如果抽到一个黑球,最有可能是从哪一堆里抽出来的?

P(A|black)=\frac{P(black|A)\cdot P(A)}{P(black)}=\frac{\frac{1}{100}\cdot \frac{1}{2}}{\frac{\frac{1}{2}}{}}=\frac{1}{100}

P(B|black)=\frac{P(black|B)\cdot P(B)}{P(black)}=\frac{\frac{99}{100}\cdot \frac{1}{2}}{\frac{\frac{1}{2}}{}}=\frac{99}{100}

        所以更有可能是从B堆中摸到黑球。

与SLAM课本中的知识类似,上述公式中P(A)=P(B),

       所以P(A|black)与P(B|black)的大小由P(black|A)与P(black|B)决定。

按照文字解释就是:

 “结果发生后,探究哪个原因造成的可能性更大” 等价于 “哪个原因发生后,更容易造成这个结果

        应注意:两句话中事情发生的先后顺序并不相同。


进一步的,考虑贝叶斯公式的另一种形式

P(A|B)\cdot P(B)=P(B|A)\cdot P(A)

        其实因与果并不重要,只是为了方便进行理解而做出的规定,在实际运用中,只要注意到A与B哪个是研究的主体,以及P(A|B)与P(B|A)是如何在最大似然估计中等价的即可。

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
先验分布(Prior Distribution)是指在考虑任何观测数据之前,对于未知参数的分布假设。它是基于先前的经验、理论或其他信息,对于未知参数的概率分布进行的猜测。在统计推断中,先验分布通常是由专家知识、历史数据或相关研究提供的。 后验分布(Posterior Distribution)是指在考虑观测数据后,对于未知参数的分布假设。它是在先验分布的基础上,根据观测数据的结果进行更新后得到的分布。在贝叶斯统计学中,后验分布是由先验分布和似然函数的乘积归一化得到的。 以下是一个简单的示例,演示如何使用Python实现先验分布和后验分布: 假设我们想要推断一枚硬币正面朝上的概率$p$。我们假设先验分布为伯努利分布,即$p \sim Ber(\theta)$,其中$\theta$是未知参数,我们假设$\theta = 0.5$。我们进行了$n$次试验,其中有$k$次正面朝上。我们可以使用Python来计算后验分布。 首先,我们需要导入所需的库: ```python import numpy as np import matplotlib.pyplot as plt ``` 然后,我们定义先验分布: ```python theta = 0.5 # 先验分布的参数 prior = np.array([theta, 1-theta]) # 先验分布 ``` 接下来,我们定义似然函数: ```python def likelihood(k, n, theta): return theta**k * (1-theta)**(n-k) ``` 然后,我们可以计算后验分布: ```python n = 10 # 试验次数 k = 7 # 正面朝上的次数 posterior = prior * likelihood(k, n, theta) # 后验分布 posterior = posterior / np.sum(posterior) # 归一化 ``` 最后,我们可以绘制先验分布和后验分布的图像: ```python x = np.array([0, 1]) plt.bar(x, prior, alpha=0.5, label='Prior') plt.bar(x, posterior, alpha=0.5, label='Posterior') plt.legend() plt.show() ``` 运行代码后,我们可以得到以下图像,显示出先验分布和后验分布的差异。 ![先验分布和后验分布的图像](https://i.loli.net/2021/08/12/7j1UmHJi5OeZSvR.png)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值