马尔可夫链蒙特卡罗法(Markov Chain Monte Carlo,MCMC)

文章目录

    • 1. 蒙特卡罗法
    • 2. 马尔可夫链
    • 3. 马尔可夫链蒙特卡罗法
    • 4. Metropolis-Hastings 算法
    • 5. 吉布斯抽样

蒙特卡罗法(Monte Carlo method),也称为统计模拟方法(statistical simulation method),是通过从概率模型随机抽样进行近似数值计算的方法

马尔可夫链蒙特卡罗法(Markov Chain Monte Carlo,MCMC),则是以马尔可夫链(Markov chain)为概率模型的蒙特卡罗法

马尔可夫链蒙特卡罗法 构建 一个马尔可夫链,使其平稳分布就是要进行抽样的分布,首先基于该马尔可夫链进行随机游走,产生样本的序列,之后使用该平稳分布的样本进行近似数值计算

马尔可夫链蒙特卡罗法被应用于概率分布的估计、定积分的近似计算、最优化问题的近似求解等问题,特别是被应用于统计学习中概率模型的学习与推理,是重要的统计学习计算方法

1. 蒙特卡罗法

  • 核心思想:随机抽样(直接抽样法、接受-拒绝抽样法、重要性抽样法 等)
  • 可用于数学期望估计、积分近似计算
  • 一般的蒙特卡罗法中的抽样样本是独立的,而马尔可夫链蒙特卡罗法中的抽样样本不是独立的,样本序列形成马尔科夫链。

2. 马尔可夫链

马尔可夫性:随机变量 XtX_tXt 只依赖于前一个时刻 Xt−1X_{t-1}Xt1,不依赖于更早的时刻

齐次性:转移概率 P(Xt∣Xt−1)P(X_t|X_{t-1})P(XtXt1)ttt 无关,P(Xt+s∣Xt−1+s)=P(Xt∣Xt+1)P(X_{t+s}|X_{t-1+s}) = P(X_t|X_{t+1})P(Xt+sXt1+s)=P(XtXt+1)

马尔可夫链的状态分布初始分布转移概率分布决定 π(t)=Ptπ(0)\pi(t) = P^t \pi(0)π(t)=Ptπ(0)

马尔可夫链的平稳分布π(π1,π2,...)T\pi(\pi_1,\pi_2,...)^Tπ(π1,π2,...)T 的充要条件是:π\piπ 是下列方程组的解
xi=∑jpijxj,i=1,2,...xi≥0,i=1,2,...∑ixi=1x_i = \sum\limits_j p_{ij}x_j, i = 1,2,...\\ x_i \ge 0, i=1,2,...\\ \sum\limits_i x_i = 1xi=jpijxj,i=1,2,...xi0,i=1,2,...ixi=1

马尔可夫链可能存在唯一平稳分布,无穷多个平稳分布,或不存在平稳分布

性质:

  1. 不可约
    P(Xt=i∣X0=j)>0P(X_t=i|X_0=j)>0P(Xt=iX0=j)>0 时刻0从状态 j 出发,时刻 t 到达状态 i 的概率大于 0,该链不可约
    在这里插入图片描述

  2. 非周期
    P(Xt=i∣X0=i)>0P(X_t=i|X_0=i)>0P(Xt=iX0=i)>0 时刻0从状态 i 出发,时刻 t 返回状态的所有时间长度的最大公约数是1,称该链是非周期的
    在这里插入图片描述
    定理:不可约非周期有限状态马尔可夫链,有唯一平稳分布存在

  3. 正常返
    概率 pijtp_{ij}^tpijt 为时刻 0 从状态 j 出发,时刻 t 首次转移到状态 i 的概率,若对所有状态 i, j,都满足 lim⁡t→∞pijt>0\lim\limits_{t\rightarrow \infty} p_{ij}^t >0tlimpijt>0,称该链是正常返的

在这里插入图片描述
定理:不可约非周期正常返的马尔可夫链,有唯一平稳分布存在

  1. 可逆马尔可夫性
    对任意状态 i,j,在任意时间 t 满足:pjiπj=pijπi,i,j=1,2,...p_{ji}\pi_j = p_{ij}\pi_i, i,j=1,2,...pjiπj=pijπi,i,j=1,2,...(细致平衡方程)
    如果有可逆的马尔可夫链,那么平稳分布作为初始分布,进行随机状态转移,无论是面向未来还是面向过去,任何一个时刻的状态分布都是该平稳分布。

定理:满足细致平衡方程的状态分布 π\piπ 就是该马尔可夫链的平稳分布

可逆马尔可夫链一定有唯一平稳分布,给出了一个马尔可夫链有平稳分布的充分条件(不是必要条件)

3. 马尔可夫链蒙特卡罗法

常用的马尔可夫链蒙特卡罗法 有Metropolis-Hastings算法吉布斯抽样

马尔可夫链蒙特卡罗法的收敛性的判断通常是经验性的

  • 比如,在马尔可夫链上进行随机游走,检验遍历均值是否收敛
  • 再比如,在马尔可夫链上并行进行多个随机游走,比较各个随机游走的遍历均值是否接近一致

4. Metropolis-Hastings 算法

在这里插入图片描述

5. 吉布斯抽样

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蒙特卡罗法近似求解圆周率π

文章目录1. 原理2. 模拟代码1. 原理 给出 x∈[0,1),y∈[0,1)x \in [0,1),y\in[0,1)x∈[0,1),y∈[0,1) 的均匀分布随机点,模拟 ttt 次,落在以 (0,0)(0,0)(0,0) 为圆心,半径 r1r1r1 的圆以内的次数为 ccc当模拟次数足够大时,可以看成…

算法导论2.3-7

Q: 请给出一个运行时间为θ(nlgn)的算法&#xff0c;使之能在一个由n个整数构成的集合S和另一个整数X时&#xff0c;判断出S中是否存在有两个其和等于X的元素。A: 先对S[1 TO N]进行合并排序--------------------------------θ(nlgn) FOR a <- [1 TO N-1]-----------------…

LeetCode 1318. 或运算的最小翻转次数(位运算)

1. 题目 给你三个正整数 a、b 和 c。 你可以对 a 和 b 的二进制表示进行位翻转操作&#xff0c;返回能够使按位或运算 a OR b c 成立的最小翻转次数。 「位翻转操作」是指将一个数的二进制表示任何单个位上的 1 变成 0 或者 0 变成 1 。 示例 1&#xff1a; 输入&#x…

LeetCode 91. 解码方法(动态规划)

1. 题目 一条包含字母 A-Z 的消息通过以下方式进行了编码&#xff1a; A -> 1 B -> 2 ... Z -> 26给定一个只包含数字的非空字符串&#xff0c;请计算解码方法的总数。 示例 1: 输入: "12" 输出: 2 解释: 它可以解码为 "AB"&#xff08;1 2&am…

LeetCode 1238. 循环码排列(格雷编码+旋转数组)

1. 题目 给你两个整数 n 和 start。你的任务是返回任意 (0,1,2,,...,2^n-1) 的排列 p&#xff0c;并且满足&#xff1a; p[0] start p[i] 和 p[i1] 的二进制表示形式只有一位不同 p[0] 和 p[2^n -1] 的二进制表示形式也只有一位不同示例 1&#xff1a; 输入&#xff1a;n 2…

LeetCode 第 25 场双周赛(718/1832,前39.2%)

文章目录1. 比赛结果2. 题目1. LeetCode 5384. 拥有最多糖果的孩子 easy2. LeetCode 5385. 改变一个整数能得到的最大差值 medium3. LeetCode 5386. 检查一个字符串是否可以打破另一个字符串 medium4. LeetCode 5387. 每个人戴不同帽子的方案数 hard1. 比赛结果 做出来了 1、2…

target java_java元注解 @Target注解用法

Target&#xff1a;Target说明了Annotation所修饰的对象范围&#xff1a;Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了tar…

LeetCode 第 187 场周赛(1336/3107,前43.0%)

文章目录1. 比赛结果2. 题目1. LeetCode 5400. 旅行终点站 easy2. LeetCode 5401. 是否所有 1 都至少相隔 k 个元素 medium3. LeetCode 5402. 绝对差不超过限制的最长连续子数组 medium4. LeetCode 5403. 有序矩阵中的第 k 个最小数组和 hard1. 比赛结果 15分钟做出来了 1、2 …

场景编辑器竣工!

今天接着做XML解析&#xff0c;对那个遍历的结构作了些修改&#xff0c;插入了几个函数。 终于&#xff0c;新的场景编辑器竣工了&#xff01; 一个比较复杂的场景了&#xff0c;用3dsMax制作材质&#xff0c;安排物件位置和所用材质 导出到DirectX中&#xff0c;效果感觉比Max…

将MathType公式转换为Blog可用的LaTeX公式(MD编辑器)

会LaTex语法的同学敲起来还是会快一些的。 符号参考&#xff1a; LaTeX 各种命令&#xff0c;符号Latex所有常用数学符号整理 不会的同学&#xff0c;可以按照以下方式操作&#xff1a; 在MathType内先敲好公式 可以手敲&#xff0c;也可以手写&#xff08;手写调用windows的…

JQuery + Json 练习随笔

早就听说JQuery Ajax的方便快捷以及Json优秀的数据交换&#xff0c;今天有空尝试了一下&#xff0c;菜鸟了一番。对初步的使用也算是有个比较抽象的理解吧。记录之备忘&#xff01; json简介&#xff1a; JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人…

LeetCode 313. 超级丑数(动态规划)

1. 题目 编写一段程序来查找第 n 个超级丑数。 超级丑数是指其所有质因数都是长度为 k 的质数列表 primes 中的正整数。 示例: 输入: n 12, primes [2,7,13,19] 输出: 32 解释: 给定长度为 4 的质数列表 primes [2,7,13,19]&#xff0c; 前 12 个超级丑数序列为&#xf…

Visual Studio 2010 旗舰版免序列号安装体验

Visual Studio 2010 E文版已经发布多时&#xff0c;由于工作原因没有及早的下载体验&#xff0c;直到前几天园子里的朋友放出了下载简体中文的种子 ed2k://|file|cn_visual_studio_2010_ultimate_x86_dvd_532347.iso|2685982720|4AE6228933DDE49D9BFA4C3467C831C2|/于是决定下来…

潜在狄利克雷分配(Latent Dirichlet Allocation,LDA)

文章目录1. 狄利克雷分布2. 潜在狄利克雷分配模型3. 学习推理4. sklearn.decomposition.LatentDirichletAllocation潜在狄利克雷分配&#xff08;latent Dirichlet allocation&#xff0c;LDA&#xff09;&#xff0c;作为基于 贝叶斯学习的话题模型&#xff0c;是潜在语义分析…

LeetCode 983. 最低票价(动态规划)

1. 题目 在一个火车旅行很受欢迎的国度&#xff0c;你提前一年计划了一些火车旅行。 在接下来的一年里&#xff0c;你要旅行的日子将以一个名为 days 的数组给出。 每一项是一个从 1 到 365 的整数。 火车票有三种不同的销售方式&#xff1a; 一张为期一天的通行证售价为 co…

LeetCode 1306. 跳跃游戏 III(广度优先搜索BFS)

1. 题目 这里有一个非负整数数组 arr&#xff0c;你最开始位于该数组的起始下标 start 处。 当你位于下标 i 处时&#xff0c;你可以跳到 i arr[i] 或者 i - arr[i]。 请你判断自己是否能够跳到对应元素值为 0 的 任意 下标处。 注意&#xff0c;不管是什么情况下&#xff…

mysql错误日志为aborting_MySQL 错误日志(Error Log)

同大多数关系型数据库一样&#xff0c;日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件。通常包括错误日志文件&#xff0c;二进制日志&#xff0c;通用日志&#xff0c;慢查询日志&#xff0c;等等。这些日志能够帮助我们定位mysqld内部发生的事件&#xff0…

LeetCode 529. 扫雷游戏(广度优先搜索BFS/深度优先搜索DFS)

文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 让我们一起来玩扫雷游戏&#xff01; 给定一个代表游戏板的二维字符矩阵。 ‘M’ 代表一个未挖出的地雷&#xff0c; ‘E’ 代表一个未挖出的空方块&#xff0c; ‘B’ 代表没有相邻&#xff08;上&#xff0c;下&#xff0c;左…

Flash 与数学:圆的切线(3)

在上面几节当中&#xff0c;已经了解过计算圆上任意一点的切线的方法&#xff0c;我们首先知道使用导数几何意义在哪里&#xff1f;在我们高中数学和大学的数学当中&#xff0c;说明了。导数的几何意义函数yf&#xff08;x&#xff09;在点x0处导数为f(x0)在几何上表示曲线yf&a…

LeetCode 1110. 删点成林(二叉树递归)

1. 题目 给出二叉树的根节点 root&#xff0c;树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现&#xff0c;我们就把该节点从树上删去&#xff0c;最后得到一个森林&#xff08;一些不相交的树构成的集合&#xff09;。 返回森林中的每棵树。你可以按任意顺序…