Was sind einige bekannte Verbesserungen gegenüber Lehrbuch-MCMC-Algorithmen, die Menschen für die Bayes'sche Inferenz verwenden?


21

Wenn ich eine Monte-Carlo-Simulation für ein Problem programmiere und das Modell einfach genug ist, verwende ich ein sehr einfaches Gibbs-Sampling-Lehrbuch. Wenn es nicht möglich ist, Gibbs-Sampling zu verwenden, codiere ich das Lehrbuch Metropolis-Hastings, das ich vor Jahren gelernt habe. Der einzige Gedanke, den ich mir überlege, ist die Auswahl der Sprungverteilung oder ihrer Parameter.

Ich weiß, dass es Hunderte von spezialisierten Methoden gibt, die diese Lehrbuchoptionen übertreffen, aber ich denke normalerweise nie darüber nach, sie zu verwenden / zu lernen. Es fühlt sich normalerweise so an, als wäre es zu mühsam, etwas zu verbessern, was bereits sehr gut funktioniert.

Aber in letzter Zeit habe ich darüber nachgedacht, ob es vielleicht keine neuen allgemeinen Methoden gibt, die meine bisherigen Aktivitäten übertreffen können. Es ist viele Jahrzehnte her, dass diese Methoden entdeckt wurden. Vielleicht bin ich wirklich veraltet!

Gibt es bekannte Alternativen zu Metropolis-Hastings:

  • ziemlich einfach zu implementieren,
  • so universell einsetzbar wie MH,
  • und die Ergebnisse von MH in gewissem Sinne immer verbessern (Rechenleistung, Genauigkeit usw.)?

Ich kenne einige sehr spezielle Verbesserungen für sehr spezielle Modelle, aber gibt es einige allgemeine Dinge, die jeder benutzt, die ich nicht kenne?


1
Meinen Sie Markov Kette Monte Carlo? Die Lehrbuchverbesserungen für Monte-Carlo-Simulationen, die ich mir vorstellen kann, umfassen antithetische und / oder geschichtete Stichproben sowie Quasi-Monte-Carlo-Simulationen. Ihre Erwähnung nur von Gibbs und Metropolis-Hastings ist jedoch ein Hinweis auf Bayesian Computing.
StasK

@StasK, Ja, ich interessiere mich hauptsächlich für Bayes'sche Modelle und statistische Physikmodelle (was nur eine Bayes'sche Folgerung auf Gibbs-ähnliche Verteilungen ist p (x) = 1 / Z exp (-E (x) / T)). Entschuldigung, dass Sie das nicht erwähnt haben.
Rafael S. Calsaverini

3
(+1) OK, ein "kürzlich" veröffentlichter und bereits in R, Python und Matlab implementierter allgemeiner adaptiver Algorithmus ist der Twalk . Es funktioniert gut, aber es ist immer eine gute Praxis, die Überprüfung mit einer anderen Methode durchzuführen. Übrigens ist MH im R-Paket mcmc implementiert . Natürlich gibt es viele andere, aber die meisten von ihnen sind nicht auf dieser allgemeinen Ebene implementiert und / oder schwer zu implementieren. Ein weiteres beliebtes Gebiet ist heutzutage Sequential Monte Carlo. Ich hoffe das hilft.

2
Möglicherweise wissen Sie das bereits, aber das Slice-Sampling ist recht einfach zu implementieren und vermeidet einige Fallstricke eines typischen "Random-Walk" -Metropolis-Algorithmus. Ein Problem bei herkömmlichen Metropolis-Algorithmen ist das Verhalten nach dem Zufallsprinzip. anstatt sich gezielt in Richtung guter Zustände zu bewegen, stolpern sie herum und bewegen sich langsam in die guten Gegenden. Dies ist die Motivation für Methoden, die Informationen im Gradienten nutzen, wie z. B. HMC, aber auch das Slice Sampling fällt in dieses Lager und erfolgt automatisierter.
Kerl

1
Ich weiß fast nichts über ABC, aber ich würde mich freuen, wenn jemand etwas über die Unterschiede zwischen ABC- und MCMC-Methoden erklären könnte ...
Manoel Galdino

Antworten:


20

Ich bin kein Experte für diese Themen, aber ich dachte, ich würde sie trotzdem veröffentlichen, um zu sehen, was die Community davon hält. Korrekturen sind willkommen.

Eine zunehmend populäre Methode, deren Implementierung nicht so einfach ist, heißt Hamiltonian Monte Carlo (oder manchmal Hybrid Monte Carlo). Es verwendet ein physikalisches Modell mit potentieller und kinetischer Energie, um eine Kugel zu simulieren, die um den Parameterraum rollt, wie in diesem Artikel von Radford Neal beschrieben. Das physische Modell benötigt eine angemessene Menge an Rechenressourcen, sodass Sie in der Regel viel weniger Aktualisierungen erhalten, die Aktualisierungen jedoch in der Regel weniger korrelieren. HMC ist der Motor der neuen STAN- Software, die als effizientere und flexiblere Alternative zu BUGS oder JAGS für die statistische Modellierung entwickelt wird.

Es gibt auch eine ganze Reihe von Methoden, bei denen die Markov-Kette "aufgeheizt" wird. Sie können sich vorstellen, dass sie thermisches Rauschen in das Modell einführt und die Wahrscheinlichkeit erhöht, Zustände mit niedriger Wahrscheinlichkeit abzutasten. Auf den ersten Blick scheint dies eine schlechte Idee zu sein, da das Modell proportional zur posterioren Wahrscheinlichkeit abgetastet werden soll. Tatsächlich verwenden Sie jedoch nur die "heißen" Zustände, um die Kettenmischung zu verbessern. Die tatsächlichen Proben werden nur gesammelt, wenn sich die Kette auf ihrer "normalen" Temperatur befindet. Wenn Sie es richtig machen, können Sie die beheizten Ketten verwenden, um Modi zu finden, zu denen eine normale Kette aufgrund großer Täler mit geringer Wahrscheinlichkeit, die den Übergang von Modus zu Modus blockieren, nicht in der Lage wären. Einige Beispiele für diese Methoden sind Metropolis-gekoppeltes MCMC ,, paralleles Tempern und Probennahme geglühter Wichtigkeit .

Schließlich können Sie die sequenzielle Monte-Carlo- oder Partikelfilterung verwenden, wenn die Zurückweisungsrate so hoch wäre, dass alle diese anderen Methoden fehlschlagen würden. Ich kenne diese Methodenfamilie am wenigsten, daher ist meine Beschreibung hier möglicherweise falsch , aber ich verstehe, dass sie so funktioniert. Sie starten mit Ihrem bevorzugten Sampler, obwohl die Wahrscheinlichkeit einer Ablehnung im Wesentlichen eins ist. Anstatt alle Ihre Proben abzulehnen, wählen Sie die am wenigsten beanstandeten aus und initialisieren von dort aus neue Proben. Wiederholen Sie den Vorgang, bis Sie einige Proben gefunden haben, die Sie tatsächlich akzeptieren können. Dann gehen Sie zurück und korrigieren die Tatsache, dass Ihre Samples nicht zufällig waren, weil Sie Ihre Sampler nicht von zufälligen Orten aus initialisiert haben.

Hoffe das hilft.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.