Ich entwerfe einen hybriden Monte-Carlo- Abtastalgorithmus für PyMC und versuche, ihn so unkompliziert und allgemein wie möglich zu gestalten. Daher suche ich nach guten Ratschlägen für den Entwurf eines HMC-Algorithmus. Ich habe Radfords Umfragekapitel gelesen und Beskos et. In dem kürzlich erschienenen Artikel von al. zur optimalen (schrittweisen) Abstimmung von HMC haben wir die folgenden Tipps zusammengestellt:
- Impulsvariablen sollten mit der Kovarianz , wobei C im Allgemeinen so etwas wie die Kovarianzmatrix der Verteilung ist (für einfache Verteilungen), aber möglicherweise anders sein kann (für lustig geformte Verteilungen). Standardmäßig benutze ich den Hessischen im Modus.
- Trajektorien sollten mit der leapfrog Methode berechnet werden (andere Integratoren scheinen es nicht wert zu sein)
- Optimale Akzeptanzrate ist .651 für wirklich große Probleme und sonst höher.
- Schrittgröße sollte so skaliert wird , wobei L eine freie Variable ist , und d ist die Anzahl der Dimensionen.
- Die Schrittgröße sollte kleiner sein, wenn es leichte Schwänze oder andere Bereiche mit ungeraden Stabilitätseigenschaften gibt. Die Zufallsauswahl der Schrittgröße kann dabei helfen.
Gibt es andere Ideen, die ich übernehmen oder zumindest in Betracht ziehen sollte? Andere Papiere, die ich lesen sollte? Gibt es beispielsweise adaptive Schrittgrößenalgorithmen, die sich lohnen? Gibt es gute Ratschläge zur Flugbahnlänge? Gibt es tatsächlich bessere Integratoren?
Jemand bitte mache dies zu einem Community-Wiki.
quelle