Importance Sampling and Rejection Sampling
Chen Y. Lecture 4: Importance Sampling and Rejection Sampling.
Importance Sampling
-
设想我们希望估计这样的一个值:
\[I = \mathbb{E}_p(f(X)) = \int f(x)p(x) dx; \] -
但是可能这个分布它很难采样, 这个时候我们会用一个替代的分布 \(q\), 并用如下的量来估计:
\[\mathbb{E}_p(f(X)) = \mathbb{E}_q [\frac{p(x)}{q(x)}] \approx \hat{I}_N := \frac{1}{N} \sum_{i=1}^N f(Y_i) \cdot \frac{p(Y_i)}{q(Y_i)}, \: Y_i \mathop{\sim} \limits^{i.i.d.} q; \] -
幸运的是, 这是一个无偏的估计量, 那么问题来了, 这个估计的方差有多大 ?
\[\text{Var}(\hat{I}_N) = \frac{1}{N} \text{Var}(f(Y_i)\frac{p(Y_i)}{q(Y_i)}) = \frac{1}{N}\Big \{\int \frac{f^2(y)p^2(y)}{q(y)}dy - I^2 \Big \}, \]当
\[q(y) \propto f(y)p(y) \]的时候 \(\text{Var}(\hat{I}_N) = 0\), 即使得方差最小的最优的一个估计量为:
\[q_{opt}(y) = \frac{f(y)p(y)}{\int f(y) p(y) dy}. \]也就是说, 这个时候我们只需要从 \(q\) 中采样一次就可以得到 \(I\) 了.
Rejection Sampling
-
假设我们有一个分布 \(p(x)\) 需要采样, 然后我们另有一个替代分布 (容易采样的) \(q(x)\), 假设存在一个数 \(C\) 使得
\[C > \sup_x \frac{p(x)}{q(x)}; \]则我们可以按照如下方式进行采样:
- 从 \(q\) 中采样一 \(Y\), 从均匀分布 \(\mathcal{U}[0, 1]\) 中采样一数 \(U\);
- 倘若 \(U < \frac{p(Y)}{C \cdot q(Y)}\), 则得到采样点 \(X = Y\), 否则返回第一步.
-
可以证明, 这个点 \(X \sim p\):
\[\begin{array}{ll} P(X \le x) &= P(Y \le x|\text{Accept } Y) \\ &= P(Y \le x, U < \frac{p(Y)}{C \cdot q(Y)}) / P(\text{Accept } Y). \\ \end{array} \]对于分子部分有:
\[\begin{array}{ll} &P(Y \le x, U < \frac{p(Y)}{C \cdot q(Y)}) \\ =&\int P(Y \le x, U < \frac{p(Y)}{C \cdot q(Y)}|Y =y) q(y) \: dy \\ =&\int P(y \le x, U < \frac{p(y)}{C \cdot q(y)})\: q(y) \: dy \\ =&\int \mathbb{I}(y \le x) P(U < \frac{p(y)}{C \cdot q(y)})\: q(y) \: dy \\ =&\int_{-\infty}^x \frac{p(y)}{C \cdot q(y)} \: q(y) \: dy \\ =&\int_{-\infty}^x \frac{p(y)}{C} \: dy. \\ \end{array} \]类似地, 对于分母部分有:
\[P(\text{Accept } Y) = \frac{1}{C}. \]故
\[P(X \le x) = \int_{-\infty}^x p(y) \: dy. \] -
显而易见, Recjection Sampling 的不易之处在于 \(C\) 的存在性 (这个可以通过认为挑选 \(q\) 缓解), 以及在实际中的一个拒绝率. 因为当 \(C\) 很大的时候, 会导致很频繁地拒绝.