4. 重要性采样原理

在稀有事件估计中,直接蒙特卡洛往往“抽不到”关键样本:若事件概率为 p = 10⁻⁶,要观测到约 100 次事件,需要约 10⁸ 次采样,代价难以接受。重要性采样(Importance Sampling, IS)的核心思想是:换一个更容易产生目标事件的分布去采样,再用似然比把“偏差”纠正回来。本节围绕公式、无偏性、权重、方差与最优分布五个要点展开,并给出可复现的计算示例。

一、重要性采样公式

设目标量为 μ = E_p[h(X)] = ∫ h(x)p(x)dx,其中 p 是真实分布(如系统真实失效分布),h 是感兴趣的函数(如失效指示函数)。引入提议分布 q,要求 q(x) > 0 在所有 p(x)h(x) ≠ 0 的点成立(支撑覆盖条件),则:

μ = ∫ h(x) · [p(x)/q(x)] · q(x) dx = E_q[ h(X) · w(X) ]
w(x) = p(x) / q(x)      (似然比 / 重要性权重)
估计量: μ̂_IS = (1/N) Σ_{i=1}^{N} h(x_i) w(x_i),  x_i ~ q

直观理解:在 q 偏高的区域,样本被“过度采样”,权重 w = p/q 相应变小;在 q 偏低的区域,样本稀少但权重变大。权重正是对采样密度偏差的补偿因子。

二、无偏性证明

只需一步换元即可证明。对单个样本:

E_q[h(X)w(X)] = ∫ h(x)·[p(x)/q(x)]·q(x) dx
              = ∫ h(x)p(x) dx = E_p[h(X)] = μ

因此 E[μ̂_IS] = (1/N)·N·μ = μ,估计量无偏。注意两个前提:一是支撑覆盖条件,否则 p/q 在 q=0 而 p>0 处无定义,会引入系统性偏差;二是 q 必须可采样且能计算 p(x) 与 q(x) 的比值(或至少比值可算,如仅差一个归一化常数时比值可消去)。无偏性只保证期望正确,不保证单次估计稳定——这正是方差要解决的问题。

三、权重与似然比的实际计算

工程中常遇到 p 只知未归一化形式 p̃ = Z_p·p、q 只知 q̃ = Z_q·q 的情形,此时 w = (p̃/q̃)·(Z_q/Z_p),常数因子在自归一化重要性采样(SNIS)中可被消去:μ̂_SNIS = Σ h(x_i)w̃_i / Σ w̃_i,其中 w̃_i = p̃(x_i)/q̃(x_i)。SNIS 有微小偏差但通常一致,且数值更稳健。

示例(合理假设,非实测):设 X ~ N(0,1),目标事件 A = {X > 4},真实概率约 3.17×10⁻⁵。直接采样 10⁶ 次平均仅约 32 次命中,相对标准差约 18%。改用提议分布 q = N(4,1),则 w(x) = exp(-x²/2 + (x-4)²/2) = exp(-4x+8)。在 x≈4 附近 w≈e^{-8}≈3.35×10⁻⁴,几乎每次采样都命中事件,估计量方差大幅下降。这说明:把提议分布平移到稀有区域,是降低方差最直接的手段。

x 密度 真实分布 p = N(0,1) 提议分布 q = N(4,1) 稀有事件区 A: X > 4 q 采样大量落入 A 区 权重 w(x) = p(x)/q(x) A 区内 p 小、q 大 → w 很小 用 w 补偿“过度采样”,估计仍无偏 无偏性: E_q[h(X)w(X)] = E_p[h(X)] 前提:q(x)>0 覆盖 p·h 的支撑 核心权衡:q 越接近“最优分布”,方差越小;q 偏离过大则权重爆炸、估计不稳

四、方差表达式与诊断

由无偏性可得单样本方差:

Var_q[h(X)w(X)] = E_q[h²(X)w²(X)] − μ²
                = ∫ h²(x)·[p²(x)/q(x)] dx − μ²
N 个独立样本: Var(μ̂_IS) = (1/N)·{ ∫ h²p²/q dx − μ² }

关键观察:方差只通过 p²/q 依赖 q。若 q 在 h·p 较大的区域取值过小,则 p²/q 剧增,方差爆炸。工程上常用有效样本量 ESS = (Σw_i)² / Σw_i² 诊断:ESS 远小于 N(如低于 N 的 10%)说明权重高度不均,估计不可信。示例中若 q 误设为 N(2,1) 而非 N(4,1),虽然仍无偏,但少数大权重样本主导结果,ESS 可能只有几十,估计波动极大。

五、最优重要性分布

用变分或柯西–施瓦茨不等式可求使方差最小的 q*。最小化 ∫ h²p²/q dx,由柯西–施瓦茨得:

q*(x) = |h(x)|·p(x) / ∫|h(x')|p(x')dx'

若 h ≥ 0(如指示函数),则 q*(x) ∝ h(x)p(x),此时方差为零——因为每个样本都落在事件区且权重恒定。但 q* 的分母正是待估量 μ,形成“要估计它先得知道它”的循环,故 q* 只是理论基准,用于指导设计而非直接使用。

实践中据此衍生出三类可操作策略:其一,平移/缩放族,如把均值移到失效域附近(上例 N(4,1)),适合高斯型问题;其二,指数扭转,令 q_θ(x) ∝ p(x)e^{θh(x)},通过调节 θ 把质量推向高 h 区域,是稀有事件仿真中的经典手段;其三,自适应/交叉熵方法,用迭代样本更新 q 的参数,使 q 逐步逼近 h·p 的形状。无论哪种,评估标准一致:看 ESS 是否接近 N、看多次独立运行的估计值是否稳定、看权重最大值是否远大于均值。

实现要点:计算权重时优先在对数域累加 log w = log p − log q,再做减最大值归一化,可避免 exp 上溢/下溢;对 h 为指示函数的稀有事件,建议先小样本试跑,观察命中率与权重分布,再确定 N 与 q 参数。

小结:重要性采样以 w = p/q 为桥梁,把“在真实分布下难以采样”的问题转化为“在提议分布下采样并加权”的问题;无偏性由换元积分保证,方差由 p²/q 决定,最优分布 q* ∝ |h|p 提供了设计方向。掌握这三点,就能在实际稀有事件估计中合理选择提议分布、判断估计是否可信。