그래프암 적응형 랜덤워크 메트로폴리스 그래프 모델
그래프암은 베이지안 그래프 모델을 위한 오픈소스 MCMC 툴로, Adaptive Metropolis와 Adaptive Scaling Metropolis 등 여러 적응형 랜덤워크 메트로폴리스 알고리즘을 구현한다. Lua 기반 설정 파일을 통해 계층적 조건부 분포와 블록 업데이트를 정의할 수 있으며, 다양한 버닝 전략과 지연 거부 기법을 지원한다. C 구현과 효율적인 행렬 연산 덕분에 고차원 모델에서도 빠른 샘플링이 가능하다.
저자: ** Matti Vihola **
본 논문은 베이지안 통계에서 최근 각광받고 있는 적응형 마코프 연쇄 몬테 카를로(Adaptive MCMC) 방법을 그래프 모델에 적용한 오픈소스 소프트웨어 ‘Grapham’을 소개한다. Grapham은 Random‑Walk Metropolis(RWM) 기반의 적응형 알고리즘을 여러 변형과 결합해 제공한다. 핵심 알고리즘은 (S1) 제안 생성, (S2) 메트로폴리스 수용, (S3) 파라미터 적응의 세 단계로 구성된다. (S1)에서는 현재 상태 Xₙ₋₁에 스케일 θₙ₋₁와 형태 행렬 Lₙ₋₁을 곱한 대칭 제안 분포 q₀에서 샘플 Wₙ을 뽑아 Yₙ = Xₙ₋₁ + θₙ₋₁ Lₙ₋₁ Wₙ을 만든다. (S2)에서는 수용률 αₙ = min{1, π(Yₙ)/π(Xₙ₋₁)}에 따라 Yₙ를 채택하거나 현재 상태를 유지한다. (S3)에서는 적응 메커니즘에 따라 θₙ과 Lₙ을 업데이트한다.
두 가지 주요 적응 메커니즘이 구현된다. 첫 번째는 Adaptive Metropolis(AM)로, 제안 공분산을 체인 이력의 평균 Mₙ과 공분산 Cₙ을 지수 가중 평균(ηₙ) 방식으로 추정한다. Cₙ의 Cholesky 분해 Lₙ을 이용해 제안 벡터를 생성한다. ηₙ은 일반적으로 (n+1)⁻¹ 로 감소시켜 점근적 일관성을 확보한다. 두 번째는 Adaptive Scaling Metropolis(ASCM)로, 형태 행렬 Lₙ은 고정하고 스케일 θₙ만을 수용률 αₙ에 기반해 조정한다. 기본 업데이트 식은 θₙ = θₙ₋₁ exp(ηₙ(αₙ‑α*))이며, 목표 수용률 α*는 1차원에서는 0.44, 다차원에서는 0.234로 설정한다. 두 메커니즘을 동시에 사용할 경우, 공분산 추정과 스케일 조정이 상호 보완적으로 작동한다.
Grapham은 Metropolis‑within‑Gibbs 방식을 지원해 변수들을 자유롭게 블록으로 묶어 순차적으로 업데이트할 수 있다. 사용자는 Lua 스크립트로 모델을 정의한다. 각 변수는 ‘density’ 필드에 문자열(예: "dnorm", "dstudent") 혹은 사용자 정의 Lua 함수로 조건부 밀도를 지정한다. ‘parents’ 필드로 부모 변수들을 명시해 계층적 그래프 구조를 만든다. ‘repeat_block’ 함수를 이용하면 동일 블록을 여러 번 복제해 다수의 관측치를 손쉽게 모델링한다. 제안 분포는 다변량 정규, 학생‑t, 균등, 라플라스 등 다양한 형태를 제공한다. 필요 시 C 라이브러리로 밀도와 함수형을 구현해 성능을 최적화할 수 있다.
버닝 전략은 세 가지가 있다. ‘greedy’는 전체 시뮬레이션 동안 지속적인 적응을 수행한다. ‘traditional’은 초기 버닝 구간에서 고정 제안을 사용하고, 이후에 적응을 시작한다. ‘freeze’는 버닝 구간에서만 적응하고, 그 이후에는 파라미터를 고정한다. 또한, 고정 제안과 적응 제안을 혼합하는 ‘mixing’ 옵션(p_mix)과, p_mix을 점진적으로 감소시켜 ‘gradual burn‑in’ 효과를 낼 수 있다. 지연 거부(Delayed Rejection, DR) 기법도 지원되며, 첫 번째 제안이 거부될 경우 스케일을 축소한 두 번째 제안을 수행해 전체 수용률을 향상시킨다.
소프트웨어 구현 측면에서 Grapham은 C로 핵심 연산을 구현하고, Lua를 설정 언어로 사용한다. Netlib의 Fortran 수치 서브루틴과 dSFMT 난수 생성기를 옵션으로 포함한다. 샘플은 CSV 혹은 바이너리 형식으로 저장되며, R, MATLAB, Octave 등에서 쉽게 읽을 수 있는 인터페이스를 제공한다.
성능 평가에서는 38차원 베이스볼 모델을 대상으로 30 000번(버닝 10 000번) 시뮬레이션을 수행했다. ASCM 알고리즘만을 사용했을 때 실행 시간은 약 1초였으며, 동일 설정을 R 기반 AMCMC와 비교했을 때 3.8초가 소요돼 Grapham이 약 4배 빠른 것을 확인했다. 이는 행렬 연산을 O(d²) 수준으로 제한하고, 계층적 모델 구조를 활용해 조건부 밀도 평가를 최소화한 결과이다. 또한, 지연 거부와 학생‑t 제안 분포를 적용한 변형에서도 높은 수용률(≈70%)과 정확한 추정값을 얻었다.
결론적으로 Grapham은 적응형 RWM 알고리즘을 그래프 모델에 손쉽게 적용할 수 있는 경량화된 플랫폼이다. Lua 기반의 유연한 모델 정의, 다양한 적응 전략, 블록 업데이트 및 지연 거부 지원을 통해 고차원 베이지안 네트워크와 복합 계층 모델을 효율적으로 샘플링할 수 있다. 새로운 적응형 알고리즘을 추가하거나 기존 알고리즘을 변형하는 것이 비교적 간단하므로, 연구자들이 알고리즘 성능을 실험하고 베이지안 모델링 파이프라인을 빠르게 프로토타이핑하는 데 유용하다.
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기