蒙特卡洛方法、接受拒绝采样、重要性采样、MCMC方法
文章目录
一、蒙特卡洛方法
1. 什么是蒙特卡洛方法
蒙特卡罗方法也称统计模拟方法,以概率为基础的方法,与它对应的是确定性算法,其核心思想是使用采样+平均(随机近似)的方式去估计出无法计算的值。
蒙特卡洛方法的一个重要应用就是求定积分。来看下面的一个例子。
2. 蒙特卡洛积分推导
我们先说明一般情况再举具体的例子。假设要计算的积分如下:
I = ∫ a b g ( x ) d x I=\int_{a}^{b} g(x)dx I=∫abg(x)dx
其中被积函数 g ( x ) g(x) g(x)在 [ a , b ] [a,b] [a,b]内可积,我们选择一个概率密度函数为 f X ( x ) f_X(x) fX(x)的方式进行采样,并且保证在 [ a , b ] [a,b] [a,b]内该采样函数的概率和为1,即 ∫ a b f X ( x ) d x = 1 \int_{a}^{b} f_X(x)dx = 1 ∫abfX(x)dx=1,那么原积分可写成:
I = ∫ a b g ( x ) f X ( x ) f X ( x ) d x = ∫ a b g ( x ) f X ( x ) d x ⋅ ∫ a b f X ( x ) d x = ∫ a b g ( x ) f X ( x ) d x \begin{aligned} I&=\int_{a}^{b} \frac{g(x)}{f_X(x)} f_X(x) dx \\ &=\int_{a}^{b} \frac{g(x)}{f_X(x)} dx \cdot \int_{a}^{b} f_X(x) dx \\ &=\int_{a}^{b} \frac{g(x)}{f_X(x)} dx \end{aligned} I=∫abfX(x)g(x)fX(x)dx=∫abfX(x)g(x)dx⋅∫abfX(x)dx=∫abfX(x)g(x)dx
我们以概率密度函数 f X ( x ) f_X(x) fX(x)的方式进行采样,得到 N N N个样本,则可以将上面的式子写成离散形式:
I ′ = 1 N ∑ i = 1 N g ( x i ) f X ( x i ) I' = \frac{1}{N} \sum_{i=1}^{N} \frac{g(x_i)}{f_X(x_i)} I′=N1i=1∑NfX(xi)g(xi)
则有 I ′ ≈ I I' \approx I I′≈I
举例子:
上面的例子其实就是取 f X f_X fX为均匀分布:
f X ( x ) = 1 b − a , a ≤ x ≤ b f_X(x) = \frac{1}{b-a},a \leq x \leq b fX(x)=b−a1,a