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?
la source
Réponses:
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.
la source