Quelqu'un peut-il m'expliquer NUTS en anglais?


17

Ma compréhension de l'algorithme est la suivante:

Aucun échantillonneur de demi-tour (NUTS) est une méthode hamiltonienne de Monte Carlo. Cela signifie qu'il ne s'agit pas d'une méthode de chaîne de Markov et donc, cet algorithme évite la partie de marche aléatoire, qui est souvent considérée comme inefficace et lente à converger.

Au lieu de faire la marche aléatoire, NUTS fait des sauts de longueur x. Chaque saut double alors que l'algorithme continue de fonctionner. Cela se produit jusqu'à ce que la trajectoire atteigne un point où elle souhaite revenir au point de départ.

Mes questions: Quelle est la particularité du demi-tour? Comment le fait de doubler la trajectoire ne saute-t-il pas le point optimisé? Ma description ci-dessus est-elle correcte?


J'ai trouvé ce post et les simulations illustrées font vraiment une différence dans l'explication des concepts.
kael

Réponses:


13

Le pas de demi-tour est la façon dont les propositions sont générées. HMC génère un système physique hypothétique: imaginez une balle avec une certaine énergie cinétique roulant autour d'un paysage avec des vallées et des collines (l'analogie se décompose en plus de 2 dimensions) définie par le postérieur que vous souhaitez échantillonner. Chaque fois que vous voulez prélever un nouvel échantillon MCMC, vous choisissez au hasard l'énergie cinétique et vous lancez la balle d'où vous êtes. Vous simulez en pas de temps discrets, et pour vous assurer d'explorer correctement l'espace des paramètres, vous simulez des pas dans une direction et deux fois plus dans l'autre direction, faites demi-tour, etc. À un moment donné, vous voulez arrêter cela et une bonne façon de le faire, c'est lorsque vous avez fait demi-tour (c'est-à-dire que vous semblez avoir fait un peu partout).

À ce stade, la prochaine étape proposée de votre chaîne de Markov est sélectionnée (avec certaines limitations) à partir des points que vous avez visités. C'est-à-dire que toute la simulation du système physique hypothétique était "juste" pour obtenir une proposition qui est ensuite acceptée (l'échantillon MCMC suivant est le point proposé) ou rejetée (l'échantillon MCMC suivant est le point de départ).

La chose intelligente à ce sujet est que les propositions sont faites en fonction de la forme de la partie postérieure et peuvent être à l'autre bout de la distribution. En revanche, Metropolis-Hastings fait des propositions dans une balle (éventuellement asymétrique), l'échantillonnage de Gibbs ne se déplace que sur une (ou du moins très peu) dimensions à la fois.


Pourriez-vous développer le commentaire " semble avoir été partout " s'il vous plaît?
Gabriel

1
Cela signifie avoir une certaine indication qu'il a couvert la distribution, ce que NUTS essaie de juger si vous vous êtes totalement retourné. Si tel est le cas, vous pouvez, espérons-le, en une étape MCMC aller à n'importe quelle partie de la partie postérieure. Bien sûr, la condition ne garantit pas vraiment que vous avez exploré l'ensemble du postérieur, mais donne plutôt une indication que vous en avez exploré la "partie actuelle" (si vous avez une distribution multimodale, vous pouvez avoir du mal à accéder à toutes les parties de la distribution).
Björn

6

Vous avez tort que la console HMC ne soit pas une méthode de chaîne de Markov. Par Wikipedia :

En mathématiques et en physique, l'algorithme hybride de Monte Carlo, également connu sous le nom de Hamiltonian Monte Carlo, est une méthode de Monte Carlo à chaîne de Markov permettant d'obtenir une séquence d'échantillons aléatoires à partir d'une distribution de probabilité pour laquelle l'échantillonnage direct est difficile. Cette séquence peut être utilisée pour approximer la distribution (c'est-à-dire pour générer un histogramme) ou pour calculer une intégrale (telle qu'une valeur attendue).

Pour plus de clarté, lisez l' article arXiv de Betancourt , qui mentionne les critères de terminaison NUTS:

... identifier quand une trajectoire est suffisamment longue pour permettre une exploration suffisante du quartier autour du niveau d'énergie actuel. En particulier, nous voulons éviter à la fois une intégration trop courte, auquel cas nous ne tirerions pas pleinement parti des trajectoires hamiltoniennes, et une intégration trop longue, auquel cas nous gaspillons de précieuses ressources de calcul en exploration qui ne donne que des rendements décroissants.

L'annexe A.3 parle de quelque chose comme la trajectoire doublant que vous mentionnez:

Nous pouvons également nous développer plus rapidement en doublant la longueur de la trajectoire à chaque itération, ce qui donne une trajectoire échantillonnée t ∼ T (t | z) = U T2L avec l'état échantillonné correspondant z ′ ∼ T (z ′ | t). Dans ce cas, les composants de trajectoire anciens et nouveaux à chaque itération sont équivalents aux feuilles d'arbres binaires parfaits et ordonnés (figure 37). Cela nous permet de construire les nouveaux composants de trajectoire de manière récursive, en propageant un échantillon à chaque étape de la récursivité ...

et développe ceci dans A.4, où il parle d'une implémentation dynamique (la section A.3 parle d'une implémentation statique):

Heureusement, les schémas statiques efficaces discutés dans la section A.3 peuvent être itérés pour réaliser une implémentation dynamique une fois que nous avons choisi un critère pour déterminer quand une trajectoire a suffisamment grandi pour explorer de manière satisfaisante l'ensemble de niveaux d'énergie correspondant.

Je pense que la clé est qu'il ne fait pas de sauts qui doublent, il calcule son prochain saut en utilisant une technique qui double la longueur du saut proposé jusqu'à ce qu'un critère soit satisfait. C'est du moins ainsi que je comprends le document jusqu'à présent.

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.