koszt próbkowania w wysokości


9

Natknąłem się na następujący problem z symulacją: biorąc pod uwagę zestaw {ω1,,ωd} znanych liczb rzeczywistych, rozkład na {1,1}d jest zdefiniowany przez

P(X=(x1,,xd))(x1ω1++xdωd)+
gdzie (z)+ oznacza pozytywną część z. Chociaż mogę wymyślić próbnik Metropolis-Hastings ukierunkowany na ten rozkład, zastanawiam się, czy istnieje skuteczny próbnik bezpośredni, wykorzystujący dużą liczbę zerowych prawdopodobieństw w celu zmniejszenia kolejności algorytmu odO(2d) do O(d).

Odpowiedzi:


4

Oto dość oczywisty rekurencyjny sampler O(d) w najlepszym przypadku (pod względem ciężaru ωi), ale w najgorszym przypadku ma charakter wykładniczy.

Załóżmy, że już wybraliśmy x1,,xi1i chcesz wybrać xi. Musimy obliczyć

w(x1,,xi1,xi)=xi+1{1,1}xd{1,1}(j=1dωjxj)+
i wybierz xi=1 z prawdopodobieństwem
w(x1,,xi1,1)w(x1,,xi1,1)+w(x1,,xi1,1).
Mianownik będzie niezerowy dla każdego ważnego wyboru próbek x1,,xi1.

Teraz oczywiście chodzi o to, jak obliczyć w(x1,,xi).

Jeśli mamy to C:=j=1iωjxjj=i+1d|ωj|, następnie ωx0 dla każdego x z wiodącymi wpisami x1:i, a więc w staje się:

xi+1xdωx=ω(xi+1xdx)=j=1iωj(xi+1xdxj)2dixj+j=i+1dωj(xi+1xdxj)0=2diC.

W przeciwnym wypadku Cj=i+1d|ωj|mamy to ωx0 a więc w(x1,,xi)=0.

W przeciwnym razie musimy powtórzyć, używając w(x1,,xi)=w(x1,,xi,1)+w(x1,,xi,1).

Załóżmy, że pamięć nie stanowi problemu i że możemy buforować wszystkie podliczenia w(1), w(1)w drzewie - do tego stopnia, że ​​trafiliśmy w jeden z „ładnych” przypadków, po których wszelkie połączenia wymagają stałego czasu. (Będziemy musieli obliczyć to całe drzewo, aby wybraćx1.) Potem, kiedy to drzewo w obliczenia są zbudowane, sampler zajmie tylko O(d)czas. Pytanie brzmi, ile czasu zajmuje zbudowanie drzewa, lub równoważnie, jak duże jest ono.


Oczywiście trafimy w „ładne” przypadki, jeśli ωi są posortowane, ω1ω2ωd.

W najlepszym przypadku, |ω1|>j=2d|ωj|. Następnie natychmiast trafiliśmy w „fajną” skrzynkęw(1) lub w(1), więc w budowa drzewa zajmuje cały czas, a cały sampler zajmuje O(d) czas.

W najgorszym (posortowanym) przypadku ω1=ω2==ωd. Zatem pytanie brzmi: jak duże jest całe drzewo?

Cóż, pierwsze ścieżki do zakończenia są oczywiście (1,1,,1) i (1,1,,1) długości d/2. Drzewo jest zatem kompletne do tej głębokości, a zatem zawiera co najmniejO(2d/2)węzły (Ma więcej; prawdopodobnie można go znaleźć za pomocą argumentu takiego jak te używane w problemach z ruiną hazardzisty, ale nie mogłem go znaleźć w ciągu dwóch minut Googlinga i nie obchodzi mnie to szczególnie - 2d/2 jest wystarczająco zły ....)

Jeśli twoje ustawienie ma tylko kilka bardzo dużych ωi, jest to prawdopodobnie dość praktyczne podejście. Jeśli…ωi są podobnej wielkości, prawdopodobnie nadal są wykładnicze i zbyt drogie dla dużych d.


Dzięki za ten typ eliminacji Viterbi. Kiedy piszesz „W przeciwnym przypadku”,
Cij=i+1d|ωj|
Rozumiem, że nie masz na myśli dopełnienia pierwszego przypadku
Cij=i+1d|ωj|
Xi'an

1
Nie, nie uzupełnienie: gdy jest bardzo duże, wiesz, że obcięcie nie jest stosowane, gdy jest bardzo małe, zawsze jest stosowane, a pomiędzy nimi musisz się powtórzyć, aby dowiedzieć się, kiedy jest ono stosowane, czy nie.
Dougal,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.