(en interaction) MCMC pour multimodal postérieur


9

J'essaie d'échantillonner à partir d'un postérieur ayant de nombreux modes particulièrement éloignés les uns des autres en utilisant MCMC. Il semble que dans la plupart des cas, un seul de ces modes contient le 95% hpd que je recherche. J'ai essayé d'implémenter des solutions basées sur la simulation tempérée mais cela ne donne pas de résultats satisfaisants car en pratique passer d'une "plage de capture" à une autre est trop coûteux.

En conséquence, il me semble qu'une solution plus efficace serait d'exécuter de nombreux MCMC simples à partir de différents points de départ et de plonger dans la solution dominante en faisant interagir les MCMC. Savez-vous s'il existe un moyen approprié de mettre en œuvre une telle idée?

Remarque: J'ai trouvé ce papier http://lccc.eecs.berkeley.edu/Papers/dmcmc_short.pdf (chaîne de Markov distribuée Monte Carlo, Lawrence Murray) qui ressemble le plus à ce que je recherche, mais je ne comprends vraiment pas le design de la fonction .Rje

[EDIT]: le manque de réponses semble indiquer qu'il n'y a pas de solution évidente à mon problème initial (faire interagir plusieurs MCMC d'échantillonnage à partir de la même distribution cible à partir de différents points de départ). Est-ce vrai ? pourquoi est-ce si compliqué? Merci


Cela ressemble à ce que j'ai déjà utilisé pour "Population MCMC". Voir «Estimation des facteurs de Bayes via l'intégration thermodynamique et la population MCMC» par Calderhead et Girolami. Désolé si cela arrive un peu tard, mais peut-être que d'autres personnes apprécieront la référence!
Sam Mason

Peut-être la même chose que Population MCMC est Monte Carlo séquentiel.
Robert P. Goldman

Réponses:


1

Soif de tout ce que je recommanderais de chercher une meilleure méthode, ou au moins une méthode avec une description plus approfondie, car la "chaîne de Markov distribuée Monte Carlo" du document que vous référez ne semble pas être clairement énoncée. Les avantages et les inconvénients ne sont pas bien explorés. Il y a une méthode, qui est apparue dans arxiv assez récemment appelée " Wormhole Hamiltonian Monte Carlo ", je recommanderais de la vérifier.

Pour revenir à l'article que vous avez cité, la proposition à distance est très vaguement décrite. Dans la partie application, il est décrit comme "Gaussien à vraisemblance maximale sur les échantillons t / 2 précédents". Cela signifie peut-être que vous faites la moyenne des dernières valeurs t / 2 de la chaîne i t h ? Un peu difficile à deviner avec la mauvaise description donnée dans la référence.Rje(θje)jeth

[MISE À JOUR:] L'interaction entre plusieurs chaînes et l'application de cette idée à l'échantillon de la distribution postérieure peuvent être trouvées dans des méthodes MCMC parallèles, par exemple ici . Cependant, faire fonctionner plusieurs chaînes et les forcer à interagir peut ne pas convenir au postérieur multimodal: par exemple, s'il y a une région très prononcée où la majeure partie de la distribution postérieure est concentrée, l'interaction des chaînes peut même aggraver les choses en s'en tenant à ce spécifique région et ne pas explorer d’autres régions / modes moins prononcés. Donc, je recommande fortement de rechercher MCMC spécialement conçu pour les problèmes multimodaux. Et si vous voulez créer une autre / nouvelle méthode, après avoir su ce qui est disponible sur le "marché", vous pouvez créer une méthode plus efficace.


Merci de votre aide. Ce n'est pas totalement ce à quoi je m'attendais mais peut-être que je recherche des choses inaccessibles. J'étudie actuellement (je ne suis pas sûr de pouvoir dériver tout ce dont a besoin un Hamiltonian MCMC), le soi-disant darting MC que j'ai trouvé à travers vos références. Je vous donne la prime, merci encore pour vos conseils.
peuhp

@peuhp, Ceci est étroitement lié aux méthodes hamiltoniennes mentionnées ci-dessus, mais l' échantillonneur Equi-Energy est une méthode MCMC qui est spécifiquement facturée comme méthode pour les distributions postérieures multimodales. Je sais que cela fonctionne en démarrant plusieurs chaînes parallèles et en permettant des sauts entre les chaînes, mais je n'ai pas suffisamment de connaissances / d'expérience avec la méthode pour poster une réponse. Jetez un œil au lien. J'espère que ça aide.
Macro

1

Vous devriez essayer multinest: https://arxiv.org/pdf/0809.3437.pdf https://github.com/Johannes{ner/MultiNest C'est un moteur d'inférence bayésien qui vous donnera des échantillons de paramètres pour une distribution multimodale.

Le lien github contient le code source multinest que vous compilez et installez selon les instructions. il a également un wrapper python qui est plus facile à utiliser. Les exemples de codes ont une section précédente qui sert à contraindre vos paramètres et une section de vraisemblance qui contient votre vraisemblance. le fichier de paramètres contient tous vos paramètres et la sortie multinest du dossier des chaînes après l'ajustement. il vous donnera des échantillons de vos paramètres


Bienvenue sur CV et merci pour votre excellente réponse. Vous pouvez peut-être améliorer votre réponse en résumant le Githublink.
Ferdi

1
Le lien github contient le code source multinest que vous compilez et installez selon les instructions. il a également un wrapper python qui est plus facile à utiliser. Les exemples de codes ont une section précédente qui sert à contraindre vos paramètres et une section de vraisemblance qui contient votre vraisemblance. le fichier de paramètres contient tous vos paramètres et la sortie multinest du dossier des chaînes après l'ajustement. il vous donnera des échantillons de vos paramètres.
Eric Kamau

sensationnel. C'est génial. J'ai voté pour votre réponse. À l'avenir, vous pouvez inclure une telle description chaque fois que vous partagez un lien.
Ferdi

0

Cela semble être un problème difficile et permanent dans les statistiques de calcul. Cependant, il existe quelques méthodes moins avancées qui devraient fonctionner correctement.

Disons que vous avez déjà trouvé plusieurs modes distincts du postérieur et que vous êtes heureux que ce soient les modes les plus importants, et si le postérieur autour de ces modes est raisonnablement normal. Ensuite, vous pouvez calculer la toile de jute à ces modes (par exemple, en utilisant optim dans R avec hessian = T) et vous pouvez approximer le postérieur comme un mélange de normales (ou distributions t). Voir p318-319 dans Gelman et al. (2003) "Bayesian Data Analysis" pour plus de détails. Ensuite, vous pouvez utiliser l'approximation mélange normal / t comme distribution de la proposition dans un échantillonneur indépendant pour obtenir des échantillons à partir du postérieur complet.

Une autre idée, que je n'ai pas essayée, est l'échantillonnage d'importance reculée (Radford Neal, 1998, lien ici ).


Une autre chose, si vous avez déjà un ensemble de chaînes qui semblent avoir "convergé" localement, serait de faire un rééchantillonnage d'importance à partir de la combinaison de toutes vos chaînes. Je n'en suis pas sûr cependant.
Mat

Bienvenue sur le forum Mat. N'hésitez pas à modifier votre réponse pour ajouter vos nouvelles idées au lieu de commenter votre propre réponse. Rien de mal à cela :)
brumar

0

Qu'en est-il d'essayer une nouvelle méthode MCMC pour la multimodalité, un algorithme Metropolis répulsif-attractif ( http://arxiv.org/abs/1601.05633 )? Cet échantillonneur multimodal fonctionne avec un seul paramètre de réglage comme un algorithme Metropolis et est simple à mettre en œuvre.

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.