Inferencia variacional versus MCMC: ¿cuándo elegir uno sobre el otro?

37

Creo que tengo la idea general de VI y MCMC, incluidos los diversos sabores de MCMC, como el muestreo de Gibbs, Metropolis Hastings, etc. Este documento proporciona una exposición maravillosa de ambos métodos.

Tengo las siguientes preguntas:

  • Si deseo hacer inferencia bayesiana, ¿por qué elegiría un método sobre el otro?
  • ¿Cuáles son los pros y los contras de cada uno de los métodos?

Entiendo que esta es una pregunta bastante amplia, pero cualquier idea sería muy apreciada.

kedarps
fuente

Respuestas:

35

Para una respuesta larga, vea Blei, Kucukelbir y McAuliffe aquí . Esta respuesta corta se basa en gran medida de allí.

  • MCMC es asintóticamente exacto; VI no lo es . En el límite, MCMC se aproximará exactamente a la distribución objetivo. VI viene sin garantía.
  • MCMC es computacionalmente costoso . En general, VI es más rápido.

Es decir, cuando tenemos tiempo computacional para matar y valorar la precisión de nuestras estimaciones, MCMC gana. Si podemos tolerar sacrificar eso por conveniencia, o estamos trabajando con datos tan grandes que tenemos que hacer una compensación, VI es una opción natural.

O, como se describió de manera más elocuente y exhaustiva por los autores mencionados anteriormente:

Por lo tanto, la inferencia variacional es adecuada para grandes conjuntos de datos y escenarios en los que queremos explorar rápidamente muchos modelos; MCMC es adecuado para conjuntos de datos más pequeños y escenarios en los que pagamos un costo computacional más alto por muestras más precisas. Por ejemplo, podríamos usar MCMC en un entorno donde pasamos 20 años recolectando un conjunto de datos pequeño pero costoso, donde confiamos en que nuestro modelo es apropiado y donde requerimos inferencias precisas. Podríamos usar inferencia variacional cuando ajustemos un modelo probabilístico de texto a mil millones de documentos de texto y donde las inferencias se utilizarán para servir los resultados de búsqueda a una gran población de usuarios. En este escenario, podemos usar la computación distribuida y la optimización estocástica para escalar y acelerar la inferencia, y podemos explorar fácilmente muchos modelos diferentes de datos.

Sean Easter
fuente
Creo que Stan es el software más rápido para hacer MCMC (NUTS). ¿Cuál es el más rápido (o más poderoso) para hacer la Inferencia Variacional?
skan
3
@skan ¡Maravillosa pregunta! Lo más cercano que he visto a un software VI de uso general es Edward , aunque no lo he usado yo mismo. (Muchas aplicaciones de VI son personalizadas, ya que derivan un algoritmo para adaptarse al modelo específico de interés).
Sean Easter,
2
Stan también admite VI. La única limitación de stan es que no puede muestrear variables discretas.
RJTK
Además, no creo que Stan ejecute ADVI en GPU ... todavía de todos modos. El software más rápido para la inferencia variacional es probablemente TensorFlow Probability (TFP) o Pyro, ambos construidos en marcos de aprendizaje profundo altamente optimizados (es decir, CUDA). TFP surgió de los primeros trabajos sobre Edward de Dustin Tran, quien ahora lidera TFP en Google, creo.
Adam Erickson
@AdamErickson FYI: Stan gradualmente comienza a usar GPU arxiv.org/abs/1907.01063
Tim