从期望到蒙特卡洛再到抽样(MCMC学习和梳理)

本文介绍了MCMC算法的发展,从期望和积分的计算,到蒙特卡洛方法的应用,以及面对无法采样情况时的接受-拒绝采样、重要性采样和MCMC方法。重点阐述了Metropolis-Hasting算法的实现过程,为解决复杂概率分布采样提供了解决方案。
摘要由CSDN通过智能技术生成


近期在学习MCMC(Markov Chain Monte Carlo)算法,但是看了网上的博客发现,大家都是在讲如何什么是马尔科夫链,如何构造马尔科夫链。这对于一个做工程的学生来说很不友好,相比于严谨的证明,我们更想知道这个算法是为了解决什么问题,应该如何使用。

  • 在这篇文章里面,我梳理了MCMC算法的发展之路 。

我们常常用期望值来估计一些未知的参数,然而期望值的积分有时候很难算,此时就出现了蒙特卡洛方法求取近似数值解。但是蒙特卡洛遇到了采样难的问题,因此出现了各种采样的方法,MCMC就是其中之一。

怎么计算期望

对于一个随机变量 X X X而言,它可以取许多许多数值,但是取到每个数值是有一定概率的。取到某些值的概率比较大,取到某些值的概率比较小,取到每个值的概率画成一张图就是概率密度图。通常,我们也会用随机变量的期望 E ( x ) E(x) E(x)来描述这个随机变量的性质,期望 E ( x ) E(x) E(x)的计算公式如下:
E ( X ) = ∫ x p ( x ) d x E(X) = \int xp(x)dx E(X)=xp(x)dx
如果这时候存在一个关于随机变量的函数 g ( x ) g(x) g(x),实际上 Y = g ( x ) Y=g(x) Y=g(x)也是个随机变量。此时期望 E ( Y ) = E [ g ( x ) ] E(Y)=E[g(x)] E(Y)=E[g(x)]可以用如下公式计算:
E ( Y ) = E [ g ( x ) ] = ∫ g ( x ) p ( x ) d x E(Y) = E[g(x)] = \int g(x)p(x)dx E(Y)=E[g(x)]=g(x)p(x)dx
其中, p ( x ) p(x) p(x)是随机变量 X X X的概率密度函数。

在这里,期望是一个积分的形式,当这个积分难以写出显式解(表达式)的时候,就可以用蒙特卡洛模拟的方法去近似计算这个积分值,从而计算出期望。

用蒙特卡洛方法计算期望(积分)

蒙特卡洛方法给出的计算积分的方法是:生成一系列服从 p ( x ) p(x) p(x)分布的 x i x_i xi,然后算出一系列 g ( x i ) g(x_i) g(xi),然后用这些值的平均值近似代替我想要的积分值。这篇博客里面写了证明,用公式描述就是:
E ( Y ) ≈ 1 N Σ i = 1 N g ( x i ) w h e r e   x i ∼ p ( x ) E(Y) \approx \frac{1}{N}\Sigma_{i=1}^{N}g(x_i) \\ where \ x_i \sim p(x) E(Y)N1Σi=1Ng(xi)where xip(x)
那么问题来了,应该怎么取服从 p ( x ) p(x) p(x)分布的 x i x_i xi呢?这里的 p ( x ) p(x) p(x)是概率密度函数(Probability Density Function, PDF),实际上如果能把概率密度函数写成概率分布函数(Cumulative Distribution Function, CDF)就方便了,CDF实际上就是PDF的积分。举个例子:

假设我们要取服从正态分布 N ( 0 , 1 ) \mathcal{N}(0,1) N(0,1)的100个样本 [ x 1 , . . . , x 100 ] [x_1,...,x_{100}] [x1,...,x100]。已知其PDF,由PDF计算出CDF如下图:

  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值