大数跨境
0
0

如何理解共轭先验与贝叶斯推理

如何理解共轭先验与贝叶斯推理 数据分析学习与实践
2020-06-19
0
导读:共轭先验1.什么是先验?先验概率是我们看到数据之前事件的概率(主观概率)。在上一篇文章中:贝叶斯推理,先验是

共轭先验

1.什么是先验?

先验概率是我们看到数据之前事件的概率(主观概率)。

在上一篇文章中:贝叶斯推理,先验是我们在新数据可用之前根据我们现在所知道的对概率的猜测。

2.什么是共轭先验?

不知道贝叶斯推断就无法理解共轭先验!为什么这么说呢?

在本博客的其余部分中,我假设您了解先验,样本(数据data)和后验的概念。

本质上共轭先验:

对于某些似然函数(likehood),如果您选择某个先验,后验的分布与先验的分布相同。这样的先验被称为共轭先验。

通过示例始终可以最好地理解它。下面的代码用于计算二项式似然的后θ是成功的概率,我们的目标是选择使后验概率最大的θ。

 
  1. import numpy as np

  2. import scipy.stats as stats


  3. success_prob = 0.3

  4. data = np.random.binomial(n=1, p=success_prob, size=1000) # 1, 0.


  5. # θ

  6. theta_range = np.linspace(0, 1, 1000)


  7. # 先验 P(θ)

  8. a = 2

  9. b = 8

  10. theta_range_e = theta_range + 0.0001

  11. prior = stats.beta.cdf(x = theta_range_e, a=a, b=b) - stats.beta.cdf(x = theta_range, a=a, b=b)


  12. # 似然 Likelihood P(X|θ)

  13. likelihood = stats.binom.pmf(k = np.sum(data), n = len(data), p = theta_range)


  14. # 后验

  15. posterior = likelihood * prior

  16. normalized_posterior = posterior / np.sum(posterior)


给您的问题:上面的代码块中有什么与您有关的吗?


有两件事使后验计算变得昂贵,有没有优雅的处理方式呢?

  • 首先,我们计算每个θ的后验。为什么我们必须计算数千个theta的后验?因为您正在对后部进行标准化(第21行)。即使您选择不对后验进行标准化,最终目标还是要找到后验的最大值(Maximum a postiori)。为了以最佳方式找到最大值,我们需要考虑每个候选对象- 每个θ的似然度P(X |θ)。

  • 其次,如果没有后验分布的封闭式公式,则必须通过数值优化(例如梯度下降或牛顿法)找到最大值。

3.“共轭先验”如何实现的优雅方法呢?

当您知道您的先验是共轭先验时,您可以跳过posterior = likelihood * prior计算。此外,如果您的先验分布具有封闭形式的表单表达式,则您已经知道最大后验概率将是多少。

在上面的示例中,β分布是二项式似然之前的共轭。这是什么意思?这意味着在建模阶段,我们已经知道后验也将是beta分布。因此,在进行更多实验之后,您可以简单地通过将接受和拒绝的数量分别添加到现有参数α,β上来计算后验,而不用将似然度乘以先验分布。这很方便!(下一节的证明)

作为数据/ ML科学家,您的模型永远都不完整。随着输入更多数据,您必须更新模型(这就是我们使用贝叶斯推理的原因)。

如您所见,贝叶斯推断中的计算可能很繁重,有时甚至很棘手。但是,如果我们可以使用先验的共轭形式的封闭式公式,则计算将变得非常简单。

4.证明-为什么Beta分布在二项式似然率之前是共轭的?

当我们使用Beta分布作为先验时,二项式似然的后验也将遵循beta分布。

显示Beta会产生Beta。

二项式和Beta版的PDF是什么样的?

让我们将它们插入著名的贝叶斯公式中

其中:

  • θ是成功的概率,

  • x是成功次数。

  • n是试验的总数

因此nx是失败的次数。

为什么最后一个积分变为B(x +α,n-x +β)?这个beta推导下次再讲。先验分布P(θ)为Beta(α,β),在从实验中获得x次成功和nx次失败后,后验也变为具有参数(x +α,n-x +β)的Beta分布。很好的是,您无需进行计算就可以解析地知道这一点。

5.共轭先前的分布

Beta分布是伯努利,二项式,负二项式和几何分布的共轭先验(看起来像那些涉及成功与失败的分布)。

Beta先验* Bernoull →Beta后验 Beta先验* 二项式似然→Beta后验 Beta先验* 负二项式似然→Beta后验 Beta先验* 几何似然→Beta后验 <后验伽马> 伽马先验* 泊松似然→伽马后验 伽马先验* 指数似然→伽马后验 <正态后验> 正态先验*正态似然(平均值)→正态后验

这就是为什么这三个分布(Beta,Gamma和Normal)经常被用作先验的原因。一种有趣的说法是,即使您进行了所有这些实验,并将您的可能性乘以先验,您对先验分布的初始选择也是如此,以至于最终分布与先验分布相同。

在方程中共轭先验P(θ):

P(θ)使得P(θ| D)= P(θ)

注意事项:

  1. 可累积性:当我们使用共轭先验时,顺序估计(每次观察后更新计数)得出的结果与批量估计相同。

  2. 为了找到最大后验,您不必对似然(采样)与先验(分母中每个可能θ的积分)的乘积进行归一化。

您仍然可以在不进行标准化的情况下找到最大值。但是,如果要比较不同模型的后验对象或计算点估计,则需要进行归一化。


【声明】内容源于网络
0
0
数据分析学习与实践
数据分析,数据科学,线性代数,统计学,AI,python,可视化,excel
内容 343
粉丝 0
数据分析学习与实践 数据分析,数据科学,线性代数,统计学,AI,python,可视化,excel
总阅读4
粉丝0
内容343