리만 다양체 몬테카를로

편집 역사 토론
통계 수치해석 계산물리 마지막 수정: 2026-08-14 04:46:52

1. 개요[편집]

리만 다양체 몬테카를로
Riemann Manifold Monte Carlo
약칭RMHMC · MMALA
원 논문Girolami & Calderhead (2011), JRSS-B 토론논문
핵심 아이디어질량행렬을 위치의 함수 G(θ)로
계량 후보기대 피셔 정보 + 사전분포 곡률, SoftAbs
적분기일반화 립프로그 (음함수, 부동점 반복)
스텝당 비용O(d³) 이상 + 계량 미분
이기는 곳깔때기·강한 곡률, 차원은 중간 이하

리만 다양체 몬테카를로해밀토니안 몬테카를로(HMC)와 랑주뱅 계열 표본추출기의 고정된 질량행렬을 위치에 따라 변하는 계량 G(θ)G(\theta) 로 바꾼 MCMC 방법군이다. 모수 공간을 평평한 유클리드 공간이 아니라 곡률이 있는 리만 다양체로 보고, 그 위에서 역학을 굴린다. 지롤라미와 캘더헤드가 2011년 왕립통계학회 토론논문으로 발표하며 정착했다.

동기는 HMC를 써 본 사람이면 다 겪는 좌절이다. HMC의 질량행렬 MM 은 사실상 전처리기라, M1ΣM^{-1}\approx\Sigma 로 잡으면 상관과 스케일 차이를 지워 준다. 문제는 MM 이 상수라는 것. 사후분포의 국소 기하가 위치마다 다르면 — 어떤 영역은 폭이 10310^{-3}, 다른 영역은 10210^{2} — 전역 하나로는 어느 쪽도 못 맞춘다. 좁은 데 맞추면 넓은 곳을 기어 다니고, 넓은 데 맞추면 좁은 곳에서 발산한다. 답은 뻔하다. 전처리기를 국소적으로 바꾸자.

같은 발상이 최적화 쪽에 나타난 것이 자연경사법이고, 그 근거인 “피셔 정보가 분포 공간의 자연스러운 계량”이라는 주장은 정보 기하가 다룬다. 이 문서는 그 계량을 표본추출기에 넣었을 때 새로 생기는 문제들 — 해밀토니안에 왜 logdetG\log\det G 항이 붙는지, 적분기가 왜 음함수가 되는지, 그 대가가 얼마인지 — 을 다룬다.

2. 리만 해밀토니안과 logdetG\log\det G[편집]

운동량을 위치에 의존하는 정규분포 pθN(0,G(θ))p \mid \theta \sim \mathcal{N}(0, G(\theta)) 에서 뽑는다고 하자. 결합밀도가 주변화되어 목표 π(θ)\pi(\theta) 를 남기려면 그 정규분포의 정규화 상수까지 해밀토니안에 넣어야 한다. 그래서

H(θ,p)=logπ(θ)+12logdetG(θ)퍼텐셜+12pG(θ)1pH(\theta,p) = \underbrace{-\log\pi(\theta) + \tfrac{1}{2}\log\det G(\theta)}_{\text{퍼텐셜}} + \tfrac{1}{2}p^\top G(\theta)^{-1}p

가 된다. 12logdetG\tfrac12\log\det G 항이 장식이 아니다. 이걸 빼면 θ\theta 에 대한 주변분포가 π(θ)(detG)1/2\pi(\theta)\,(\det G)^{-1/2} 로 틀어져, 곡률이 큰 영역에 표본이 잘못 몰린다. 기하학적으로는 리만 다양체 위의 부피 원소 detGdθ\sqrt{\det G}\,d\theta 로 자연스럽게 읽히며, 그래서 제프리스 사전분포와 같은 양이 정반대 부호로 등장한다. 저쪽은 부피 원소를 사전분포로 삼고, 이쪽은 그 부피 원소를 상쇄해 원래 목표를 지킨다.

GG 가 상수면 logdetG\log\det G 도 상수가 되어 사라지고, 정확히 표준 HMC로 돌아온다. RMHMC는 HMC의 일반화이지 다른 알고리즘이 아니다.

3. 왜 적분기가 음함수가 되는가[편집]

표준 HMC의 립프로그가 명시적으로 굴러가는 이유는 H(q,p)=U(q)+K(p)H(q,p) = U(q) + K(p)분리 가능(separable)하기 때문이다. 운동량 갱신에 U(q)\nabla U(q) 만 필요하고 위치 갱신에 K(p)\nabla K(p) 만 필요하니 서로를 기다릴 일이 없다.

리만 버전에서는 운동에너지가 12pG(θ)1p\tfrac12 p^\top G(\theta)^{-1}pθ\thetapp 가 얽힌다. 운동량 방정식에

Hθi=ilogπ+12tr ⁣(G1iG)12pG1(iG)G1p\frac{\partial H}{\partial\theta_i} = -\partial_i\log\pi + \tfrac{1}{2}\operatorname{tr}\!\left(G^{-1}\partial_i G\right) - \tfrac{1}{2}p^\top G^{-1}(\partial_i G)G^{-1}p

처럼 pp 가 이차로 들어오므로 갱신식이 자기 자신을 참조한다. 그래서 심플렉틱성과 가역성을 지키려면 일반화 립프로그(generalized leapfrog)를 쓴다.

p(1)=ptϵ2θH(θt,p(1))θt+ϵ=θt+ϵ2[pH(θt,p(1))+pH(θt+ϵ,p(1))]pt+ϵ=p(1)ϵ2θH(θt+ϵ,p(1))\begin{aligned} p^{(1)} &= p_t - \tfrac{\epsilon}{2}\nabla_\theta H(\theta_t, p^{(1)}) \\ \theta_{t+\epsilon} &= \theta_t + \tfrac{\epsilon}{2}\bigl[\nabla_p H(\theta_t,p^{(1)}) + \nabla_p H(\theta_{t+\epsilon},p^{(1)})\bigr] \\ p_{t+\epsilon} &= p^{(1)} - \tfrac{\epsilon}{2}\nabla_\theta H(\theta_{t+\epsilon},p^{(1)}) \end{aligned}

앞의 두 식이 각각 p(1)p^{(1)}θt+ϵ\theta_{t+\epsilon} 에 대한 음함수이고, 실제로는 부동점 반복으로 푼다. 보통 5~10회면 수렴하지만 그만큼 GG, G1G^{-1}, G\partial G 를 다시 계산해야 한다.

여기에 실무자가 잘 모르는 미세한 함정이 하나 있다. 이 도식은 부동점 반복이 정확히 수렴했을 때만 가역적이다. 유한한 허용오차로 끊으면 역방향 궤적이 출발점으로 정확히 돌아오지 않고, 엄밀히는 상세균형이 깨진다. 실무에서는 허용오차를 기계정밀도 가까이 조여 무시하지만, 원리적으로는 심플렉틱 적분기의 공짜 야코비안이라는 HMC의 미덕이 여기서 살짝 유료화된 셈이다.1

4. 계량을 무엇으로 잡을 것인가[편집]

계량 선택이 이 방법의 전부라고 해도 과언이 아니다. 조건은 세 가지 — 양정부호여야 하고, 국소 곡률을 실제로 반영해야 하며, iG\partial_i G 까지 계산 가능해야 한다.

  • 기대 피셔 정보 + 사전분포 곡률. 지롤라미-캘더헤드의 기본 제안으로, G(θ)=Ey[2logp(yθ)]2logp(θ)G(\theta) = \mathbb{E}_{y}\bigl[-\nabla^2\log p(y\mid\theta)\bigr] - \nabla^2\log p(\theta) 다. 기대 정보는 정의상 준정부호라 양정부호성이 거의 공짜이고, 일반화 선형 모형처럼 닫힌 형태가 있는 모형에서는 값도 싸다. 대신 자료에 대한 기댓값이 필요하다는 것이 치명적 제약이라, 잠재변수가 있는 계층 모형이나 임의의 사후분포에는 쓸 수 없는 경우가 많다.
  • 관측 헤세는 그냥 못 쓴다. 2logπ-\nabla^2\log\pi 는 봉우리에서 멀면 부정부호가 되어 계량 자격을 잃는다. 절댓값을 씌우면 고유값이 0을 지날 때 미분 불가능해지고, iG\partial_i G 가 필요한 이 알고리즘에서는 그것만으로 실격이다.
  • SoftAbs 계량(베탕쿠르 2013). 헤세를 고유값 분해해 각 고유값을 λλcoth(αλ)\lambda \mapsto \lambda\coth(\alpha\lambda) 로 매끄럽게 바꾼다. λ|\lambda| 가 크면 λ|\lambda| 에 수렴하고 λ0\lambda\to0 에서는 1/α1/\alpha 로 유계라, 부정부호와 특이성을 동시에 매끄럽게 해결한다. 대신 스텝마다 고유값 분해가 필요하고, G\partial G 를 얻으려면 logπ\log\pi3차 미분이 필요하다. 자동 미분 없이는 시도할 생각도 하기 어렵다.

계량이 나쁘면 결과는 두 방향으로 나빠진다. GG조건수가 크면 스텝 크기가 여전히 가장 좁은 방향에 묶여 있고, GG 가 위치에 따라 급격히 변하면 부동점 반복이 수렴하지 않거나 에너지 오차가 튄다. “계량만 잘 잡으면 만사형통”이 아니라, 계량 잡는 일이 원래 문제만큼 어렵다는 것이 이 방법의 실상이다.

5. 리만 MALA[편집]

같은 아이디어를 랑주뱅 동역학 제안에 적용한 것이 리만 MALA(MMALA)다. 유클리드 MALA의 제안은

θN ⁣(θ+ϵ22logπ(θ),  ϵ2I)\theta^* \sim \mathcal{N}\!\left(\theta + \tfrac{\epsilon^2}{2}\nabla\log\pi(\theta),\; \epsilon^2 I\right)

인데, 리만 버전은 표류항에 G1G^{-1} 을 곱하고 공분산을 ϵ2G1\epsilon^2 G^{-1} 로 바꾼 뒤, 다양체 위 확산의 생성원(라플라스-벨트라미)에서 나오는 곡률 보정항 — 크리스토펠 기호에 해당하는 G\partial G 항들 — 을 더한다. 이 보정항을 그냥 버린 것이 단순화 MMALA(simplified MMALA)이고, 실제 구현의 절대다수가 이쪽이다. 제안분포가 조금 틀려도 메트로폴리스-헤이스팅스 수락 단계가 정확성을 보장하므로 틀린 제안이 아니라 덜 좋은 제안일 뿐이라, 계산을 아끼는 쪽이 대체로 이긴다.

MMALA는 궤적이 한 스텝뿐이라 음함수 적분기가 필요 없고 구현이 훨씬 간단하다. 대신 HMC 대비 무작위걷기 성격이 남아 고차원 스케일링이 나쁘다. “계량은 쓰고 싶은데 일반화 립프로그는 못 짜겠다” 는 상황의 현실적 타협점으로 보면 된다.

6. 언제 이기고 언제 지는가[편집]

전형적인 승리 사례는 깔때기(funnel)다. 닐의 깔때기 vN(0,32)v\sim\mathcal{N}(0,3^2), xivN(0,ev)x_i\mid v\sim\mathcal{N}(0,e^{v}) 에서 xx 의 폭은 vv 에 따라 지수적으로 변한다. 상수 질량행렬로는 목 부분에 못 들어가거나 들어가서 발산하고, HMC의 발산 전이가 목 근처에 몰려 찍히는 것이 이 때문이다. GGvv 를 따라 자동으로 축척을 바꿔 주면 목과 입구를 같은 스텝 크기로 훑을 수 있다. 로그-가우시안 콕스 과정처럼 잠재장의 차원이 수백이고 상관이 극심한 모형에서도 원논문이 유효표본 대비 시간에서 큰 이득을 보고했다.

그럼에도 RMHMC가 표준 도구가 되지 못한 이유는 냉정하게 계산해 보면 나온다.

  • 스텝당 비용. GG 조립, 촐레스키 분해 O(d3)O(d^3), 그리고 iG\partial_i Gi=1,,di=1,\dots,d 에 대해 전부 구하면 소박한 구현에서 O(d4)O(d^4) 다. 여기에 부동점 반복 배수와 궤적 길이 LL 이 곱해진다. 차원이 수십을 넘어가면 스텝 하나가 HMC 수백 스텝 값이 된다.
  • 더 싼 경쟁자가 있다. 깔때기의 표준 처방은 비중심 재매개변수화(xi=ev/2zix_i = e^{v/2}z_i, ziN(0,1)z_i\sim\mathcal{N}(0,1))이고, 이건 공짜다. 손으로 좌표를 바꿔 기하를 펼 수 있으면 그렇게 하는 것이 언제나 낫다. RMHMC가 값을 하는 곳은 재매개변수화가 불가능하거나 기하가 자료에 따라 달라지는 경우다.
  • 적응 HMC가 많이 따라잡았다. NUTS + 조밀 질량행렬 적응은 전역 상관 정도는 알아서 처리한다. 남는 것은 진짜 국소적으로 기하가 변하는 문제뿐인데, 그 부분집합이 생각보다 작다. 주류 확률 프로그래밍 도구들이 RMHMC를 기본 엔진으로 넣지 않은 이유가 이것이다.2
  • 자동 미분 요구가 한 단계 높다. HMC는 1차 미분이면 되지만 RMHMC는 2차(계량) + 3차(계량의 미분)가 필요하다. 미분 불가능한 솔버가 하나만 끼어 있어도 곧장 막히고, 자동 미분이 되더라도 3차 미분의 메모리·시간 비용이 만만치 않다.

정리하면 RMHMC는 “차원은 중간 이하인데 기하가 진짜로 병적이고, 좌표변환으로는 못 펴며, 표본 하나가 비싼” 좁은 구간에서 압도적이고 그 밖에서는 과잉이다. 그래도 이 방법이 남긴 개념적 기여는 그 구간보다 훨씬 넓다. 표본추출기의 성능이 알고리즘이 아니라 목표분포의 기하에 달려 있다는 관점, 그리고 발산 전이·비중심 재매개변수화·조밀 질량행렬 같은 오늘날의 실무 상식이 전부 이 관점 위에 서 있다. 최적화에서 F1F^{-1} 을 근사하는 역사가 자연경사법의 전부였던 것처럼, 표본추출에서도 결국 문제는 계량과 그 역행렬이다.34

7. 관련 문서[편집]

8. Footnotes[편집]

  1. 그래서 논문 구현들이 허용오차를 10810^{-8} 이니 101010^{-10} 이니 하는 값으로 잡아 둔다. 성능을 위해 10410^{-4} 로 풀어 놓고 “수렴 안 하는 것 같은데 결과는 그럴듯하다”는 상태로 가는 것이 이 알고리즘의 대표적 자폭 경로다. 편향이 생겨도 트레이스 플롯에는 안 보인다.

  2. 2011년 토론논문의 토론 분량이 본문만큼 길었던 것으로도 유명한데, 상당 부분이 “비용 대비 이득”에 관한 것이었다. 15년쯤 지나 답이 나온 셈이다 — 아이디어는 옳았고, 기본값이 되기에는 비쌌다.

  3. 스텝 크기를 목표 수락률에 맞춰 조율하는 이중 평균법은 RMHMC에도 그대로 얹을 수 있다. 다만 계량이 이미 국소 축척을 맡고 있으므로 이론상 최적 수락률이 유클리드 HMC의 값과 같다고 볼 근거는 없고, 실무에서는 0.7~0.9쯤을 목표로 잡는 구현이 많다.

  4. 이름에 “리만”이 들어가지만 실제로 필요한 리만 기하학 지식은 놀랍도록 적다. 계량, 부피 원소, 크리스토펠 기호까지만 알면 논문을 읽을 수 있다. 물론 그 세 개를 코드로 옮기는 순간 3차 미분 지옥이 열리므로, 이론이 쉽다는 말이 구현이 쉽다는 말은 아니다.