真实面经题目 · 原创解析

重要度采样是什么?

重要度采样是一种用容易采样的分布 q 来估计目标分布 p 下期望的蒙特卡洛方法。核心思想是:如果想计算 E_p[f(X)],但很难直接从 p(x) 采样,可以改从 q(x) 采样,并给每个样本乘上重要性权重 w(x)=p(x)/q(x),从而修正采样分布带来的偏差。它广泛用于概率统计、机器学习、强化学习离策略评估、贝叶斯推断和稀有事件估计。

出现于:阿里巴巴 · 算法

60 秒回答模板

重要度采样是用一个更容易采样的提议分布 q(x) 来估计目标分布 p(x) 下期望的方法。假设要计算 E_p[f(X)]=∫f(x)p(x)dx,如果直接从 p 采样困难,可以从 q 采样,并改写为 ∫f(x)p(x)dx=∫f(x)p(x)/q(x)q(x)dx=E_q[f(X)w(X)],其中 w(x)=p(x)/q(x) 是重要性权重。用 N 个 q 分布样本估计就是 1/N∑f(x_i)w(x_i)。它在满足 q(x)>0 whenever p(x)f(x)≠0 的支持集条件下是无偏的,但方差可能很大,尤其当 p/q 的权重极端不均匀时。实践中常用自归一化重要度采样,即 ∑w_i f(x_i)/∑w_i,它通常有偏但一致,且在只知道未归一化 p 的情况下很有用。评价采样质量时可以看有效样本量 ESS=(∑w_i)^2/∑w_i^2。好的 q 应该覆盖 p 的高概率区域,并且在 |f(x)|p(x) 大的地方给足概率质量。

考点 为什么需要重要度采样
主线 核心公式
易错点 只说换一个分布采样而没有说明权重 p(x)/q(x),…

深入解析

01

为什么需要重要度采样

很多概率和机器学习问题最终都要计算某个期望,例如 E_p[f(X)]。如果目标分布 p(x) 很复杂、归一化常数未知,或者从 p 直接采样代价很高,普通蒙特卡洛方法就很难使用。重要度采样的想法是换一个容易采样的分布 q(x),再用权重把 q 下的样本校正回 p 下的期望。

02

核心公式

目标是计算 μ=E_p[f(X)]=∫f(x)p(x)dx。只要 q(x) 在需要估计的区域不为 0,就可以写成 μ=∫f(x)p(x)/q(x)q(x)dx=E_q[f(X)w(X)],其中 w(x)=p(x)/q(x)。于是从 q 中采样 x_1,...,x_N 后,用 μ_hat=1/N∑f(x_i)w(x_i) 来估计目标期望。

03

支持集条件

重要度采样最重要的前提是支持集覆盖:当 f(x)p(x)≠0 时,必须有 q(x)>0。直观地说,如果目标分布 p 在某些区域有概率质量,但 q 从不采到这些区域,那么这些区域对期望的贡献永远无法被估计,权重也无法补救。更强的实践要求是 q 不仅要覆盖 p,而且要在 p 的高概率区域和 f(x)贡献大的区域给足概率质量。

04

无偏性与方差

普通重要度采样估计量 1/N∑f(x_i)w(x_i) 在条件满足时是无偏的,因为它的期望正好等于 E_q[f(X)w(X)]=E_p[f(X)]。但它的方差可能非常大,核心风险来自权重 p(x)/q(x) 的波动。如果少数样本拥有极大权重,估计结果会被少数样本支配,看似样本数不少,实际有效信息却很少。

05

自归一化重要度采样

很多场景下我们只知道目标分布的未归一化形式,例如 p_tilde(x)=Zp(x),但不知道归一化常数 Z。此时可以使用自归一化估计:μ_hat_SN=∑w_i f(x_i)/∑w_i,其中 w_i 使用未归一化权重也可以,因为归一化常数会在分子分母中抵消。它一般不是严格无偏的,但随着样本数增加是一致的。

06

有效样本量 ESS

有效样本量用于衡量权重退化程度,常见近似公式是 ESS=(∑w_i)^2/∑w_i^2。如果所有权重差不多,ESS 接近样本数 N;如果少数样本权重极大,ESS 会远小于 N。ESS 不是新的估计目标,而是诊断工具,用来判断当前 q 是否合适、是否需要重采样、增加样本或重新设计提议分布。

07

提议分布 q 的设计

理想的 q 应该让 f(x)p(x)/q(x) 的波动尽量小。直观原则包括:q 要覆盖 p 的支持集;q 的尾部最好不比 p 更薄,避免极端大权重;q 应该在 p(x)|f(x)| 较大的区域采更多样本;q 还要容易采样、容易计算密度。理论上最优 q 与 |f(x)|p(x) 成正比,但实际通常只能近似。

08

强化学习中的离策略估计

在强化学习中,重要度采样常用于离策略评估:数据来自行为策略 b(a|s),但我们想评估目标策略 π(a|s)。轨迹级权重通常是多个时间步动作概率比的乘积:∏π(a_t|s_t)/b(a_t|s_t)。它能把行为策略下的样本校正为目标策略下的估计,但长轨迹会导致权重乘积方差爆炸。

易错点

  • 只说换一个分布采样而没有说明权重 p(x)/q(x),会漏掉重要度采样的核心。
  • 忽略支持集条件,误以为只要 q 容易采样就可以;实际上 q 没覆盖到的目标区域无法被修正。
  • 把无偏性等同于低方差;重要度采样可以无偏但方差极大,导致有限样本表现很差。
  • 认为自归一化重要度采样严格无偏;它通常是有偏但一致的。
  • 只关注 p 的高概率区域,忘记 f(x) 的大小也会影响哪些区域对期望贡献最大。
  • 在强化学习中直接使用长轨迹权重乘积,却不讨论方差爆炸和权重退化问题。

面试官追问

重要度采样为什么可以无偏?

因为在 q 的支持集覆盖目标贡献区域时,E_q[f(X)p(X)/q(X)]=∫f(x)p(x)/q(x)q(x)dx=∫f(x)p(x)dx=E_p[f(X)]。所以普通重要度采样估计量的期望等于真实目标期望。

自归一化重要度采样和普通重要度采样有什么区别?

普通形式是 1/N∑w_i f(x_i),要求权重使用归一化后的 p/q,通常无偏。自归一化形式是 ∑w_i f(x_i)/∑w_i,可以使用未归一化权重,通常有偏但一致,并且在目标分布归一化常数未知时更实用。

为什么重要度采样会出现高方差?

主要原因是 q 在目标重要区域给的概率太小,导致 p/q 权重非常大。此时少数样本对估计值贡献极大,估计结果会被极端权重支配。尤其在高维空间或长轨迹强化学习中,权重乘积容易迅速爆炸。

如何选择好的提议分布 q?

q 要覆盖 p 的支持集,尾部最好比 p 更厚,并在 |f(x)|p(x) 大的区域分配更多概率质量。同时 q 还需要容易采样和计算密度。理论上最优 q 与 |f(x)|p(x) 成正比,但实际通常用近似分布、混合分布或自适应方法。

ESS 低说明什么?

ESS 低说明权重高度不均匀,虽然名义样本数很多,但有效贡献主要来自少数样本。这通常意味着 q 设计不好、权重退化严重,可能需要重新设计 q、增加样本、截断权重或使用重采样等方法。