Quelles sont les améliorations bien connues par rapport aux algorithmes MCMC manuels que les gens utilisent pour l'inférence bayésienne?


21

Lorsque je code une simulation Monte Carlo pour un problème et que le modèle est assez simple, j'utilise un échantillonnage Gibbs très basique. Lorsqu'il n'est pas possible d'utiliser l'échantillonnage de Gibbs, je code le manuel Metropolis-Hastings que j'ai appris il y a des années. La seule pensée que je lui donne est de choisir la distribution de saut ou ses paramètres.

Je sais qu'il existe des centaines et des centaines de méthodes spécialisées qui améliorent ces options de manuels, mais je ne pense généralement pas à les utiliser / les apprendre. On a généralement l'impression que c'est trop d'efforts pour améliorer un peu ce qui fonctionne déjà très bien.

Mais récemment, j'ai pensé s'il n'y avait peut-être pas de nouvelles méthodes générales qui pourraient améliorer ce que je faisais. Cela fait plusieurs décennies que ces méthodes ont été découvertes. Je suis peut-être vraiment dépassé!

Existe-t-il des alternatives bien connues à Metropolis-Hastings qui sont:

  • assez facile à mettre en œuvre,
  • aussi universellement applicable que MH,
  • et s'améliore toujours par rapport aux résultats de MH dans un certain sens (performances de calcul, précision, etc ...)?

Je connais des améliorations très spécialisées pour des modèles très spécialisés, mais y a-t-il des choses générales que tout le monde utilise que je ne connais pas?


1
Voulez-vous dire la chaîne Markov Monte Carlo? Les améliorations de manuels aux simulations de Monte Carlo auxquelles je peux penser impliquent un échantillonnage antithétique et / ou stratifié, ainsi que quasi-Monte Carlo. Cependant, votre mention de Gibbs et Metropolis-Hastings est révélatrice de l'informatique bayésienne.
StasK

@StasK, Oui, je m'intéresse principalement aux modèles bayésiens et aux modèles de physique statistique (qui est juste une inférence bayésienne sur des distributions de type gibbs p (x) = 1 / Z exp (-E (x) / T)). Désolé de ne pas l'avoir mentionné.
Rafael S. Calsaverini

3
(+1) OK, un joli algorithme adaptatif à usage général publié "récemment" et déjà implémenté dans R, Python et Matlab est le twalk . Cela fonctionne bien mais c'est toujours une bonne pratique de revérifier en utilisant une autre méthode. BTW, MH est implémenté dans le package R mcmc . Bien sûr, il y en a beaucoup d'autres mais la plupart d'entre eux ne sont pas mis en œuvre à ce niveau de généralité et / ou ils sont difficiles à mettre en œuvre. Un autre domaine populaire de nos jours est le Monte Carlo séquentiel. J'espère que ça aide.

2
Vous le savez peut-être déjà, mais l'échantillonnage de tranches est assez facile à implémenter et évite certains pièges d'un algorithme Metropolis "à marche aléatoire" typique. Un problème avec les algorithmes traditionnels de Metropolis est le comportement de type marche aléatoire; plutôt que de se diriger délibérément vers de bons états, ils trébuchent, se déplaçant lentement vers les bonnes zones. C'est la motivation derrière les méthodes qui utilisent des informations dans le gradient, telles que HMC, mais l'échantillonnage par tranches tombe également dans ce camp et est plus automatique.
mec

1
Je ne sais presque rien sur ABC, mais je serais heureux si quelqu'un pouvait expliquer un peu les différences entre les méthodes ABC et MCMC ...
Manoel Galdino

Réponses:


20

Je ne suis pas un expert dans ces domaines, mais je pensais que je les mettrais de toute façon pour voir ce que la communauté pensait. Les corrections sont les bienvenues.

Une méthode de plus en plus populaire, qui n'est pas très simple à mettre en œuvre, est appelée Hamiltonian Monte Carlo (ou parfois Hybrid Monte Carlo). Il utilise un modèle physique avec une énergie potentielle et cinétique pour simuler une balle roulant autour de l'espace des paramètres, comme décrit dans cet article par Radford Neal. Le modèle physique nécessite une quantité considérable de ressources de calcul, vous avez donc tendance à obtenir beaucoup moins de mises à jour, mais les mises à jour ont tendance à être moins corrélées. HMC est le moteur du nouveau logiciel STAN qui est développé comme une alternative plus efficace et flexible aux BUGS ou JAGS pour la modélisation statistique.

Il existe également tout un ensemble de méthodes qui impliquent de «chauffer» la chaîne de Markov, que vous pouvez considérer comme introduisant du bruit thermique dans le modèle et augmentant les chances d'échantillonnage des états à faible probabilité. À première vue, cela semble être une mauvaise idée, car vous voulez que le modèle échantillonne proportionnellement à la probabilité postérieure. Mais vous finissez par utiliser les états "chauds" pour mieux mélanger la chaîne. Les échantillons réels ne sont collectés que lorsque la chaîne est à sa température "normale". Si vous le faites correctement, vous pouvez utiliser les chaînes chauffées pour trouver des modes auxquels une chaîne ordinaire ne pourrait pas accéder en raison de grandes vallées de faible probabilité bloquant la transition de mode à mode. Voici quelques exemples de ces méthodes: MCMC couplé à Metropolis ,, trempe parallèle et échantillonnage d'importance recuit .

Enfin, vous pouvez utiliser le Monte Carlo séquentiel ou le filtrage de particules lorsque le taux de rejet serait si élevé que ces autres méthodes échoueraient toutes. Je connais le moins cette famille de méthodes, donc ma description peut être incorrecte ici , mais ma compréhension est que cela fonctionne comme ça. Vous commencez par exécuter votre échantillonneur préféré, même si les chances de rejet sont essentiellement de un. Plutôt que de rejeter tous vos échantillons, vous choisissez les moins répréhensibles et initialisez de nouveaux échantillonneurs à partir de là, en répétant le processus jusqu'à ce que vous trouviez des échantillons que vous pouvez réellement accepter. Ensuite, vous revenez en arrière et corrigez le fait que vos échantillons n'étaient pas aléatoires, car vous n'avez pas initialisé vos échantillonneurs à partir d'emplacements aléatoires.

J'espère que cela t'aides.

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.