Inférence variationnelle versus MCMC: quand choisir l'un plutôt que l'autre?


37

Je pense que j'ai une idée générale de VI et de MCMC, y compris les différentes saveurs de MCMC telles que l’échantillonnage de Gibbs, Metropolis Hastings, etc. Ce document fournit un magnifique exposé des deux méthodes.

J'ai les questions suivantes:

  • Si je souhaite faire l'inférence bayésienne, pourquoi choisirais-je une méthode plutôt qu'une autre?
  • Quels sont les avantages et les inconvénients de chacune des méthodes?

Je comprends qu’il s’agit d’une question assez vaste, mais toute idée serait très appréciée.

Réponses:


35

Pour une réponse longue, voir Blei, Kucukelbir et McAuliffe ici . Cette réponse courte en tire beaucoup.

  • MCMC est asymptotiquement exacte; VI n'est pas . Dans la limite, MCMC se rapprochera exactement de la distribution cible. VI vient sans garantie.
  • MCMC est coûteux en calcul . En général, VI est plus rapide.

En d'autres termes, lorsque nous disposons de temps de calcul et de la précision de nos estimations, MCMC gagne. Si nous pouvons tolérer sacrifier que par opportunisme ou nous travaillons avec des données si grand que nous devons faire le compromis entre-VI est un choix naturel.

Ou, comme décrit de manière plus éloquente et approfondie par les auteurs mentionnés ci-dessus:

Ainsi, l'inférence variationnelle est adaptée aux grands ensembles de données et aux scénarios dans lesquels nous souhaitons explorer rapidement de nombreux modèles; MCMC convient aux plus petits ensembles de données et aux scénarios dans lesquels nous payons volontiers un coût de calcul plus lourd pour des échantillons plus précis. Par exemple, nous pourrions utiliser MCMC dans un environnement où nous avons passé 20 ans à collecter un ensemble de données petit mais coûteux, où nous sommes convaincus que notre modèle est approprié et où nous avons besoin d'inférences précises. Nous pourrions utiliser l'inférence variationnelle lorsque nous adaptons un modèle de texte probabiliste à un milliard de documents texte et où les inférences seront utilisées pour fournir les résultats de la recherche à une large population d'utilisateurs. Dans ce scénario, nous pouvons utiliser le calcul distribué et l'optimisation stochastique pour mettre à l'échelle et accélérer l'inférence, et nous pouvons facilement explorer de nombreux modèles de données différents.


Je pense que Stan est le logiciel le plus rapide à utiliser MCMC (NUTS). Quel est le moyen le plus rapide (ou le plus puissant) de faire de l'inférence variationnelle?
Skan

3
@skan Merveilleuse question! Le logiciel que j'ai le plus proche d’un logiciel VI polyvalent est edward , bien que je ne l’aie pas utilisé moi-même. (De nombreuses applications de VI sont personnalisées, en ce sens qu'elles dérivent un algorithme pour correspondre au modèle spécifique qui les intéresse.)
Sean Easter

2
Stan soutient également VI. La seule limitation de stan est qu'il ne peut pas échantillonner de variables discrètes.
RJTK le

De plus, je ne crois pas que Stan utilise ADVI sur GPU ... de toute façon. Le logiciel le plus rapide pour l'inférence variationnelle est probablement TensorFlow Probability (TFP) ou Pyro, tous deux construits sur des cadres d'apprentissage approfondis hautement optimisés (par exemple, CUDA). TFP est né des premiers travaux sur Edward de Dustin Tran, qui dirige maintenant TFP chez Google, je crois.
Adam Erickson le

@AdamErickson Pour info: Stan commence progressivement à utiliser les GPU arxiv.org/abs/1907.01063
Tim
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.