Jak próbkować z dyskretnego (kategorycznego) rozkładu w przestrzeni dziennika?

12

Załóżmy, że mam rozkład dyskretny zdefiniowany przez wektor tak, że kategoria zostanie narysowana z prawdopodobieństwem i tak dalej. Następnie odkrywam, że niektóre wartości w rozkładzie są tak małe, że nie odpowiadają one liczbom zmiennoprzecinkowym mojego komputera, więc aby to zrekompensować, wykonuję wszystkie obliczenia w przestrzeni dziennika. Teraz mam dziennik wektorowy log-space .θ0,θ1,...,θN0θ0log(θ0),log(θ1),...,log(θN)

Czy możliwe jest próbkowanie z rozkładu w taki sposób, aby się pierwotne prawdopodobieństwa (kategoria jest rysowana z prawdopodobieństwem ), ale bez opuszczania przestrzeni logów? Innymi słowy, jak mogę próbkować z tej dystrybucji bez niedomiarów?iθi

Josh Hansen
źródło

Odpowiedzi:

15

Możliwe jest próbkowanie z rozkładu kategorycznego przy określonych prawdopodobieństwach logów bez opuszczania przestrzeni logów przy użyciu sztuczki Gumbela-maxa . Chodzi o to, że jeśli otrzymujesz nietypowe prawdopodobieństwa dziennika , które można przełożyć na odpowiednie prawdopodobieństwa za pomocą funkcji softmaxα1,,αk

pi=exp(αi)jexp(αj)

następnie do próbki z takiego rozkładu można użyć faktu, że jeśli są niezależnymi próbkami pobranymi ze standardowego rozkładu Gumbela sparametryzowanego przez lokalizację ,g1,,gkG(0)m

F(Gg)=exp(exp(g+m))

wtedy można to wykazać (patrz odnośniki poniżej), że

argmaxi{gi+αi}exp(αi)jexp(αj)maxi{gi+αi}G(logiexp{αi})

i możemy wziąć

z=argmaxi{gi+αi}

jako próbka z rozkładu kategorycznego sparametryzowanego prawdopodobieństwem . To podejście zostało bardziej szczegółowo opisane we wpisach na blogu przez Ryana Adamsa i Laurenta Dinha , a ponadto Chris J. Maddison, Daniel Tarlow i Tom Minka wygłosili przemówienie ( slajdy ) na konferencji Neural Information Processing Systems (2014) i napisali artykuł zatytułowany A * Pobieranie próbek, które uogólniły te idee (patrz także Maddison, 2016; Maddison, Mnih and Teh, 2016; Jang i Poole, 2016), którzy odnoszą się do Yellott (1977), wymieniając jego jako jednego z tych, którzy jako pierwsi opisali tę właściwość.p1,,pk

Całkiem łatwo go zaimplementować przy użyciu odwrotnego próbkowania transformacji , biorąc gdzie czerpie z rozkładu równomiernego na . Z pewnością nie jest to najbardziej efektywny czasowo algorytm do próbkowania z rozkładu kategorycznego, ale pozwala ci pozostać w przestrzeni logów, co może być zaletą w niektórych scenariuszach.gi=log(logui)ui(0,1)


Maddison, CJ, Tarlow, D., i Minka, T. (2014). A * pobieranie próbek. [W:] Postępy w systemach przetwarzania informacji neuronowych (str. 3086-3094).

Yellott, JI (1977). Zależność między aksjomatem wyboru Luce, teorią sądu porównawczego Thurstone'a i podwójnym rozkładem wykładniczym. Journal of Mathematical Psychology, 15 (2), 109-144.

Maddison, CJ, Mnih, A., i Teh, YW (2016). Konkretny rozkład: ciągła relaksacja dyskretnych zmiennych losowych. nadruk arXiv arXiv: 1611.00712.

Jang, E., Gu, S. i Poole, B. (2016). Kategoryczna ponowna parametryzacja za pomocą Gumbel-Softmax. nadruk arXiv arXiv: 1611.01144.

Maddison, CJ (2016). Model procesu Poissona dla Monte Carlo. nadruk arXiv arXiv: 1602.05986.

Tim
źródło
5

Oto jeden z powszechnych sposobów uniknięcia niedopełnienia / przepełnienia.

Niech .m=maxilog(θi)

Niech .θi=exp(log(θi)m)

Możesz próbkować z .θ=[θ1,θ2,...]

Siddharth Gopal
źródło
1
Działa to tak długo, jak różnica między dowolną wartością a wartością maksymalną nie jest zbyt duża --- kiedy tak się dzieje, expmoże stracić precyzję, co prowadzi do dystrybucji takich jak [1.0, 3.45e-66, 0.0, 7.54e-121] . Chciałbym znaleźć odpowiedź, która jest solidna nawet w takim przypadku. Ale na razie oceniam twoją odpowiedź.
Josh Hansen