Untitled

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

지능형시스템/머신 러닝

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

CHML 2018. 4. 8. 20:13
1. Importance sampling

통계 및 머신 러닝 문제에서 많은 경우는 어떠한 확률 분포 $p$의 기댓값 (expected value)을 구하는 것과 밀접한 연관이 있다. Importance sampling은 효율적으로 기댓값을 추정하기 위해 고안되었으며, 확률 밀도 추정 및 강화 학습 등의 다양한 활용에 이용되고 있다. Importance sampling의 목적은 기댓값을 계산하고자 하는 확률 분포 $p(x)$의 확률 밀도 함수 (probability density function, PDF)를 알고는 있지만 $p$에서 샘플을 생성하기가 어려울 때, 비교적 샘플을 생성하기가 쉬운 $q(x)$에서 샘플을 생성하여 $p$의 기댓값을 계산하는 것이다. 우리는 [식 1]과 같이 $q$에서 생성된 샘플을 이용하여 $p$의 기댓값을 계산할 수 있다.




[식 1]에서 $p(x)/q(x)$를 likelihood ratio라고 하며, $p$를 nominal distribution, $q$를 importance distribution이라고 한다. Importance sampling에서는 $p$의 기댓값 $E_{x\sim p} [f(x)]$를 [식 2]와 같이 추정한다.



2. Sampling-importance-resampling (SIR)

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





4 Comments
댓글쓰기 폼