随机变量的变换的接受-拒绝采样方法
字数 2006 2025-11-07 22:15:07

随机变量的变换的接受-拒绝采样方法

接受-拒绝采样方法是一种用于从复杂概率分布中生成随机样本的通用技术。当你无法直接对一个分布进行采样,但可以找到一个易于采样的提议分布时,该方法非常有用。

第一步:理解核心思想
想象一下,你想要在一块不规则形状的土地(你的目标分布)上均匀地撒种子。但你的播种机只能在一个规则的矩形区域(提议分布)内工作。接受-拒绝采样的思想是:

  1. 在整个矩形区域内随机撒种(从提议分布采样)。
  2. 然后,你只“接受”那些落入了不规则形状土地范围内的种子。
    通过这种方式,最终被保留下来的种子点,就相当于从不规则形状的土地上均匀采样得到的。

第二步:方法的数学设定
假设我们想从一个目标分布中生成随机变量 \(X\),其概率密度函数(PDF)为 \(f(x)\)。直接从这个 \(f(x)\) 采样很困难。
我们选择一个提议分布,其PDF为 \(g(x)\),这个分布必须满足两个条件:

  1. 我们可以很容易地从 \(g(x)\) 中采样。
  2. 存在一个常数 \(M > 1\),使得对于所有的 \(x\),都有 \(f(x) \leq M \cdot g(x)\)。这意味着函数 \(M \cdot g(x)\) 的曲线完全“包裹”住了 \(f(x)\) 的曲线。

第三步:采样算法的详细流程
算法步骤如下,直到生成一个满足条件的样本:

  1. 生成提议样本:从提议分布 \(g(x)\) 中独立地抽取一个样本 \(Y\)
  2. 生成均匀随机数:从均匀分布 \(U(0, 1)\) 中独立地抽取一个随机数 \(U\),该随机数与 \(Y\) 相互独立。
  3. 接受或拒绝判断
  • 如果 \(U \leq \frac{f(Y)}{M \cdot g(Y)}\),则 接受 这个样本,令 \(X = Y\)
    • 否则,拒绝 这个样本,并回到步骤1重新开始。

第四步:深入理解接受准则
为什么这个准则有效?

  • \(M \cdot g(Y)\) 是包裹着 \(f(Y)\) 的一个“天花板”。比值 \(\frac{f(Y)}{M \cdot g(Y)}\) 衡量了在点 \(Y\) 处,目标分布密度相对于其最大可能值(即天花板)的高度。
  • 这个比值永远在 0 和 1 之间。
  • 我们生成一个在 [0, 1] 上均匀分布的随机数 \(U\)。如果 \(U\) 小于或等于这个比值,就意味着我们以正比于该比值的概率接受了 \(Y\)。直觉上,在 \(f(Y)\) 值较高的区域(即目标分布的主要概率质量所在区域),这个比值更接近 1,因此样本被接受的概率就更大。在 \(f(Y)\) 值较低的区域,比值较小,样本更容易被拒绝。

第五步:效率与常数 M 的选择
算法的效率(即被接受的样本数占总生成样本数的比例)是一个关键考量。

  • 接受概率:一个样本被接受的概率是 \(P(Accept) = \frac{1}{M}\)
  • M 的影响:常数 \(M\) 是算法效率的核心。为了确保包裹条件成立,\(M\) 必须至少是 \(\sup_x \frac{f(x)}{g(x)}\)。你选择的 \(M\) 越接近这个下确界,包裹就越“紧”,接受概率 \(1/M\) 就越大,算法效率也就越高。如果 \(M \cdot g(x)\) 远远高于 \(f(x)\),会导致很多样本被拒绝,效率低下。

第六步:一个简单的例子
假设我们想从分布 \(f(x) = 1.5x^2, 0 \le x \le 1\) 中采样。直接逆变换采样可能稍复杂。我们使用均匀分布 \(U(0,1)\) 作为提议分布,即 \(g(x) = 1, 0 \le x \le 1\)

  1. 寻找 M:我们需要 \(f(x) \le M \cdot g(x)\)。在 [0,1] 区间上,\(f(x)\) 的最大值是 \(f(1)=1.5\)。所以我们可以取 \(M = 1.5\)。此时 \(M \cdot g(x) = 1.5\)
  2. 执行算法
    a. 从 \(U(0,1)\) 采样得到 \(Y\)
    b. 从 \(U(0,1)\) 采样得到 \(U\)
    c. 判断:如果 \(U \le \frac{1.5Y^2}{1.5 \cdot 1} = Y^2\),则接受 \(Y\) 作为样本;否则拒绝。

第七步:方法的优势与局限性

  • 优势
    • 非常通用,适用于各种复杂分布,只要你能找到一个包裹它的提议分布。
    • 概念直观,易于实现。
  • 局限性
  • 效率问题:如果目标分布和提议分布的形状差异很大(即需要很大的 \(M\)),接受率会非常低,导致计算效率低下。
    • 高维问题:在维数很高时,找到一个紧密包裹目标分布的提议分布变得极其困难,接受率会随着维数增加而指数级下降,这被称为“维数灾难”。在这种情况下,马尔可夫链蒙特卡洛(MCMC)方法通常是更优的选择。
随机变量的变换的接受-拒绝采样方法 接受-拒绝采样方法是一种用于从复杂概率分布中生成随机样本的通用技术。当你无法直接对一个分布进行采样,但可以找到一个易于采样的提议分布时,该方法非常有用。 第一步:理解核心思想 想象一下,你想要在一块不规则形状的土地(你的目标分布)上均匀地撒种子。但你的播种机只能在一个规则的矩形区域(提议分布)内工作。接受-拒绝采样的思想是: 在整个矩形区域内随机撒种(从提议分布采样)。 然后,你只“接受”那些落入了不规则形状土地范围内的种子。 通过这种方式,最终被保留下来的种子点,就相当于从不规则形状的土地上均匀采样得到的。 第二步:方法的数学设定 假设我们想从一个目标分布中生成随机变量 \(X\),其概率密度函数(PDF)为 \(f(x)\)。直接从这个 \(f(x)\) 采样很困难。 我们选择一个提议分布,其PDF为 \(g(x)\),这个分布必须满足两个条件: 我们可以很容易地从 \(g(x)\) 中采样。 存在一个常数 \(M > 1\),使得对于所有的 \(x\),都有 \(f(x) \leq M \cdot g(x)\)。这意味着函数 \(M \cdot g(x)\) 的曲线完全“包裹”住了 \(f(x)\) 的曲线。 第三步:采样算法的详细流程 算法步骤如下,直到生成一个满足条件的样本: 生成提议样本 :从提议分布 \(g(x)\) 中独立地抽取一个样本 \(Y\)。 生成均匀随机数 :从均匀分布 \(U(0, 1)\) 中独立地抽取一个随机数 \(U\),该随机数与 \(Y\) 相互独立。 接受或拒绝判断 : 如果 \(U \leq \frac{f(Y)}{M \cdot g(Y)}\),则 接受 这个样本,令 \(X = Y\)。 否则, 拒绝 这个样本,并回到步骤1重新开始。 第四步:深入理解接受准则 为什么这个准则有效? \(M \cdot g(Y)\) 是包裹着 \(f(Y)\) 的一个“天花板”。比值 \(\frac{f(Y)}{M \cdot g(Y)}\) 衡量了在点 \(Y\) 处,目标分布密度相对于其最大可能值(即天花板)的高度。 这个比值永远在 0 和 1 之间。 我们生成一个在 [ 0, 1 ] 上均匀分布的随机数 \(U\)。如果 \(U\) 小于或等于这个比值,就意味着我们以正比于该比值的概率接受了 \(Y\)。直觉上,在 \(f(Y)\) 值较高的区域(即目标分布的主要概率质量所在区域),这个比值更接近 1,因此样本被接受的概率就更大。在 \(f(Y)\) 值较低的区域,比值较小,样本更容易被拒绝。 第五步:效率与常数 M 的选择 算法的效率(即被接受的样本数占总生成样本数的比例)是一个关键考量。 接受概率 :一个样本被接受的概率是 \(P(Accept) = \frac{1}{M}\)。 M 的影响 :常数 \(M\) 是算法效率的核心。为了确保包裹条件成立,\(M\) 必须至少是 \(\sup_ x \frac{f(x)}{g(x)}\)。你选择的 \(M\) 越接近这个下确界,包裹就越“紧”,接受概率 \(1/M\) 就越大,算法效率也就越高。如果 \(M \cdot g(x)\) 远远高于 \(f(x)\),会导致很多样本被拒绝,效率低下。 第六步:一个简单的例子 假设我们想从分布 \(f(x) = 1.5x^2, 0 \le x \le 1\) 中采样。直接逆变换采样可能稍复杂。我们使用均匀分布 \(U(0,1)\) 作为提议分布,即 \(g(x) = 1, 0 \le x \le 1\)。 寻找 M :我们需要 \(f(x) \le M \cdot g(x)\)。在 [ 0,1 ] 区间上,\(f(x)\) 的最大值是 \(f(1)=1.5\)。所以我们可以取 \(M = 1.5\)。此时 \(M \cdot g(x) = 1.5\)。 执行算法 : a. 从 \(U(0,1)\) 采样得到 \(Y\)。 b. 从 \(U(0,1)\) 采样得到 \(U\)。 c. 判断:如果 \(U \le \frac{1.5Y^2}{1.5 \cdot 1} = Y^2\),则接受 \(Y\) 作为样本;否则拒绝。 第七步:方法的优势与局限性 优势 : 非常通用,适用于各种复杂分布,只要你能找到一个包裹它的提议分布。 概念直观,易于实现。 局限性 : 效率问题 :如果目标分布和提议分布的形状差异很大(即需要很大的 \(M\)),接受率会非常低,导致计算效率低下。 高维问题 :在维数很高时,找到一个紧密包裹目标分布的提议分布变得极其困难,接受率会随着维数增加而指数级下降,这被称为“维数灾难”。在这种情况下,马尔可夫链蒙特卡洛(MCMC)方法通常是更优的选择。