Czy mogę podpróbkować duży zestaw danych przy każdej iteracji MCMC?

8

Problem: Chcę wykonać próbkowanie Gibbsa, aby wywnioskować trochę z tyłu na podstawie dużego zestawu danych. Niestety mój model nie jest bardzo prosty, dlatego próbkowanie jest zbyt wolne. Rozważałbym podejścia wariacyjne lub równoległe, ale zanim przejdę tak daleko ...

Pytanie: Chciałbym wiedzieć, czy mógłbym losowo próbować (z zastępstwem) z mojego zbioru danych przy każdej iteracji Gibbs, aby mieć mniej instancji do nauki na każdym kroku.

Moją intuicją jest to, że nawet gdybym zmienił próbki, nie zmieniłbym gęstości prawdopodobieństwa i dlatego próbka Gibbsa nie powinna zauważyć sztuczki. Czy mam rację? Czy są jakieś odniesienia do osób, które to zrobiły?

Alberto
źródło
1
Nawiasem mówiąc: innym pomysłem byłoby wykonanie wielu analiz na losowych podpróbkach dużego zestawu danych. W ten sposób możesz również zweryfikować krzyżowo.
przypuszcza
2
Nie mogę odpowiedzieć na żadne dokładne pytanie z żadnym autorytetem (chociaż podejrzewam, że po prostu zwiększysz błąd przybliżenia, który pojawia się w Monte Carlo), smutna prawda jest taka, że ​​jest to po prostu niefortunny aspekt analiz Bayesian MCMC: są obliczeniowo kosztowny. Komentarz @conjectures to świetny pomysł, ale tak naprawdę nie stanowi sedna problemu: wyciągnięcie wszystkich próbek dla każdej osoby jest zbyt drogie. Radzę napisać własny kod C do ciężkiej pracy (Rcpp w R, Cython w Python itp.), A także równolegle (gdy nie ma zależności od gałęzi).
1
@conjectures To brzmi jak worek małych butów Michaela Jordana.
jaradniemi
1
Sugerowałbym zmianę twojego samplera, aby całkowicie uniknąć ukrytego rozszerzenia zmiennej. Nie będziesz już miał samplera Gibbsa, ale algorytm Metropolis-Hastings z propozycją opartą na normalnym przybliżeniu prawdopodobieństwa powinien działać dobrze. Patrz sekcja 16.4 2. wydania analizy danych bayesowskich.
jaradniemi
6
Jest to obszar aktywnych badań, których nie znam na tyle dobrze, aby dokładnie dla was podsumować. Patrz na przykład jmlr.org/proceedings/papers/v32/bardenet14.pdf i arxiv.org/pdf/1304.5299v4.pdf
Andrew M oceniają

Odpowiedzi:

1

O strategiach podpróbkowania: na przykład rozważmy dwie obserwacje i i rozważmy niektórym priorytetom znaczenia i zmienność. Niech , a następnie chcemy ocenić to COnsider teraz zmienna dwumianowa . Jeśli wybraliśmy , jeśli wybraliśmy , nowy tylny to gdzieX1N(μ1,σ12)X2N(μ2,σ22)θ=(μ1,μ2,σ12,σ22)

f(θ|X1,X2)f(X1|θ)f(X2|θ)f(θ)
δB(0.5)δ=0X1δ=1X2
f(θ,δ|X1,X2)f(X1,X2|δ,θ)f(θ)f(δ)
f(X1,X2|δ,θ)=f(X1|θ)δf(X2|θ)1δ i . Teraz, jeśli chcesz próbki z etapu Gibbs trzeba, aby obliczyć i bo . Jeśli w przeciwnym razie użyjesz Metropolis Hastings, to zaproponujesz nowy stan i musisz obliczyć tylko jeden między i , ten związany z proponowanymi stanami, ale ty trzeba obliczyć jeden między if(δ)=0.5δf(X1|θ)f(X2|θ)P(δ=1)=f(X1|θ)f(X1|θ)+f(X2|θ)δf(X1|θ)f(X2|θ)f(X1|θ)f(X2|θ)nawet dla ostatniego zaakceptowanego stanu . Nie jestem więc pewien, czy metropolia da ci jakąś przewagę. Ponadto rozważamy tutaj proces dwuwariantowy, ale w przypadku procesu wielowymiarowego próbkowanie może być bardzo skomplikowane w przypadku metropolii.δδ
niandra82
źródło