【概率方法】MCMC 之 Gibbs 采样

这篇具有很好参考价值的文章主要介绍了【概率方法】MCMC 之 Gibbs 采样。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一篇文章讲到,MCMC 中的 HM 算法,它可以解决拒绝采样效率低的问题,但是实际上,当维度高的时候 HM 算法还是在同时处理多个维度,以两个变量 x = [ x , y ] \mathbf{x} = [x,y] x=[x,y] 来说,也就是同时从联合分布里面 p ( x ) = p ( x , y ) p(\mathbf{x}) = p(x,y) p(x)=p(x,y) 进行采样,在某些情况下有维度灾难的问题。

有些时候,我们从联合分布 p ( x , y ) p(x,y) p(x,y) 里面采样很难,但是从条件分布 p ( x ∣ y ) , p ( y ∣ x ) p(x|y), p(y|x) p(xy),p(yx) 里面采样很容易,

Gibbs 采样

为了解决维度灾难的问题,Gibbs 把直接从联合分布 p ( x , y ) p(x,y) p(x,y)里面进行采样的问题转化成了逐个对每一个维度的条件分布进行采样 :
对于二维情况,我们先得到每一个维度在给定其他维度时候的条件分布:
p ( x ∣ y ) ,     p ( y ∣ x ) p(x|y), \ \ \ p(y|x) p(xy),   p(yx)
先从一个任意选择的点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 开始。
先给定 y 0 y_0 y0 ,采样 x 1 x_1 x1 p ( x 1 ∣ y 0 ) p(x_1|y_0) p(x1y0)
再给定 x 1 x_1 x1,采样 y 1 y_1 y1 p ( y 1 ∣ x 1 ) p(y_1|x_1) p(y1x1)

对所有维度轮换采样完成之后,就得到了新的采样点 ( x 1 , y 1 ) (x_1,y_1) (x1,y1),如此进行下去,采样得到整个序列
{ x 0 , . . . , x t } = { ( x 0 , y 0 ) , . . . , ( x t , y t ) } \{\mathbf{x}_0,...,\mathbf{x}_t\} = \{(x_0,y_0),...,(x_t,y_t)\} {x0,...,xt}={(x0,y0),...,(xt,yt)}

优点

  • Gibbs 采样接受率为 1,采样效率更高
  • 在知道各个维度的条件分布的时候,可以处理高维分布

  • 由于马尔可夫性,前后的样本是相关的,所以也可以用 Thinning 降低自相关性,或者其他方法。
  • 当目标分布比较极端的时候可能难以收敛
  • 【概率方法】MCMC 之 Gibbs 采样,概率论,人工智能

代码

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import pearsonr

# Goal: Sample from bivariate Normal

automatic_samples = np.random.multivariate_normal([0,0], [[1, 0.5], [0.5,1]], 10000)
plt.scatter(automatic_samples[:,0], automatic_samples[:,1], s=5)![请添加图片描述](https://img-blog.csdnimg.cn/direct/b7f96ec7214f4c64be016e1a20df48f6.png)

【概率方法】MCMC 之 Gibbs 采样,概率论,人工智能

# Gibbs Sampling

samples = {'x': [1], 'y': [-1]}

num_samples = 10000

for _ in range(num_samples):
    curr_y = samples['y'][-1]
    new_x = np.random.normal(curr_y/2, np.sqrt(3/4))
    new_y = np.random.normal(new_x/2, np.sqrt(3/4))
    samples['x'].append(new_x)
    samples['y'].append(new_y)

plt.scatter(samples['x'], samples['y'], s=5)

【概率方法】MCMC 之 Gibbs 采样,概率论,人工智能

和 numpy 自带采样的分布是匹配的

plt.hist(automatic_samples[:,0], bins=20, density=True, alpha=0.5)
plt.hist(samples['x'], bins=20, density=True, alpha=0.5)

【概率方法】MCMC 之 Gibbs 采样,概率论,人工智能

plt.hist(automatic_samples[:,1], bins=20, density=True, alpha=0.5)
plt.hist(samples['y'], bins=20, density=True, alpha=0.5)

【概率方法】MCMC 之 Gibbs 采样,概率论,人工智能

查看相关性

plt.scatter(automatic_samples[:-1,0], automatic_samples[1:,0], s=5)
print(pearsonr(automatic_samples[:-1,0], automatic_samples[1:,0])[0])

【概率方法】MCMC 之 Gibbs 采样,概率论,人工智能

plt.scatter(samples['x'][:-1], samples['x'][1:], s=5)
print(pearsonr(samples['x'][:-1], samples['x'][1:])[0])

【概率方法】MCMC 之 Gibbs 采样,概率论,人工智能文章来源地址https://www.toymoban.com/news/detail-765426.html

到了这里,关于【概率方法】MCMC 之 Gibbs 采样的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AI人工智能中的概率论与统计学原理与Python实战:35. Python实现量子计算与量子机器学习...

    量子计算和量子机器学习是人工智能领域的一个重要分支,它们利用量子物理现象来解决一些传统计算方法无法解决的问题。量子计算的核心是量子比特(qubit),它可以存储多种信息,而不是传统的二进制比特(bit)。量子机器学习则利用量子计算的优势,为机器学习问题提供更

    2024年04月14日
    浏览(57)
  • AI人工智能中的概率论与统计学原理与Python实战:隐马尔可夫模型(HMM)的理解与实现...

    随着人工智能技术的不断发展,人工智能已经成为了许多行业的核心技术之一。在人工智能中,概率论和统计学是非常重要的一部分,它们可以帮助我们更好地理解和解决问题。在本文中,我们将讨论概率论与统计学原理在人工智能中的应用,以及如何使用Python实现隐马尔可

    2024年04月10日
    浏览(53)
  • 第四章 基于概率论的分类方法:朴素贝叶斯

    朴素贝叶斯 优点:在数据较少的情况下仍然有效,可以处理多类别问题。 缺点:对于输⼊数据的准备⽅式较为敏感。 适⽤数据类型:标称型数据。 假设类别为 c 1 , c 2 c_1,c_2 c 1 ​ , c 2 ​ : 如果 p 1 ( x , y ) p 2 ( x , y ) p1(x,y) p2(x,y) p 1 ( x , y ) p 2 ( x , y ) ,那么类别为 c 1 c_1 c

    2024年02月13日
    浏览(43)
  • 【机器学习实战】-基于概率论的分类方法:朴素贝叶斯

    【机器学习实战】读书笔记 **朴素贝叶斯:**称为“ 朴素 ”的原因,整个形式化过程只做最原始、最简单的假设,特征之间没有关联,是统计意义上的独立。 **优点:**在数据较少的情况下仍然有效,可以处理多类别问题。 **缺点:**对于输入数据的准备方式较为敏感。 **适

    2024年03月25日
    浏览(50)
  • 从抛硬币试验看概率论的基本内容及统计方法

    一般说到概率,就喜欢拿抛硬币做例子。大多数时候,会简单认为硬币正背面的概率各为二分之一,其实事情远没有这么简单。这篇文章会以抛硬币试验为例子并贯穿全文,引出一系列概率论和数理统计的基本内容。这篇文章会涉及的有古典概型、公理化概率、二项分布、正

    2024年04月25日
    浏览(34)
  • 概率论与数理统计 第一章 概率论的基本概念

    1.1.1 前言 1.研究对象: 确定性现象:必然发生或不发生 随机现象:个别试验结果呈现不确定性,大量试验结果呈现统计规律性 2.概率论与数理统计: ​ 该学科是研究和揭示随机现象统计规律性的学科。 1.1.2 随机试验 1.定义: 可以在相同条件下重复进行; 每次试验的结果可

    2024年03月20日
    浏览(52)
  • 【概率论】几何概率、条件概率及全概率公式作业

    有两箱零件,第一箱装50件,其中20件是一等品;第二箱装30件,其中18件是一等品,现从两箱中随意挑出一箱,然后从该箱中先后任取两个零件,试求第一次取出的零件是一等品的概率_____(结果小数点后保留1位) 【正确答案:0.5 或1/2】 解析: 设A₁,A₂分别表示“挑出第一箱

    2024年02月11日
    浏览(44)
  • 【概率论】条件概率与独立性题目

    已知随机事件A与B满足条件:0P(A)1,0P(B)1。则事件A,B相互独立的充要条件是( C )。 A. P ( B ∣ A ) + P ( B ∣ A ˉ ) = 1 P(B|A)+P(B|bar{A})=1 P ( B ∣ A ) + P ( B ∣ A ˉ ) = 1 B. P ( B ∣ A ) + P ( B ˉ ∣ A ) = 1 P(B|A)+P(bar{B}|A)=1 P ( B ∣ A ) + P ( B ˉ ∣ A ) = 1 C. P ( B ∣ A ) + P ( A ˉ ∣ B ˉ ) = 1 P(B|A)

    2024年02月11日
    浏览(36)
  • 概率论-1-概率机器人 Probabilistic Robotics

    基本概念 随机变量 静态的 可以做随机试验 随机过程 动态 离散随机变量 概率质量函数 probability mass function 连续随机变量 概率密度函数 probability density function PDF 联合概率 P ( X = x 且 Y = y ) = P ( x , y ) 若 X 和 Y 独立: P ( x , y ) = P ( x ) P ( y ) P(X=x 且 Y=y) = P(x,y)\\\\ 若 X 和 Y 独立:

    2024年03月22日
    浏览(52)
  • 概率论--随机事件与概率--贝叶斯公式--随机变量

    目录 随机事件与概率 概念 为什么要学习概率论 随机事件与随机事件概率 随机事件 随机事件概率 贝叶斯公式  概念 条件概率 概率乘法公式 贝叶斯公式  举个栗子 随机变量   随机变量的定义 随机变量的分类 离散型随机变量 连续型随机变量 概念 随机事件是指在一次试验

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包