로그인 바로가기 하위 메뉴 바로가기 본문 바로가기

인공지능 및 기계학습 개론 II

임시 이미지 KAIST 산업및시스템공학과 문일철 교수 KOOC (KAIST Open Online Course)
http://www.edwith.org/machinelearning2__17/forum/103626
좋아요 1110 수강생 5461

Sampling의 궁극적인 목적은 tractable한 density estimation이 가능한 random variable에서 sampling하는 방법입니다.

여기서, tractable한 density estimation이 의미하는 것은 두가지입니다.

첫번째 의미는, 실제로 우리가  density (혹은 likelihood라고도 불립니다) p(x)  p(x) 값을 "정확히" 계산할 수 있는 경우입니다. 예를 들면 가우시안 분포인  p(x)=N(x;0,I)  p(x)=N(x;0,I) 은 정확한 density evaluation이 가능합니다.

두번째 의미는 우리가 density  p(x)  p(x) 의 정확한 값은 계산할 수 없지만, 적어도 density를 근사할 수 있는 경우입니다. 예를 들면 data variable  x  x 가 latent variable  z  z 에 의해 생성(설명)되는 latent variable model을 세웠을 때 (즉, VAE의 경우에 해당) density  p(x)  p(x) 는  p(x)=\int p(x\vert z)p(z)dz  p(x)=p(xz)p(z)dz 가 됩니다. 이때 latent variable distribution인  p(z)  p(z) 는 보통의 경우 표준 가우시안 분포로 가정합니다. 이러한 경우에 보통 적분을 closed-form으로 계산하지 못합니다. 그렇기 때문에 적분을  p(x)\approx \sum_{n=1}^{N}p(x\vert z_{n})  p(x)n=1Np(xzn) , where  z_{n}\sim p(z)  znp(z) 와 같이 Monte-Carlo estimation으로 근사합니다. 이 경우 우리는  p(x)  p(x) 는 정확히 알지 못하지만 적어도 그 근사치는 알 수 있습니다.

위의 두가지 경우를 두고 우리는 density estimation 하였다고 합니다.

그렇다면 density estimation이 가능한 random variable에서 하나의 샘플을 뽑는 것이 가능할까요?

우리가 수학을 배울 때는 이러한 고민을 하지 않고 그냥 샘플을 뽑았다고 가정하고 그것에 대한 분석을 합니다. 하지만 실제로 그것을 컴퓨터로 구현하는 과정에서 우리가 알게 되는 것은 샘플은 거저로 뽑히는 것이 아니라는 것입니다.

Chapter 10에서는 이러한 샘플을 뽑는 많은 방법론을 이야기하고 있습니다.

예를 들어 rejection sampling은 아주 쉬운 distribution (예를 들면 uniform distribution 혹은 표준 정규 분포)에서 샘플링을 한 후, 쉬운 distribution과  p(x)  p(x) 와의 likelihood ratio에 비례하게 샘플을 reject하는 방법입니다.


- 이제 우리의 관심은 다른 곳을 향합니다. 수많은 샘플링 방법을 안다고 가정했을 때, 우리는  E_{p(x)}[f(x)]  Ep(x)[f(x)] 를 더 적은 샘플링으로 더 정확하게 근사하고 싶습니다.

이것을 수학적으로 이야기하면, minimum variance를 가지는 estimation을 하고 싶다고 합니다. 어떠한 방법으로 sampling을 해야할까요?

이 경우 사용하는 방법이 importance sampling입니다. importance sampling은  p(x)  p(x) 에서 바로 샘플들인  x_{1},...,x_{N}  x1,...,xN 을 뽑는 것이 아니라 뽑기 쉬운 분포인 proposal distribution  q(x)  q(x) 에서 샘플들  x_{1},...,x_{N}  x1,...,xN 을 뽑은 후에  \sum_{n=1}^{N}f(x_{n})  n=1Nf(xn) 이 아니라, importance weighted summation인  \sum_{n=1}^{N}\frac{p(x_{n})}{q(x_{n})}f(x_{n})  n=1Nq(xn) p(xn)f(xn) 를 통해  E_{p(x)}[f(x)]  Ep(x)[f(x)] 를 추정하는 것입니다. 

중요한 점은 q(x)  q(x) 를 어떤 분포로 가정하는지에 따라 estimation variance가 차이난다는 점입니다. 즉, 수학적으로 알려져 있는 사실은  q^{*}(x)\propto p(x)\vert f(x)\vert  q(x)p(x)f(x) 라면 우리가 추정한 추정치의 variance가 최소화된다는 점입니다.

그렇기 때문에 importance weight를  p(x)\vert f(x)\vert  p(x)f(x) 와 유사하지만 쉽게 샘플링이 가능한 분포로 놓는다면 uniform sampling, rejection sampling, Metropolis-Hastings sampling, Gibbs sampling 등의 방법론보다 더 작은 variance를 가지는 추정을 하게 되는 것입니다.

참고할 만한 문헌은 https://statweb.stanford.edu/~owen/mc/Ch-var-is.pdf 입니다.