蒙特卡洛积分——采样方法

文章详细介绍了蒙特卡洛积分的基本原理,利用大数定律来逼近复杂积分。在离散型和连续型随机变量情况下,阐述了如何通过概率分布采样得到所需样本。对于无法直接采样的复杂分布,提出了接收-拒绝采样方法,通过一个易于采样的提议分布来近似目标分布,并解释了其工作原理。文章最后强调了采样效率和提议分布选择对蒙特卡洛积分方法的影响。
摘要由CSDN通过智能技术生成

蒙特卡洛积分

  • 目的: 通过计算机进行采样近似求解复杂的积分
  • 理论基础: 大数定律,当 n n n足够大时, X X X的均值将收敛于它的期望(不严谨表述)
  • 一般形式: θ = ∫ a b f ( x ) d x = ∫ a b f ( x ) p ( x ) p ( x ) d x ≈ 1 n ∑ i = 1 n f ( x i ) p ( x i ) \theta=\int_a^b{f(x)dx}=\int_a^b{\frac{f(x)}{p(x)}p(x)dx}\approx\frac{1}{n}\sum_{i=1}^{n}\frac{f(x_i)}{p(x_i)} θ=abf(x)dx=abp(x)f(x)p(x)dxn1i=1np(xi)f(xi) p ( x ) p(x) p(x) x x x的概率密度, x i x_i xi为从 x x x的概率分布 p ( x ) p(x) p(x)中随机采样得到的第 i i i个样本,然而,当 p ( x ) p(x) p(x)是一个比较复杂的概率密度时,从 p ( x ) p(x) p(x)中随机采样并不容易,那么我们现在的问题就转化为了"如何采样出 x x x的分布 p ( x ) p(x) p(x)对应的若干个样本"
  • 重点强调一下,我们所说的采样指的是对 x x x采样,而 p ( x ) p(x) p(x) x x x的概率密度,影响每一个 x x x被采样到的概率

概率分布采样

  • 虽然对于复杂分布 p ( x ) p(x) p(x)而言,采样是一件困难的事情,但在计算机中, 得到一个均匀分布 U ( 0 , 1 ) U(0,1) U(0,1)上的随机数是很简单的, 因此,我们自然而然的会想要通过这个简单的均匀分布来解决我们的问题。

离散型随机变量情形

  • 我们这里用 θ \theta θ表示服从 U ( 0 , 1 ) U(0,1) U(0,1)的随机变量. 现在我们就探讨如何通过对服从 U ( 0 , 1 ) U(0,1) U(0,1)的随机变量 θ \theta θ采样,来得到我们想要的服从其它离散分布的随机变量 X X X的样本.
  • 设有一个离散型随机变量 X ∼ ( x 1 x 2 ⋯ x n p 1 p 2 ⋯ p n ) X\sim\left( \begin{array}{ccc} x_1&x_2&\cdots&x_n\\ p_1&p_2&\cdots&p_n \end{array} \right) X(x1p1x2p2xnpn) X X X θ \theta θ之间存在如下映射关系 X = G ( θ ) X=G(\theta) X=G(θ)
  • 由于 θ \theta θ恰好服从 U ( 0 , 1 ) U(0,1) U(0,1),因此,我们只需要将 θ \theta θ依概率映射到
    样本空间 X X X中每个值即可,即 X = G ( θ ) = { x 1 0 ≤ θ < p 1 x 2 p 1 ≤ θ < p 1 + p 2 ⋯ ⋯ x n ∑ 1 n − 1 p i ≤ θ < 1 X=G(\theta)=\left\{ \begin{array}{c} x_1&0\le\theta<p_1 \\ x_2 &p_1\le\theta<p_1+p_2 \\ \cdots &\cdots\\ x_{n} &\sum_1^{n-1}p_i\le\theta<1 \\ \end{array} \right. X=G(θ)= x1x2xn0θ<p1p1θ<p1+p21n1piθ<1
    其实可以将右边的不等式看作累积分布概率作用下的结果,比如第二行 p 1 ≤ θ < p 1 + p 2 p_1\le\theta<p_1+p_2 p1θ<p1+p2,其实它区间的长度就等于 p 2 + p 1 − p 1 = p 2 p_2+p_1-p_1=p_2 p2+p1p1=p2,也就是 x 2 x_2 x2对应的概率 p 2 p_2 p2
  • 这样就实现了在离散型随机变量的情形之下,找到了服从 U ( 0 , 1 ) U(0,1) U(0,1)的随机变量 θ \theta θ X X X之间的映射关系 G G G,也就可以通过对 θ \theta θ采样的结果转化为对 X X X的采样结果

连续型随机变量情形

  • 在连续型随机变量的情形之下,同样的,我们也探讨如何通过一个服从 U ( 0 , 1 ) U(0,1) U(0,1)的随机变量 θ \theta θ来得到我们想要的服从其它概率分布的随机变量的样本.
  • 设有一个连续型随机变量 X X X,其概率密度为 f ( x ) f(x) f(x),累积分布函数为 F ( x ) F(x) F(x) X X X θ \theta θ之间存在如下映射关系 X = G ( θ ) X=G(\theta) X=G(θ)
  • 由累积分布函数的定义可得 P { X < a } = F ( a ) P\{X<a\}=F(a) P{X<a}=F(a) X = G ( θ ) X=G(\theta) X=G(θ)代入可得 P { G ( θ ) < a } = F ( a ) P\{G(\theta)<a\}=F(a) P{G(θ)<a}=F(a)
  • 由累积分布函数的性质可得, F ( x ) F(x) F(x)为一个单调递增函数,因此,对不等式两边同时取 G G G的反函数可得 P { θ < G − 1 ( a ) } = F ( a ) P\{\theta<G^{-1}(a)\}=F(a) P{θ<G1(a)}=F(a)
  • 又已知 θ \theta θ服从 U ( 0 , 1 ) U(0,1) U(0,1),因此有 P { θ < b } = b , b ∈ [ 0 , 1 ] P\{\theta<b\}=b,b\in[0,1] P{θ<b}=b,b[0,1]
  • b = G − 1 ( a ) b=G^{-1}(a) b=G1(a)可得 P { θ < G − 1 ( a ) } = G − 1 ( a ) P\{\theta<G^{-1}(a)\}=G^{-1}(a) P{θ<G1(a)}=G1(a)
  • 又因为刚才证得 P { θ < G − 1 ( a ) } = F ( a ) P\{\theta<G^{-1}(a)\}=F(a) P{θ<G1(a)}=F(a),所以有 F ( a ) = G − 1 ( a ) F(a)=G^{-1}(a) F(a)=G1(a)
  • 因此 G ( a ) = F − 1 ( a ) G(a)=F^{-1}(a) G(a)=F1(a)
  • 所以 X = G ( θ ) = F − 1 ( θ ) X=G(\theta)=F^{-1}(\theta) X=G(θ)=F1(θ)
  • 根据以上结论,我们可以得出在连续型随机变量的情形下, θ \theta θ与随机变量 X X X的映射关系就是 x x x累积分布函数的反函数

接收—拒绝采样

  • 刚刚介绍了概率分布采样方法,对于连续型随机变量的情形而言,我们可以通过使用随机变量 X X X的的累积分布函数的反函数,也就是如下式子 X = G ( θ ) = F − 1 ( θ ) X=G(\theta)=F^{-1}(\theta) X=G(θ)=F1(θ)来将 θ \theta θ转化为 X X X,但众所周知,累积分布函数是不好求的,尤其是对于复杂的概率密度 p ( x ) p(x) p(x)而言,难以通过积分得到累积分布函数 F ( θ ) F(\theta) F(θ)
  • 对于概率分布不是常见的分布的情况,一个可行的办法是牺牲采样的效率,采用接受-拒绝采样来得到该分布的样本。
  • 现在假设我们想要得到从一个复杂的分布 p ( x ) p(x) p(x)中进行采样,既然 p ( x ) p(x) p(x)太复杂在程序中没法直接采样,那么我设定一个便于程序采样的分布 q ( x ) q(x) q(x),比如高斯分布,然后从 q ( x ) q(x) q(x)中进行采样,并按照一定的方法拒绝某些不合理的样本,以达到接近 p ( x ) p(x) p(x)分布的目的,其中 q ( x ) q(x) q(x)被称为提议分布
    在这里插入图片描述
  • 采样步骤如下:
    • 我们设置一个常量 k k k使得 k q ( x ) kq(x) kq(x)总是在 p ( x ) p(x) p(x)的上方
    • 首先,我们使用概率分布采样方法 q ( x ) q(x) q(x)进行采样,得到一个样本 z 0 z_0 z0
    • 然后,从均匀分布 U ( 0 , 1 ) U(0,1) U(0,1)中随机采样得到一个样本 u 0 u_0 u0
    • 如果 u 0 ≤ p ( z 0 ) k q ( z 0 ) u_0\le\frac{p(z_0)}{kq(z_0)} u0kq(z0)p(z0),那么就接受 z 0 z_0 z0这个样本,否则拒绝这次采样
    • 重复以上过程,得到 n n n个接受的样本 z 0 , z 1 , . . . z n − 1 z_0,z_1,...z_{n−1} z0,z1,...zn1
  • 直观上理解这个采样过程就是:
    • 从均匀分布 U ( 0 , 1 ) U(0,1) U(0,1)中生成一个随机概率 u 0 u_0 u0
    • 由于我们需要近似的概率分布 p ( x ) p(x) p(x)是图中的红色线条,对于我们采集到的样本点 z 0 z_0 z0而言,它有 p ( z 0 ) k q ( z 0 ) \frac{p(z_0)}{kq(z_0)} kq(z0)p(z0)的概率可以被认为是一个合理的样本 p ( z 0 ) k q ( z 0 ) \frac{p(z_0)}{kq(z_0)} kq(z0)p(z0)代表的就是在 x = z 0 x=z_0 x=z0这条竖直的线上 p ( z 0 ) p(z_0) p(z0) k q ( z 0 ) kq(z_0) kq(z0)的比值,可以按几何概率的思想来理解)
    • 随机概率 u 0 u_0 u0如果没有超过 p ( z 0 ) k q ( z 0 ) \frac{p(z_0)}{kq(z_0)} kq(z0)p(z0)这个阈值,则认为这次采样的结果是合理的,并接受 z 0 z_0 z0
  • 总之,通过我们通过提议分布 q ( x ) q(x) q(x),最终采集到的样本为 z 0 , z 1 , . . . z n − 1 z_0,z_1,...z_{n−1} z0,z1,...zn1,我们可以通过这组样本,应用蒙特卡洛方法解决最开始的积分问题 θ = ∫ a b f ( x ) d x = ∫ a b f ( x ) p ( x ) p ( x ) d x ≈ 1 n ∑ i = 1 n f ( z i ) p ( z i ) \theta=\int_a^b{f(x)dx}=\int_a^b{\frac{f(x)}{p(x)}p(x)dx}\approx\frac{1}{n}\sum_{i=1}^{n}\frac{f(z_i)}{p(z_i)} θ=abf(x)dx=abp(x)f(x)p(x)dxn1i=1np(zi)f(zi)
  • 但此采样方法的效率深受提议分布的影响,如果提议分布与原始分布相差巨大,那么采样结果被拒绝的概率就会非常高,导致采样的效率低下,同时,对于一些高维的复杂非常见分布 p ( x 1 , x 2 , . . . , x n ) p(x_1,x_2,...,x_n) p(x1,x2,...,xn),我们要找到一个合适的 q ( x ) q(x) q(x) k k k非常困难。

总结

  • 当我们需要求解一个复杂积分时,我们可以对此积分稍作变换 ∫ a b f ( x ) d x = ∫ a b f ( x ) p ( x ) p ( x ) d x \int_a^b{f(x)dx}=\int_a^b{\frac{f(x)}{p(x)}p(x)dx} abf(x)dx=abp(x)f(x)p(x)dx以便于应用蒙特卡洛方法,因为蒙特卡洛方法最重要的思想便是使用均值来逼近期望,这就要求我们抽取一系列的 x x x的样本,然后令 ∫ a b f ( x ) p ( x ) p ( x ) d x ≈ 1 n ∑ i = 1 n f ( x i ) p ( x i ) \int_a^b{\frac{f(x)}{p(x)}p(x)dx}\approx\frac{1}{n}\sum_{i=1}^{n}\frac{f(x_i)}{p(x_i)} abp(x)f(x)p(x)dxn1i=1np(xi)f(xi) 以此来近似积分的结果.
  • 在抽取 x x x的样本的过程中,又出现了新的问题,对于常见的概率分布,我们可以通过概率分布采样方法进行采样,然而对于不常见的分布而言,我们很难积分得到它的累积分布函数,更不必说它的反函数,因此我们又引入了接收—拒绝采样方法,使用提议分布为中介进行采样.

References

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值