모델을 정하는 모수 (parameter)의 사전분포 (prior distribution, π(θ))를 이용하여
모수의 사후확률 (posterior probability, π(θ∣X))를 구하고,
이를 이용하여 모수에 관한 추론을 진행
이 때, likelihood가 복잡하거나, 데이터가 아주 큰 경우에는 사후확률을 계산하는 것이 쉽지 않다.
이에 따라, 여러 근사 베이지안 방법 (approximate Bayesian method)들이 제안되었다.
Markov Chain Monte Carlo (MCMC)
Markov Chain Monte Carlo (MCMC)은 근사 베이지안 방법의 일종으로, 다음과 같이 진행된다.
사후분포를 이론적으로 구하는 대신 우리가 원하는 사후분포를 점근분포로 갖는 Markov chain을 만든다.
해당 chain을 충분히 진행히 진행하여 어느정도 수렴이 되면, 이로부터 sample을 추출한다.
이 sample을 사후분포의 sample로 볼 수 있으므로 이를 이용하여 추론을 진행한다.
사후분포의 형태에 따라, 깁스 샘플링 (Gibbs sampling) 또는 메트로폴리스-헤이스팅 샘플링 (Metropolis-Hastings sampling)을 사용한다.
MCMC 방법은 복잡한 모형인 경우 또는 데이터가 큰 경우 계산속도가 느리다.
Markov Chain
Xt를 πt(⋅)을 분포로 갖는 시각 t에서의 상태 벡터라고 하면, Markov property는 '다음 시점의 상태 Xt+1은 오로지 현재의 상태 Xt에만 의존하며, 그 이전에 일어난 사건과는 무관하다'라는 것을 말한다. 즉, 주어진 현재의 상태에 대하여 미래와 과거의 상태는 독립이다.
P(Xn+1=x∣Xn=xn,⋯,X1=x1)=P(Xn+1=x∣Xn=xn)
Markov property를 무기억성(memorylessness)라고도 한다.
Markov chain이란 여러 가능한 상태(state) 사이에서, 어느 한 상태로부터 다른 상태로의 전이(transition)를 겪는 수학적 시스템을 뜻하며, Markov property를 갖는 확률 변수 X1,X2,⋯들의 수열로써 표현된다.
Markove chain에서 각 상태에서 다음 상태로 넘어갈 수 있는 확률를 전이확률(transition probability)라고 하며, 전이확률을 matrix 형태로 나타낸 전이행렬(transition matrix) 또는 전이확률에 대한 함수인 전이함수를 이용하여 현재의 상태로부터 그 다음, 다다음 상태의 확률분포를 계속하여 계산하는 것이 가능하다.
이러한 과정을 반복하다 보면 특정 조건 하에서 현재 상태 (state)의 확률분포가 그 전 상태의 확률분포와 같아지는 때가 온다. 이렇게 평형상태에 도달한 확률분포를 정상분포(stationary distribution) 또는 점근분포(limiting distribution) 라고 하며, 이 분포는 초기값에 의존하지 않는다.
Procedure of MCMC
점근분포가 π(x)인 Markov chain X0,⋯,Xt을 생성한다.
t를 충분히 크게 만들어, Xt가 π(x)를 따른다고 가정하는데 무리가 없으면, 이후에 생성되는 Xt+1,⋯,Xt+m을 저장한다.
이렇게 생성된 Xt+1,⋯,Xt+m을 π(x)를 따르는 난수로 본다.
t를 충분히 크게 만들어 초기값의 영향을 받지 않게 하는 과정을 burn-in period 라고 한다.
이제 문제는 이러한 Markov chain을 어떻게 만들 수 있을지가 되며, 이에 대한 하나의 해결책으로 Metropolis-Hastings algorithm이 있다.
Metropolis-Hastings Algorithm
Metropolis-Hastings algorithm 하에서 각 시각 t에서 Markov chain의 다음 상태인 Xt+1은 아래와 같은 과정을 통하여 결정된다.
어떠한 제안분포(proposal distribution) q(⋅∣Xt)로부터 후보(candidate point)가 되는 샘플 Y를 뽑는다.
제안분포는 현재의 상태인 Xt에 의존할 수 있다.
예를 들어, q(⋅∣Xt)은 평균이 Xt이고 고정된 공분산행렬을 가지는 다변량 정규분포일 수 있다.
각 시각 t에 대하여, 마코프 체인의 다음 상태인 Xt+1을 결정하기위해 다음과 같은 Acceptance ratio를 사용한다.
α(X,Y)=min(1,π(X)q(Y∣X)π(Y)q(X∣Y))
후보가 되는 Y는 α(Xt,Y)의 확률로 다음 상태로 받아들여질지 아닐지 결정된다.
위의 식은 마코프 체인의 수렴을 위한 조건중 하나인 정상분포의 존재성을 위한 Detailed Balance 조건으로부터 얻어진 식이다: π(X∣Y)π(Y)=π(Y∣X)π(X).
제안분포와 관련된 확률식 π(Y∣X)=q(Y∣X)α(X,Y)을 위의 Detailed Balance 조건식에 대입해 π(X)q(Y∣X)π(Y)q(X∣Y) 항을 얻을 수 있다.
Xt+1의 후보가 되는 Y를 q(Y∣Xt)로부터 생성한다. 그 다음 α(Xt,Y)의 확률로 다음 상태를 Y로 할지를 결정한다.
만약 Y가 받아들여지면, 다음 상태는 Xt+1=Y가 된다.
만약 Y가 받아들여지지 않으면, 다음 상태는 Xt+1=Xt가 된다.
Metropolis-Hastings algorithm은 원래 분포인 π(⋅)을 정확히 몰라도 쓸 수 있다는 장점이 있다. 즉, 정확한 확률분포가 아니라 그에 비례하는 비정규화 분포 (un-normalized distribution)만 알아도 알고리즘을 사용할 수 있다.
하지만, 목표로 하는 π(⋅)의 분포를 따르는 Xt로 수렴하는데까지 시간이 오래 걸릴 수 있다는 단점이 있다.
Example of Metropolis-Hastings Algorithm - Cauchy Model
Y1,⋯,Yn∼N(θ,1) (i.i.d)인 데이터를 생각하자. 이 때, θ의 사전확률로 π0(θ)=π(1+θ2)1를 가정하자 (첫번째 π0(⋅)는 확률밀도함수, 두번째 π는 원주율).