Variationsinferenz versus MCMC: Wann muss man sich entscheiden?

36

Ich glaube, ich habe eine allgemeine Vorstellung von VI und MCMC, einschließlich der verschiedenen Geschmacksrichtungen von MCMC wie Gibbs Sampling, Metropolis Hastings usw. Dieses Papier bietet eine wunderbare Darstellung beider Methoden.

Ich habe folgende Fragen:

  • Wenn ich bayesianische Schlussfolgerungen ziehen möchte, warum sollte ich dann eine Methode der anderen vorziehen?
  • Was sind die Vor- und Nachteile der einzelnen Methoden?

Ich verstehe, dass dies eine ziemlich breite Frage ist, aber alle Einsichten wären sehr dankbar.

Kedarps
quelle

Antworten:

34

Für eine lange Antwort siehe Blei, Kucukelbir und McAuliffe hier . Diese kurze Antwort ist von großer Bedeutung.

  • MCMC ist asymptotisch genau; VI ist nicht . Im Grenzfall wird MCMC die Zielverteilung genau approximieren. VI kommt ohne Garantie.
  • MCMC ist rechenintensiv . Im Allgemeinen ist VI schneller.

Das heißt, wenn wir Rechenzeit haben, um die Genauigkeit unserer Schätzungen zu ermitteln und zu bewerten, gewinnt MCMC. Wenn wir tolerieren können , zu opfern , dass für Zweckmäßigkeit-oder wir mit Daten so groß arbeiten wir haben den Kompromiss-VI ist eine natürliche Wahl zu treffen.

Oder, wie von den oben genannten Autoren beredter und ausführlicher beschrieben:

Daher eignet sich die Inferenz von Variationen für große Datenmengen und Szenarien, in denen viele Modelle schnell untersucht werden sollen. MCMC eignet sich für kleinere Datensätze und Szenarien, in denen wir gerne höhere Rechenkosten für präzisere Stichproben zahlen. Zum Beispiel könnten wir MCMC in einer Umgebung verwenden, in der wir 20 Jahre lang einen kleinen, aber teuren Datensatz gesammelt haben, in der wir davon überzeugt sind, dass unser Modell angemessen ist und in der wir präzise Schlussfolgerungen benötigen. Wir könnten Variationsinferenz verwenden, wenn ein probabilistisches Textmodell an eine Milliarde Textdokumente angepasst wird und die Inferenzen verwendet werden, um Suchergebnisse für eine große Population von Benutzern bereitzustellen. In diesem Szenario können wir verteilte Berechnungen und stochastische Optimierungen verwenden, um die Inferenz zu skalieren und zu beschleunigen, und wir können auf einfache Weise viele verschiedene Modelle der Daten untersuchen.

Sean Easter
quelle
Ich denke, Stan ist die schnellste Software für MCMC (NUTS). Was ist der schnellste (oder leistungsstärkste) Weg, um Variationsinferenz zu machen?
22.
3
@ skan Wunderbare Frage! Das, was ich einer Allzweck-VI-Software am nächsten gesehen habe, ist Edward , obwohl ich es selbst nicht benutzt habe. (Viele VI-Anwendungen sind
Sean Easter
2
Stan unterstützt auch VI. Die einzige Einschränkung von Stan ist, dass es keine diskreten Variablen abtasten kann.
RJTK
Ich glaube auch nicht, dass Stan ADVI auf der GPU laufen lässt ... noch nicht. Die schnellste Software für Variationsinferenz ist wahrscheinlich TensorFlow Probability (TFP) oder Pyro, die beide auf hochoptimierten Deep-Learning-Frameworks (dh CUDA) basieren. TFP entstand aus der frühen Arbeit an Edward von Dustin Tran, der jetzt, glaube ich, TFP bei Google leitet.
Adam Erickson
@AdamErickson FYI: Stan verwendet nach und nach GPUs. Arxiv.org/abs/1907.01063
Tim