Skąd pochodzą pełne warunki warunkowe w próbkowaniu Gibbsa?

15

Algorytmy MCMC, takie jak próbkowanie Metropolis-Hastings i Gibbs, są sposobami próbkowania ze wspólnych rozkładów tylnych.

Wydaje mi się, że rozumiem i potrafię dość łatwo wdrożyć pospieszanie metropolii - po prostu wybierasz punkty początkowe i „chodzisz po przestrzeni parametrów” losowo, kierując się gęstością a posteriori i gęstością propozycji. Próbkowanie Gibbsa wydaje się bardzo podobne, ale bardziej wydajne, ponieważ aktualizuje tylko jeden parametr na raz, utrzymując pozostałe na stałym poziomie, skutecznie chodząc po przestrzeni w ortogonalny sposób.

Aby to zrobić, potrzebujesz pełnego warunku każdego parametru w trybie analitycznym od *. Ale skąd pochodzą te pełne warunki warunkowe? Aby uzyskać mianownik, należy zmarginalizować połączenie ponad . Wydaje się, że jest dużo pracy do wykonania analitycznego, jeśli istnieje wiele parametrów, i może nie być wykonalny, jeśli wspólny rozkład nie jest zbyt „miły”. Zdaję sobie sprawę, że jeśli używasz koniugacji w całym modelu, pełne warunki warunkowe mogą być łatwe, ale musi być lepszy sposób na bardziej ogólne sytuacje. x1

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

Wszystkie przykłady próbkowania Gibbsa, które widziałem online, wykorzystują przykłady zabawek (takie jak próbkowanie z wielowymiarowej normalnej, gdzie warunki warunkowe same w sobie są normalne) i wydają się unikać tego problemu.

* Czy w ogóle potrzebujesz pełnych warunków warunkowych w formie analitycznej? Jak to robią programy takie jak winBUGS?

cespinoza
źródło
1
Próbkowanie Gibbsa jest zwykle mniej wydajne niż Metropolis-Hastings, ponieważ idzie o jeden wymiar na raz ...
Xi'an
Gibbs próbkowania jest bardziej wydajny w każdym pojedynczym kroku, ale może potrzebować strasznie dużo więcej kroków do konwergencji - i kończy się mniej efektywne dla dobra ogólnego wyniku.
Lutz Prechelt,

Odpowiedzi:

7

Tak, masz rację, rozkład warunkowy należy znaleźć analitycznie, ale myślę, że istnieje wiele przykładów, w których pełny rozkład warunkowy jest łatwy do znalezienia i ma znacznie prostszą formę niż rozkład łączony.

Intuicji tego jest jak następuje, w większości „rzeczywiste” wspólnego rozkładów , większość z X ı „S są zazwyczaj warunkowo niezależnie od większości innych zmiennych losowych. Oznacza to, że niektóre zmienne lokalne interakcje, powiedzmy X i zależy X í - 1 i X i + 1 , ale nie oddziałuje ze wszystkim, stąd rozkłady warunkowe powinno znacznie uprościć jako P R (P.(X1,,Xn)XjaXjaXja-1Xja+1P.r(Xja|X1,,Xja)=P.r(Xja|Xja-1,Xja+1)

Gabgoh
źródło
Aby dodać do tej odpowiedzi, nie musisz marginalizować innych zmiennych, jak pierwotnie podano w pytaniu. Wystarczy „przeorganizować” , aby rozpoznać wynik jako znany plik pdf i gotowe. Tak długo, jak będziesz w stanie zreorganizować powyższe wszystko inne (tj. Wszystkie inne stałe, całka w mianowniku itp.) Będzie równa odpowiedniej stałej dla pliku pdf do zintegrowania z 1.P.r(Xja|Xja-1,Xja+1)
3
Nie trzeba ich szukać analitycznie. Wszystkie pełne warunki warunkowe są na przykład proporcjonalne do wspólnego rozkładu. I to wszystko, czego potrzebuje Metropolis-Hastings.
Tristan
1
@Tristan oczywiście. Mówię jednak o próbkowaniu Gibbsa.
gabgoh
1
Nie trzeba ich szukać analitycznie do pobierania próbek Gibbs. Musisz po prostu móc w jakiś sposób próbkować z warunkowego; to, czy możesz napisać, jak to zrobić w dość analitycznym stwierdzeniu, nie ma znaczenia.
gość
1
W rzeczywistości nie ma potrzeby stosowania pełnego warunku analitycznego: wszystko, co jest wymagane do wdrożenia próbkowania Gibbsa, to możliwość symulacji z pełnych warunków warunkowych.
Xi'an,
11

Myślę, że przegapiłeś główną zaletę algorytmów takich jak Metropolis-Hastings. W przypadku próbkowania Gibbs konieczne będzie pobranie próbek z pełnych warunków warunkowych. Masz rację, co rzadko jest łatwe do zrobienia. Główną zaletą algorytmów Metropolis-Hastings jest to, że nadal można próbkować jeden parametr na raz, ale trzeba znać tylko pełne warunki warunkowe, aż do proporcjonalności. Wynika to z faktu, że mianowniki anulują się w funkcji kryteriów akceptacji

Nienormalizowane pełne warunki warunkowe są często dostępne. Na przykład, w przykładzie , który masz. Nie musisz wykonywać żadnych całek analitycznie. W większości aplikacji wiele więcej prawdopodobnie również anuluje.P.(x1|x2),...,xn)P.(x1,...,xn)

Programy takie jak WinBugs / Jags zazwyczaj wykonują Metropolis-Hastings lub etapy próbkowania w plasterkach, które wymagają tylko warunkowych operacji do proporcjonalności. Są one łatwo dostępne w DAG. Biorąc pod uwagę koniugację, czasami wykonują proste kroki Gibbsa lub fantazyjne przystanki blokowe.

Tristan
źródło
1
Hej dzięki! Myślę, że kwestią niepotrzebowania stałej normalizacyjnej dla pośpiechu metropolii są właśnie informacje, których potrzebowałem, aby zrozumieć to wszystko. Myślę, że ponieważ GS w WinBUGS oznacza próbkowanie gibbs, miałem wrażenie, że gibbs zastąpił MH i że oprogramowanie używa wyłącznie gibbs.
cespinoza,
3
Termin próbkowanie Gibbs jest często używany do sugerowania, że ​​próbkujesz jeden parametr na raz, nawet jeśli nie używasz oryginalnej idei próbkowania bezpośrednio z pełnych warunków warunkowych. Wszystkie programy próbkują poszczególne parametry lub bloki parametrów w sekwencji, ale rzeczywisty typ kroku różni się bardzo w zależności od tego, co działa najlepiej.
Tristan
2
Niemal za każdym razem, gdy możesz wdrożyć Gibbs, możesz także wdrożyć alternatywy Metropolis-Hastings. Wyższa wydajność wynika z mieszania obu podejść.
Xi'an
To powinna być zaakceptowana odpowiedź.
NoBackingDown