Markov Chain Monte Carlo(MCMC) 方法
Monte Carlo 方法
假设我们要求一个原函数并不明确的函数
因为
这个式子将积分看做是随机变量
上述式子成立要求
现在一个问题就是如何产生一组服从特定密度函数
PS: 实际上这里的独立性要求其实不需要,因为可以证明以
现在的问题就是如何产生一组服从特定密度函数
Markov Chain Mote Carlo(MCMC)
要用MCMC方法,必须要找到一个平稳分布是
这是时逆马氏链的条件,鉴于我们的后面的讨论都基于这个式子就可以知道MCMC方法构造的马氏链一定是时逆马氏链(时逆马氏链一定有稳态分布)。我们从这个式子出发,对任意一个以
其中
-
输入一个马氏链的转移概率
以及期望的平稳分布 , 当然还有状态转移所需要的次数 以及要采集随机数的个数 -
按照一定的概率分布随机产生一个状态
-
进入循环,循环次数为(
), 每次循环做以下的一些事情a. 从条件概率分布
中采样得到 (这里采样可以使用接受-拒绝采样来得到,可见(https://www.cnblogs.com/pinard/p/6625739.html)
b. 以
的概率来接受 (生成一个[0,1]之间的均匀分布的随机数 , 如果 就接受 ,即 ;否则就拒绝, )
Metropolis-Hasting 算法
M-H算法是针对MCMC算法里面
等式两边同时扩大
而新的
-
输入一个马氏链的转移概率
以及期望的平稳分布 , 当然还有状态转移所需要的次数 以及要采集随机数的个数 -
按照一定的概率分布随机产生一个状态
-
进入循环,循环次数为(
), 每次循环做以下的一些事情a. 从条件概率分布
中采样得到b. 以
的概率来接受
Gibbs 算法
Gibbs算法主要应用于多维随机向量的采样。具体可见 https://www.cnblogs.com/pinard/p/6645766.html
PS: 其中要求联合稳态分布的条件分布,可以用联合分布除以对应的边缘分布,而边缘分布可以通过对所有其他变量积分(连续)或者对所有其他变量的可能情况求和得到(离散)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)