Testy wydajności dla MCMC


14

Czy przeprowadzono badania na dużą skalę metod MCMC, które porównują wydajność kilku różnych algorytmów w zestawie gęstości testowych? Mam na myśli coś równoważnego z tekstem Riosa i Sahinidisa (2013), który jest dokładnym porównaniem dużej liczby optymalizatorów czarnej skrzynki bez pochodnych na kilku klasach funkcji testowych.

W przypadku MCMC wydajność można oszacować np. W efektywnej liczbie próbek (ESS) na ocenę gęstości lub w innym odpowiednim mierniku.

Kilka komentarzy:

  • Doceniam, że wydajność będzie silnie zależeć od szczegółów docelowego pliku pdf, ale podobny (prawdopodobnie nie identyczny) argument ma na celu optymalizację, a mimo to istnieje mnóstwo funkcji testów porównawczych, pakietów, konkursów, dokumentów itp., Które dotyczą optymalizacji testów porównawczych algorytmy.

  • Prawdą jest również, że MCMC różni się od optymalizacji tym, że użytkownik wymaga znacznie więcej uwagi i strojenia. Niemniej jednak istnieje obecnie kilka metod MCMC, które wymagają niewielkiego lub żadnego strojenia: metody, które dostosowują się w fazie wypalania, podczas próbkowania lub metody wielostanowe (zwane także zestawem ) (takie jak Emcee ), które ewoluują i wchodzą w interakcje z wieloma łańcuchami informacje z innych łańcuchów, które pomogą w pobieraniu próbek.

  • Szczególnie interesuje mnie porównanie metod standardowych i wielostanowych (aka ensemble). Definicja stanu wielostanowego znajduje się w rozdziale 30.6 książki MacKay :

x

  • To pytanie pochodzi stąd .

Aktualizacja

  • Aby zapoznać się z interesującym podejściem do wielostanowych metod aka ensemble, zobacz ten post na blogu Boba Carpentera na blogu Gelmana i mój komentarz odnoszący się do tego postu CV.

Odpowiedzi:


5

Po kilku poszukiwaniach online odniosłem wrażenie, że nie istnieje kompleksowy test porównawczy ustalonych metod MCMC, analogiczny do tego, co można znaleźć w literaturze dotyczącej optymalizacji. (Byłbym szczęśliwy, że się tutaj mylę.)

Łatwo jest znaleźć porównanie kilku metod MCMC dotyczących konkretnych problemów w obrębie zastosowanej domeny. Byłoby dobrze, gdybyśmy mogli połączyć te informacje - jednak jakość takich testów porównawczych jest często niewystarczająca (np. Z powodu braku zgłaszanych wskaźników lub złych wyborów projektowych).

Poniżej zamieszczę, jak uważam, cenny wkład, gdy go znajdę:

  • Nishihara, Murray and Adams, Parallel MCMC with Generalized Elliptical Slpling Sampling , JMLR (2014). Autorzy proponują nowatorską metodę wielostanową GESS i dokonują porównania z 6 innymi metodami jedno- i wielostanowymi na 7 funkcjach testowych. Oceniają wydajność jako ESS (efektywna wielkość próbki) na sekundę i na ocenę funkcji.

  • SamplerCompare to pakiet R, którego celem jest testowanie algorytmów MCMC - dokładnie o co pytałem w swoim pierwotnym pytaniu. Niestety pakiet zawiera tylko kilka funkcji testowych; dokument towarzyszący nie podaje żadnych faktycznych punktów odniesienia (tylko mały przykład); i wygląda na to, że nie było żadnych dalszych działań.

Thompson, Madeleine B. „Wprowadzenie do SamplerCompare”. Journal of Statistics Software 43.12 (2011): 1-10 ( link ).

  • Aby zapoznać się z interesującym podejściem do wielostanowych metod aka ensemble, zobacz ten post na blogu Boba Carpentera na blogu Gelmana i mój komentarz odnoszący się do tego postu CV.

Twój drugi link nie działa - czy możesz go zmienić na działający?
Tim

Warto przyjrzeć się artykułowi z grudnia 2017 r .: Ryan Turner i Brady Neal, Jak dobrze działa twój sampler? Wydaje się, że stanowi to dobre rozwiązanie tego problemu polegającego na opracowaniu dobrego testu porównawczego dla algorytmów MCMC.
Carl

2

Zgadzam się z twoją oceną, że nie istnieją kompleksowe poziomy odniesienia dla metod MCMC. Wynika to z faktu, że każdy próbnik MCMC ma zalety i wady i jest wyjątkowo specyficzny dla konkretnego problemu.

W typowym ustawieniu modelowania bayesowskiego można uruchomić ten sam sampler o różnych szybkościach mieszania, gdy dane są różne. Powiedziałbym do tego stopnia, że ​​jeśli w przyszłości pojawi się wszechstronne badanie porównawcze różnych próbników MCMC, nie ufam, że wyniki będą miały zastosowanie poza pokazanymi przykładami.

Jeśli chodzi o wykorzystanie ESS do oceny jakości próbkowania, warto wspomnieć, że ESS zależy od ilości, którą należy oszacować na podstawie próby. Jeśli chcesz znaleźć średnią próbki, uzyskany ESS będzie inny niż jeśli chcesz oszacować 25. kwantyl. To powiedziawszy, jeśli ustalona jest kwota odsetek, ESS jest rozsądnym sposobem porównywania próbników. Może lepszym pomysłem jest ESS na jednostkę czasu.

Jedną z wad ESS jest to, że w przypadku problemów estymacji wielowymiarowej ESS zwraca efektywną wielkość próby dla każdego komponentu osobno, ignorując wszystkie korelacje krzyżowe w procesie estymacji. W tym dokumencie niedawno zaproponowano wielowymiarowy ESS i zaimplementowano go w Rpakiecie mcmcseza pomocą funkcji multiESS. Nie jest jasne, w jaki sposób ta metoda porównuje się do ESS codapakietu, ale na samym początku wydaje się bardziej rozsądna niż jednoznaczne metody ESS.


2
(+1) Dzięki za odpowiedź. Zgadzam się z niektórymi z twoich uwag, ale nadal uważam, że dzięki takim testom można uzyskać pewne informacje. To, jak wykorzystać wyniki takich testów porównawczych w przyszłości, zależy od nich - ale niektóre dowody są lepsze niż brak dowodów. Dobre punkty na temat ESS. Przez wielostanowy mam na myśli wielostanowy (lub wielo-łańcuchowy, jeśli wolisz), a nie po prostu wielowymiarowy - patrz cytat z książki MacKaya w moim pierwotnym pytaniu.
lacerbi,

2
Ogólnie rzecz biorąc, niektóre próbniki są znane z tego, że słabo działają w przypadku dystrybucji multimodalnej (MH, Gibbs), a niektóre źle wpływają na obsługę niewypukłą (Hamiltonian MC). Z drugiej strony, w przypadku problemów wysokowymiarowych Hamiltonian MC działa dobrze, a dla rozkładów multimodalnych symulowane odpuszczanie itp. Jest dobre. Robić żadnych badań porównawczych, można trzeba zdefiniować różne szerokie klasy rozkładów docelowych (sub-wykładniczy, zaloguj wklęsły etc) dla wyników, które mają być ogólnie zinterpretować.
Greenparker,

1
Cóż, tak, właśnie o to chodzi w budowaniu punktu odniesienia dla klasy algorytmów. Zobacz na przykład to, aby uzyskać globalną optymalizację. Najwyraźniej punktem odniesienia dla MCMC nie może po prostu pożyczyć istniejących do optymalizacji; istnieje potrzeba skupienia się na cechach docelowych gęstości, które są specyficzne, wspólne i interesujące dla problemów MCMC, jak te, o których wspomniałeś.
lacerbi
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.