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,…,xi−1i chcesz wybrać xi. Musimy obliczyć

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

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

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

∑xi+1⋯∑xdω⋅x=ω⋅(∑xi+1⋯∑xdx)=∑j=1iωj(∑xi+1⋯∑xdxj)⏟2d−ixj+∑j=i+1dωj(∑xi+1⋯∑xdxj)⏟0=2d−iC.

W przeciwnym wypadku C≤−∑j=i+1d|ωj|mamy to ω⋅x≤0 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”,
Ci≤−∑j=i+1d|ωj|
Rozumiem, że nie masz na myśli dopełnienia pierwszego przypadku
Ci≥∑j=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.