해밀토니안 몬테카를로 (Hamiltonian Monte Carlo)
한 줄 정의: 물리학의 운동방정식을 이용해 사후분포를 효율적으로 탐색하는 마르코프 연쇄 표집법입니다.
쉽게 풀면
일반적인 표집법은 다음 후보를 무작위로 조금씩 옮기기 때문에 고차원에서 제자리걸음을 합니다. 해밀토니안 몬테카를로는 사후분포를 지형으로 보고, 매번 무작위 운동량을 준 뒤 그 지형 위를 굴러가듯 움직여 멀리 떨어진 후보를 제안합니다. 덕분에 표본들 사이의 자기상관이 줄고 탐색이 빨라집니다.
왜 중요한가
모수가 수백 개인 계층적 베이즈 모형도 실용적인 시간 안에 추정할 수 있게 해 준 방법입니다. Stan을 비롯한 현대 베이즈 소프트웨어의 기본 엔진이라 베이지안 분석을 쓰는 논문에서 자주 언급됩니다.
논문에서는 이렇게 쓰입니다
"사후분포는 4개 연쇄의 해밀토니안 몬테카를로로 표집하였으며 발산 전이는 관찰되지 않았다."
수치적으로 궤적이 어긋나는 문제 없이 표집이 잘 이루어졌음을 보고하는 문장입니다.
조금 더 깊게 보면
구현은 로그사후밀도의 기울기를 이용해 립프로그 적분으로 궤적을 따라간 뒤, 수치오차를 메트로폴리스 단계로 보정하는 방식입니다. 걸음 크기와 궤적 길이라는 조절값에 성능이 민감한데, NUTS 알고리즘은 궤적 길이를 자동으로 정해 이 부담을 덜어 줍니다. 발산 전이는 사후분포에 좁은 골짜기가 있다는 신호이므로 모형 재모수화의 단서로 삼고, 겔만-루빈 통계량과 유효표본크기로 수렴을 진단합니다.
주의할 점
기울기를 이용하므로 연속인 모수에만 적용할 수 있고, 이산 모수는 주변화하거나 다른 방법으로 다뤄야 합니다. 조건부분포를 차례로 뽑는 깁스 표집보다 상관이 강한 사후분포에서 훨씬 효율적인 경우가 많습니다.