본문 바로가기
지능형시스템/머신러닝

[머신 러닝] 중요도 샘플링 (Importance Sampling)과 기댓값 추정

by CHML 2018. 4. 8.
1. 중요도 샘플링 (Importance Sampling)

통계 및 머신러닝 방법론을 공부하다보면 어떠한 확률분포 p(x)를 따르는 확률변수 x에 대해 함수 f(x)의 기댓값 (expected value)을 구하는 경우를 많이 접한다. 중요도 샘플링은 샘플 x에 대한 확률 p(x)은 쉽게 계산할 수 있지만, p(x)에서 샘플을 생성하는 것은 어려울 때 사용하는 방법이다. 먼저 p(x)에 대한 f(x)의 기댓값은 아래와 같이 정의된다.

(1)Ep(x)[f(x)]=f(x)p(x)dx

만약 샘플을 생성하는 것이 쉬운 q(x)라는 새로운 확률분포를 도입하면, p(x)에 대한 기댓값은 식 (2)와 같이 q(x)에 대한 것으로 계산할 수 있다.

(2)Ep(x)[f(x)]=f(x)p(x)dx=f(x)p(x)q(x)q(x)dx=Eq(x)[f(x)p(x)q(x)]

중요도 샘플링에서 원래의 확률분포 p(x)는 목표 분포 (target distribution)라 하고, 새롭게 도입된 q(x)는 제안 분포 (proposal distribution)라고 한다. 제안 분포 q(x)f(x)p(x)0인 모든 x에 대해 q(x)>0를 만족해야한다.

중요도 샘플링을 이용하면 q(x)에서 생성된 샘플 x1,x2,...,xn을 이용하여 기댓값 Ep(x)[f(x)]를 식 (3)과 같이 계산할 수 있다.

(3)Ep(x)[f(x)]1ni=1nf(xi)p(xi)q(xi)

따라서 샘플링이 어려운 p(x) 대신에 샘플링이 쉬운 q(x)를 이용하여 기댓값을 계산할 수 있는 것이다.

 

2. 중요도 샘플링의 이점과 활용

 

 

 

2. Sampling-importance-resampling (SIR)

앞의 importance sampling에서는 q라는 확률 분포를 이용하여 p의 기댓값을 추정하는 방법을 보았다. Sampling-importance-resampling (SIR)은 q라는 확률 분포를 이용하여 p의 샘플을 생성하는 방법이다. 아래의 [알고리즘 1]은 SIR을 이용하여 N개의 샘플을 생성하는 과정을 보여준다.