5-1. MCMC(Estimation of Posterior - Markov Chain Monte Carlo) - 몬테카를로 방법(Monte Carlo method)

2021. 7. 18. 17:25Bayesian

728x90

이번 글에서는 사후 분포를 계산할 수 없는 경우 이를 계산할 수 있는 방법인 MCMC(Markov Chain Monte Carlo)방법의 구성요소인 몬테카를로방법(Monte carlo method)에 대해 알아보겠습니다.


관측치 $y=(y_1,\dots, y_n)$, $\theta$에 대해 사후 분포는 다음과 같습니다. 

$p(\theta|y)=\frac {p(y|\theta)\pi(\theta)}{\int {p(y|\theta)\pi(\theta) d\theta}}$

베이지안 추론의 장점은 새로운 관측치에 대한 추론을 수행할 때, 이전의 데이터(사후 분포)를 이용하여 추론을 갱신할 수 있다는 것입니다.

예를 들어서, 미래 관측값 $\tilde {y}$에 대한 추론을 다음과 같이 수행할 수 있습니다.

$p(\tilde {y}|y)=\int {p(\tilde {y}|\theta) p(\theta|y) d\theta}$

위의 식에서 $\theta$의 차원이 커서 복잡한 결합 확률분포를 이루게 된다면, 적분을 계산할 수 없게 될 것입니다. 반대로 말해서 $\theta$의 복잡한 결합 확률분포에서 샘플링할 수 있다면, 적분을 계산할 수 있을 것입니다.

MCMC 방법은 두 가지 파트로 나눠서 계산을 수행합니다. 첫 번째 파트는 복잡한 결합 확률분포에서 샘플링하는 파트이고, 두 번째 파트는 샘플링된 값들을 이용하여 우리가 원하는 통계량을 추정하는 파트입니다. 복잡한 결합 확률분포에서 샘플링하는 파트에서 Markov Chain이 쓰이고, 원하는 통계량을 추정하는 파트에서 Monte carlo 방법이 쓰이게 됩니다. Markov Chain의 분량이 많아, 이번 글에서는 Monte carlo 방법에 대해 알아보겠습니다.


Monte carlo method

몬테칼로 방법(Monte carlo method)은 어떤 함수로부터 샘플링한 값을 이용하여 우리가 원하는 통계량($e.g. \textrm {mean, variance}$)을 계산하는 방법입니다. 

예를 들어서 어떤 함수에 대한 기댓값과 분산은 다음과 같이 구할 수 있습니다.

$\mathbb {E}_{p}[g(\theta)]=\int {g(\theta) p(\theta|y)}d\theta$

$\mathbb {V}_{p}[g(\theta)]=\mathbb{E}_{p}[q(\theta)^2]-\mathbb{E}_{p}[q(\theta)]^2$

 

만약 $\theta$를 아주 많이 샘플링할 수 있다면, 함수 $g(\theta)$에 대해 대수의 법칙이 성립합니다. 즉, 다음과 같습니다.

$\mathbb {E}_{p}[g(\theta)] = \displaystyle \lim_{n \rightarrow \infty} \displaystyle \Sigma_{i=1}^{n} {g(\theta_i)} \approx \displaystyle \Sigma_{i=1}^{n} {g(\theta_i)}$