사람들이 베이지안 추론에 사용하는 교재 MCMC 알고리즘에 비해 잘 알려진 개선 사항은 무엇입니까?


21

일부 문제에 대해 Monte Carlo 시뮬레이션을 코딩 할 때 모델이 충분히 단순 할 때 매우 기본적인 교과서 Gibbs 샘플링을 사용합니다. Gibbs 샘플링을 사용할 수없는 경우 몇 년 전에 배운 교과서 Metropolis-Hastings를 코딩합니다. 내가 그것에 대한 유일한 생각은 점프 분포 또는 매개 변수를 선택하는 것입니다.

교과서 옵션보다 수백, 수백 가지의 특수한 방법이 있다는 것을 알고 있지만 일반적으로 사용 / 학습에 대해서는 생각하지 않습니다. 일반적으로 이미 잘 작동하고있는 것을 약간 개선하기 위해 너무 많은 노력을 기울이고있는 것 같습니다.

그러나 최근에 나는 내가하고있는 일을 개선 할 수있는 새로운 일반적인 방법이 없을지 생각하고있다. 이러한 방법이 발견 된 지 수십 년이 지났습니다. 어쩌면 나는 정말 구식입니다!

Metropolis-Hastings에 대해 잘 알려진 대안이 있습니까?

  • 구현하기가 쉽기 때문에
  • MH만큼 보편적으로 적용 가능한
  • 어떤 의미 (계산 성능, 정확성 등)에서 항상 MH의 결과를 개선합니까?

나는 매우 전문화 된 모델에 대한 매우 전문화 된 개선 사항에 대해 알고 있지만 모두가 사용하지 않는 일반적인 것들이 있습니까?


1
Markov chain Monte Carlo을 의미합니까? 내가 생각할 수있는 Monte Carlo 시뮬레이션의 교과서 개선에는 준 몬테 카를로뿐만 아니라 반 추적 및 / 또는 계층화 된 샘플링이 포함됩니다. 그러나 Gibbs와 Metropolis-Hastings에 대한 언급은 베이지안 컴퓨팅을 나타냅니다.
StasK

@StasK, 예, 나는 주로 베이지안 모델과 통계 물리 모델에 관심이 있습니다 (깁스와 같은 분포에 대한 베이지안 추론 p (x) = 1 / Z exp (-E (x) / T)). 언급하지 못해서 죄송합니다.
Rafael S. Calsaverini

3
(+1) 좋아, "최근에"게시되었고 이미 R로 구현 된 훌륭한 범용 적응 알고리즘, Python 및 Matlab은 twalk 입니다. 잘 작동하지만 항상 다른 방법을 사용하여 다시 확인하는 것이 좋습니다. BTW, MH는 mcmc R 패키지에 구현되어 있습니다. 물론 많은 다른 것들이 있지만 대부분은이 수준의 일반성으로 구현되지 않았거나 구현하기가 어렵습니다. 요즘 또 다른 인기있는 지역은 Sequential Monte Carlo입니다. 이게 도움이 되길 바란다.

2
이미 알고 있을지 모르지만 슬라이스 샘플링은 구현하기가 쉽고 일반적인 "랜덤 워크"메트로폴리스 알고리즘의 함정을 피합니다. 전통적인 메트로폴리스 알고리즘의 문제점은 랜덤 워크 유형 동작입니다. 좋은 상태로 의도적으로 움직이기보다는, 우연히 돌아와서 좋은 지역으로 천천히 움직입니다. 이것은 HMC와 같이 그라디언트에서 정보를 사용하는 방법의 동기이지만 슬라이스 샘플링도이 캠프에 속하며 더 자동적입니다.
guy

1
나는 ABC에 대해 거의 아무것도 모르지만, 누군가가 ABC와 MCMC 방법의 차이점에 대해 조금 설명 할 수 있다면 기쁠 것입니다 ...
Manoel Galdino

답변:


20

나는 이것들 중 어느 것도 전문가가 아니지만, 공동체가 어떻게 생각하는지보기 위해 그것들을 어쨌든 내놓을 것이라고 생각했다. 정정을 환영합니다.

구현하기가 매우 간단하지 않은 점점 인기있는 방법 중 하나는 Hamiltonian Monte Carlo (또는 Hybrid Hybrid Carlo)라고합니다. 이 논문 은 Radford Neal의 논문 에서 설명 된 바와 같이 전위 및 운동 에너지가있는 물리적 모델을 사용하여 매개 변수 공간을 중심으로 구르는 공을 시뮬레이션합니다 . 실제 모델은 상당한 양의 계산 리소스를 필요로하므로 업데이트 횟수가 줄어들지 만 업데이트의 상관 관계는 줄어 듭니다. HMC는 통계 모델링을 위해 BUGS 또는 JAGS에 대한보다 효율적이고 유연한 대안으로 개발되고 있는 새로운 STAN 소프트웨어 의 엔진 입니다.

Markov 체인을 "가열"하는 방법의 전체 군집도 있습니다.이 방법은 모델에 열 노이즈를 도입하고 확률이 낮은 상태를 샘플링 할 가능성을 높이는 것으로 생각할 수 있습니다. 언뜻보기에는 모델이 사후 확률에 비례하여 샘플링되기를 원하기 때문에 나쁜 생각처럼 보입니다. 그러나 실제로 체인 믹스를 개선하기 위해 "핫"상태 만 사용하게됩니다. 실제 샘플은 체인이 "정상"온도 일 때만 수집됩니다. 올바르게 수행하면 가열 체인을 사용하여 모드에서 모드로의 전환을 차단하는 낮은 확률의 큰 계곡으로 인해 일반 체인이 도달 할 수없는 모드를 찾을 수 있습니다. 이러한 방법의 몇 가지 예에는 Metropolis-coupled MCMC ,, 병렬 템퍼링어닐링 된 중요도 샘플링 .

마지막으로 거부율이 너무 높아 다른 방법이 모두 실패 할 경우 순차적 인 Monte Carlo 또는 입자 필터링을 사용할 수 있습니다. 나는이 방법에 대해 가장 잘 알지 못하므로 여기에 대한 설명이 잘못되었을 수도 있지만 이해는 그것이 이와 같이 작동한다는 것입니다. 거부 가능성은 본질적으로 하나이지만 좋아하는 샘플러를 실행하여 시작합니다. 모든 샘플을 거부하는 대신 가장 불쾌한 샘플을 선택하고 거기에서 새 샘플러를 초기화하여 실제로 수락 할 수있는 샘플을 찾을 때까지 프로세스를 반복하십시오. 그런 다음 임의의 위치에서 샘플러를 초기화하지 않았기 때문에 샘플이 무작위가 아니었다는 사실로 되돌아 가서 수정하십시오.

이것이 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.