Machine Learning

Importance Sampling

Viator 2022. 12. 20. 09:33

Importance Sampling은 기댓값을 계산하는 확률분포함수는 알고 있지만 표본을 생성하기 어려울 때 해당 확분포함수 대신에 표본을 생성하기가 쉬운 다른 확률 분포함수를 이용해 기댓값을 추정하는 방법이다.

즉 표본 $x$의 확률분포함수를 $p(x)$라 할 때 해당 표본에 대한 어떤 함수 $f(x)$의 기댓값은 아래와 같이 전개할 수 있게 된다는 것이다.

$$
\begin{align}
\Bbb{E}_{x \sim p(x)} [f(x)]
&= \int_{x} p(x) f(x) dx \\
&= \int_{x} \frac{p(x)}{q(x)} q(x) f(x) dx \\
&= \Bbb{E}_{x \sim q(x)} \left [ \frac{p(x)}{q(x)} f(x) \right ]
\end{align}
$$

여기서 $p$와 $q$의 다름 정도를 나타내는 $\frac{p(x)}{q(x)}$는 importance weight이라 칭한다. 그래서 importance sampling은 importance weight으로 비율을 맞춰주면서 $f(x)$에 대한 기대값을 구하는 기법이라고도 할 수 있다. 그렇다면 $p(x)$로 샘플링을 하기 힘든 모든 상황에서 이 단순한 대체 기법을 적용할 수 있을까?
결론부터 얘기하면 $p(x)$와 $q(x)$가 비슷하지 않으면 분산이 달라지기 때문에 적용하기 어렵다.

본래의 확률분포함수 $p(x)$를 따른 $f(x)$의 분산식은 아래와 같고,

$$
Var_{x \sim p(x)}[f(x)] = \Bbb{E}_{x \sim p(x)}[f(x)^2] - \Bbb{E}_{x \sim p(x)} [f(x)]^2
$$

대체 확률분포함수 $q(x)$를 따른 $f(x)$의 분산식은 아래와 같다.

$$
\begin{align}
Var_{x \sim q(x)}[f(x)]
&= \Bbb{E}_{x \sim q(x)} \left [ \left( \frac{p(x)}{q(x)}f(x) \right)^2 \right ] - \left( \Bbb{E}_{x \sim q(x)} \left [ \frac{p(x)}{q(x)}f(x) \right ] \right )^2 \\
&= \int_{x} \left( \frac{p(x)}{q(x)}f(x) \right)^2 q(x) dx - \left( \Bbb{E}_{x \sim p(x)} \left [ f(x) \right ] \right )^2 \\
&=\int_{x} \frac{p(x)}{q(x)} (f(x))^2 p(x) dx - \left( \Bbb{E}_{x \sim p(x)} \left [ f(x) \right ] \right )^2 \\
&= \Bbb{E}_{x \sim p(x)} \left [ \frac{p(x)}{q(x)} (f(x))^2 \right ]- \left( \Bbb{E}{x \sim p(x)} \left [ f(x) \right ] \right )^2
\end{align}
$$

여기서 두 분산식의 첫째항을 살펴보면 $\frac{p(x)}{q(x)}$가 1이 될 때의 값은 같으나 $p(x)$와 $q(x)$의 값이 같지 않으면 본래의 분산식과는 차이가 생겨 $p$대신 $q$를 사용하는 결과에 대해 신뢰하기 어렵게 된다.

그러므로 이 importance sampling 사용에 있어서 "$p(x)$와 $q(x)$의 값이 거의 비슷할 때" 라는 제약조건이 붙는다.