用蒙特卡洛求pi_马尔科夫蒙特卡洛方法

ffe40c002cdbc676a0d99c29add21431.png
本文使用 Zhihu On VSCode 创作并发布

[toc]

主要参考资料 《Foundations of Data Science》(强烈推荐John的书)、蒙特卡洛方法(刘建平)、MCMC的工程应用

应用背景

简介

马尔科夫蒙特卡洛(MCMC)是一种随机采样的方法。很多情况下我们都会遇到这样的问题:

服从一个分布
,我们想知道
的期望。这样一个简单的问题在实际中却会遇到诸如数据庞大无法储存,难以得到显式解等问题,我们首先介绍一下基础的方法,并分析一下它们遇到的问题。

原有方法的介绍

蒙特卡洛方法(基于样本的方法)

我们考虑一个常见的问题,如何估计一个图形的面积?比如说平面上一个圆的面积。
最直观的想法是基于大数定律的撒豆子。用正方形框住这个圆,之后在正方形内均匀采样,看在圆内的比例。假设我们记在圆内的指示函数为

,那么有

这个例子中,

是在正方形内的均匀分布,
。我们能如此简单地处理的原因有两个方面:
  • 均匀分布很容易生成。
  • 面积恰好和均匀分布有关联。但是假设我们没有均匀分布生成器,只有一个高斯分布生成器,或者其他分布,则采样结果的平均值就不是面积了。

对于面积问题,第二个方面很好拓展,因为

,即面积为
的期望,那么我们只需要把希望采样的函数改为
即可。

而对于一般情况,我们很可能真的需要得到一个服从分布

的随机数生成器。而这可以通过接受/拒绝采样获得。

假设我们拥有一个分布

的生成器和一个均匀分布生成器,想要得到分布
,我们只需要让
成为
的一个bounding box,然后再这个bounding box里再次采样出
即可。严格地来讲,我们需要一个放缩系数
,使得

8380aa0af08ad9f8020d402d8536052a.png
Image
图片来自蒙特卡洛方法(刘建平),记号不太一样但是也比较显然

然后依据

采样一个
,并用均匀分布生成器在
之间生成一个随机数,若其小于
,即在红线下方,则保留本次采样结果。否则就是落在了灰色区域,则将此次的
删除。最后保留下来的采样就是依据
得到的结果。(实际上应该是在
之间均匀采样,看是否小于
)

证明: 上面的过程涉及三个采样结果,我们分别用这样的记号表述:依据

采样得到的
,依据均匀分布采样得到的
,结合
得到的最终采样结果

我们以连续形式为例。显然,对任意的
,
,这里用条件概率而不是交起来的原因是
是已经筛选后的结果,一定是已经被接受的,故而不用乘上被接受的概率。

然后有

从而

。而通过简单的积分交换顺序我们又知道
,其中
是任意一个取值在
之间的随机变量。故而有

故而分别代入三项得到

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值