Gibbs 샘플링에서 전체 조건은 어디에서 제공됩니까?


15

Metropolis-Hastings 및 Gibbs 샘플링과 같은 MCMC 알고리즘은 공동 후방 분포에서 샘플링하는 방법입니다.

저는 대도시의 번거 로움을 이해하고 쉽게 구현할 수 있다고 생각합니다. 어떻게 시작점을 선택하고 사후 밀도와 제안 밀도에 따라 무작위로 '매개 변수 공간을 걷습니다'. Gibbs 샘플링은 한 번에 하나의 매개 변수 만 업데이트하고 다른 매개 변수는 일정하게 유지하여 효과적으로 직교 방식으로 공간을 걸어 가기 때문에 매우 유사하지만 더 효율적으로 보입니다.

이렇게하려면 분석 매개 변수 *의 각 매개 변수에 대한 전체 조건이 필요합니다. 그러나 이러한 완전한 조건은 어디에서 오는가? 분모를 구하려면 소 해야합니다. 관절 이상 . 많은 매개 변수가있는 경우 분석적으로 수행 해야하는 많은 작업처럼 보이며 관절 분포가 '좋은'것이 아닌 경우 다루기 어려울 수 있습니다. 모델 전체에서 활용을 사용하면 전체 조건이 쉬울 수 있지만 일반적인 상황에서는 더 나은 방법이 있어야한다는 것을 알고 있습니다.

P(x1|x2, , xn)=P(x1, , xn)P(x2, , xn)
x1

깁스 샘플링의 모든 예제 온라인에서 사용되는 장난감 예제 (조건 변수가 그냥 노멀 인 다변량 노멀에서 샘플링하는 것)를 보았고이 문제를 피하는 것 같습니다.

* 또는 분석 형태의 전체 조건이 필요합니까? winBUGS와 같은 프로그램은 어떻게 작동합니까?


1
깁스 샘플링은 일반적으로 Metropolis-Hastings 보다 효율이 떨어 집니다.
Xi'an

깁스 샘플링은 각 단계에서 더 효율적입니다,하지만해야 할 수 있습니다 끔찍한 수렴 많은 단계를 - 좋은 전반적인 결과에 대한 효율성이 끝날.
Lutz Prechelt

답변:


7

그렇습니다. 맞습니다. 조건부 분포를 분석적으로 찾아야하지만 전체 조건부 분포를 찾기 쉽고 관절 분포보다 훨씬 간단한 예가 많이 있다고 생각합니다.

이에 대한 직관은 다음과 같습니다. 대부분의 "현실적인"공동 분포 에서 대부분 의 는 일반적으로 대부분의 다른 임의 변수와 조건부에서 독립적입니다. 즉, 일부 변수는 로컬 상호 작용을 가지며 , X iX i - 1 및 에 의존 하지만 모든 것과 상호 작용하지 않으므로 조건부 분포는X i X i + 1 P r ( X i | X 1 , , X i ) = P r ( X i | X i - 1 , X i + 1 )P(X1,,Xn)XiXiXi1Xi+1Pr(Xi|X1,,Xi)=Pr(Xi|Xi1,Xi+1)


이 답변에 추가하기 위해 원래 질문에 언급 된 다른 변수를 소외 할 필요는 없습니다. 을 '재구성' 하면 결과를 알려진 pdf로 인식하고 완료됩니다. 위의 다른 모든 것 (즉, 다른 모든 상수, 분모의 정수 등)을 재구성 할 수있는 한 pdf가 1에 통합되는 데 적합한 상수와 같습니다.Pr(Xi|Xi1,Xi+1)

3
분석적으로 찾을 필요는 없습니다. 예를 들어 모든 전체 조건은 관절 분포에 비례합니다. 그리고 이것이 Metropolis-Hastings에 필요한 전부입니다.
트리스탄

1
물론 @ 트리스탄. 그러나 깁스 샘플링에 대해 이야기하고 있습니다.
gabgoh

1
깁스 샘플링을 위해 분석적으로 찾을 필요는 없습니다. 조건부에서 어떻게 든 샘플링 할 수 있어야합니다. 당신이 꽤 분석적인 진술로 이것을하는 방법을 적을 수 있는지 여부는 관련이 없습니다.
손님

1
실제로는 전체 조건을 분석 할 필요가 없습니다. Gibbs 샘플링을 구현하는 데 필요한 것은 전체 조건 을 시뮬레이션 하는 기능 뿐입니다 .
시안

11

Metropolis-Hastings와 같은 알고리즘의 주요 이점을 놓친 것 같습니다. Gibbs 샘플링의 경우 전체 조건에서 샘플링해야합니다. 당신은 옳습니다. Metropolis-Hastings 알고리즘의 주요 장점은 한 번에 하나의 매개 변수를 계속 샘플링 할 수 있지만 전체 조건을 비례까지만 알아야한다는 것입니다. 수락 기준 함수에서 분모가 취소되기 때문입니다.

정규화되지 않은 전체 조건이 종종 사용 가능합니다. 예를 들어, 귀하의 예제에서 당신이 가지고있는. 적분을 분석적으로 수행 할 필요는 없습니다. 대부분의 응용 프로그램에서는 훨씬 더 많이 취소됩니다.P(x1|x2,...,xn)P(x1,...,xn)

WinBugs / Jags와 같은 프로그램은 일반적으로 Metropolis-Hastings 또는 슬라이스 샘플링 단계를 수행하여 조건에 비례하는 조건 만 필요합니다. 이들은 DAG에서 쉽게 구할 수 있습니다. 컨쥬 게이션이 주어지면 때로는 깁스 스텝이나 멋진 블록 스톱을 사용하기도합니다.


1
고마워! 대도시 헤이스팅스에 대한 표준 상수가 필요하지 않다는 점은이 모든 것을 이해하는 데 필요한 정보라고 생각합니다. WinBUGS의 GS는 gibbs 샘플링을 의미하기 때문에 gibbs가 MH를 대체하고 소프트웨어가 gibbs를 독점적으로 사용하고 있다는 인상을 받았다고 생각합니다.
cespinoza

3
Gibbs 샘플링이라는 용어는 전체 조건부에서 직접 샘플링에 대한 원래의 아이디어를 사용하지 않더라도 한 번에 하나의 매개 변수를 샘플링 함을 의미하는 데 사용됩니다. 모든 소프트웨어는 개별 매개 변수 또는 매개 변수 블록을 순서대로 샘플링하지만 실제 단계 유형은 가장 적합한 방법에 따라 크게 다릅니다.
Tristan

2
Gibbs를 구현할 수있을 때마다 Metropolis-Hastings 대안을 구현할 수도 있습니다. 두 가지 접근 방식을 혼합하면 효율성이 높아집니다.
Xi'an

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