메트로폴리스-헤이스팅스 알고리즘 (Metropolis-Hastings Algorithm)
쉽게 풀면
복잡한 사후분포에서 직접 표본을 뽑는 것이 불가능할 때, 임의의 시작점에서 출발해 '한 걸음 옆으로 이동해볼까?'라고 제안한 뒤, 그 제안이 목표분포상 더 그럴듯한 지점이면 수락하고 아니면 일정한 확률로만 수락하는 과정을 반복하는 알고리즘이다. 이렇게 수만 번 반복하면 방문한 지점들의 모음이 결국 원하는 목표분포를 따르는 표본이 된다. 깁스표집이 각 모수의 조건부분포를 정확히 알아야 하는 반면, 이 알고리즘은 목표분포의 형태를 몰라도(비례상수만 알아도) 적용할 수 있다는 장점이 있다.
왜 중요한가
베이즈 통계에서는 사후분포의 정규화 상수를 계산하기 어려운 경우가 대부분이라, 이 상수를 몰라도 표본을 생성할 수 있는 메트로폴리스-헤이스팅스 알고리즘은 베이즈 추론을 실제로 적용 가능하게 만든 핵심 도구입니다. 생물통계, 계량경제, 물리학의 통계역학 시뮬레이션 등 복잡한 확률모형을 다루는 거의 모든 분야에서 사후분포나 평형분포를 근사하는 표준적인 방법으로 쓰입니다.
논문에서는 이렇게 쓰입니다
깁스표집을 적용하기 어려운 복잡한 사후분포에서 표본을 생성하는 범용적인 MCMC 방법으로 사용된다.
조건부분포를 닫힌 형태로 구할 수 없는 일부 모수에 한해 메트로폴리스-헤이스팅스 단계를 섞어 쓰는 방식은 복잡한 계층모형 논문에서 흔히 볼 수 있습니다.
통계물리학에서는 특정 확률분포를 따르는 계의 상태를 표집하는 데 동일한 알고리즘이 몬테카를로 이동(move)이라는 이름으로 활용됩니다.
조금 더 깊게 보면
이 알고리즘의 수락 확률은 목표분포의 비율과 제안분포의 비대칭성을 함께 반영하도록 설계되어, 대칭 제안분포를 쓰는 특수한 경우가 바로 메트로폴리스 알고리즘입니다. 실무에서는 제안분포의 폭(step size)을 조정해 수락률을 적정 수준으로 맞추고, 초반 표본을 버리는 번인(burn-in) 구간을 두며, 연속된 표본 간 자기상관을 줄이기 위해 일부 표본만 취하는 씨닝(thinning)이나 여러 개의 연쇄를 동시에 돌려 수렴을 진단하는 방법이 함께 논의됩니다.
주의할 점
제안분포(proposal distribution)를 어떻게 설정하는지에 따라 수락률과 수렴 속도가 크게 달라지므로 적절한 조정(tuning)이 필요하다.