Terminologie «matrice de masse» Hamiltonian / Hybrid MCMC

8

J'essaie d'implémenter HMC avec une matrice de masse non diagonale, mais je me fais trébucher par une partie de la terminologie.

Selon BDA3 et la revue de Neal, le terme d'énergie cinétique (qui, je suppose, est toujours utilisé pour des raisons de commodité) est

K(p)=pTM1p2.

Ceci est reconnaissable également appelée normale multivariée avec zéro matrice de covariance . BDA3 (page 301) ditM

Pour simplifier, nous utilisons couramment une matrice de masse diagonale, M. Si c'est le cas, les composantes de φ sont indépendantes, avec φj ∼ N (0, Mjj) pour chaque dimension j = 1,. . . , ré. Il peut être utile que M soit à peu près à l'échelle avec la matrice de covariance inverse de la distribution postérieure, (var (θ | y)) ^ - 1.

(Je lis N (0, M)) comme une normale multivariée avec un zéro moyen et une covariance M.)

La partie qui me fait trébucher est où dit que "cela peut être utile pour à l'échelle à peu près avec la matrice de covariance inverse de la distribution postérieure ...". M

Et puis aussi juste avant que l'échantillon de l' élan qui commence les étapes de LeapFrog ( ) est tirée d'une normale multivariée avec covariance matrice . ϕM

Alors c'est quoi? Pour construire un bon M pour HMC, dois-je estimer la covariance ou la matrice de précision du postérieur? Même si est la matrice de covariance de l'énergie cinétique, l'utilisation d'un qui est une estimation de la matrice de précision du postérieur donnera un algorithme plus efficace?MM

Question secondaire: quelle est l'intuition qui pourrait me guider ici?

  • Voulez-vous utiliser une matrice de précision pour que l'élan pousse orthogonalement au potentiel / postérieur pour améliorer le mélange?

  • OU voulez-vous que l'élan se propage vers la partie de masse à forte probabilité de la partie postérieure (parce que c'est de là que vous voulez prélever la plupart des échantillons).

ps La raison pour laquelle je n'utilise pas la matrice d'identité pour est parce que pour mon problème, je parviens à obtenir une estimation décente de la matrice de covariance de ma dimension postérieure assez élevée (~ 1000) au préalable.M

bill_e
la source

Réponses:

6

Une transformation linéaire des variables de position équivaut à la transformation linéaire inverse des variables de moment. Idéalement, vous voulez échantillonner à partir d'une distribution (transformée) dont la matrice de covariance est la matrice d'identité, et ceci est obtenu par la transformation indiquée ci-dessus.

Pour plus de détails, il y a une belle explication dans "MCMC utilisant la dynamique hamiltonienne" de Neal, Chapitre 5 du Manuel de la chaîne de Markov Monte Carlo , Section 4.1 ("Effet des transformations linéaires"). Le chapitre est disponible ici .

Neal explique:

Supposons que nous ayons une estimation, , de la matrice de covariance pour , et supposons également que a au moins une distribution à peu près gaussienne. Comment pouvons-nous utiliser ces informations pour améliorer les performances de la console HMC? Une façon consiste à transformer les variables pour que leur matrice de covariance soit proche de l'identité, en trouvant la décomposition de Cholesky, , avec étant triangulaire inférieur, et en laissant . [ ]ΣqqΣ=LLTLq=L1q

Une manière équivalente d'utiliser la covariance estimée est de conserver les variables d'origine, mais d'utiliser la fonction d'énergie cinétique - c'est-à-dire que nous laissons les variables de moment ont la covariance . L'équivalence peut être vue en transformant cette énergie cinétique pour correspondre à une transformation en (voir l'équation (4.1)), ce qui donne avec .ΣqK(p)=pTΣp/2Σ1q=L1qK(p)=(p)TM1pM=(L1(LLT)(L1)T)1=I

Pour donner une certaine intuition, supposons que le pdf cible soit en forme de cigare pointant dans une direction qui n'est pas alignée sur l'axe. Vous pouvez soit faire pivoter et redimensionner l'espace, de sorte que le cigare devienne une boule, puis dessiner des impulsions à partir d'une unité multivariée normale, ou de manière équivalente, vous pouvez conserver l'espace d'origine et dessiner vos impulsions afin qu'elles soient alignées avec le cigare (par exemple, avec la plupart de la vitesse le long du grand axe du cigare, afin que vous puissiez l'explorer rapidement).

lacerbi
la source
Je dois avouer que j'ai lu cela (quelques fois) et que j'ai ensuite décidé de poser cette question ... Si vous pouvez y connecter l'explication de Neal avec mes questions, vous obtiendrez tous les points
bill_e
@bill_e: La réponse à votre première question est complète ci-dessus: "nous laissons les variables de momentum avoir la covariance ". Donc, oui, . La réponse à la deuxième question est que vous voulez envoyer pour que la distribution des impulsions soit alignée sur les axes de la matrice de covariance (ce qui équivaut à reparamétriser l'espace d'origine pour que la matrice de covariance soit l'identité). Σ1M=Σ1pLTp
lacerbi
Étapes affichées d'une mise en œuvre de cela, juste pour être limpide. Est ce juste? Très précisément l'inverse (ou l'absence de) sur . Oui, le truc du cigare a du sens. J'y penserai plus. Σ^
bill_e
4

Un moyen simple de voir pourquoi devrait être la covariance inverse de la distribution à partir de laquelle vous souhaitez échantillonner consiste à envisager l'échantillonnage à partir d'une normale multivariée avec une moyenne aribitrary et une covariance . Dans ce cas, les équations hamiltoniennes du mouvement peuvent être résolues exactement (c.-à-d., Pas besoin d'intégration de saute-mouton). Maintenant, pour deux choses magiques se produisent: (i) les équations de mouvement pour chaque découple de coordonnées du reste, et (ii) les matrices et s'annulent et disparaissent des équations de mouvement. La solution est un ensemble d'oscillateurs à fréquence égale, qui peut être considéré comme produisant le mélange le plus rapide possible. Voir quelques détails dans les eqs (2.31) - (2.35)MμΣM=Σ1ΣMici .

Dans une distribution générique, cette approche ne serait qu'une approximation.

aripakman
la source
0

Partie saillante de la dynamique de transformation linéaire à l'aide de la covariance estimée.

Étant donné une estimation de la matrice de covariance de la HMC postérieure, il faut échantillonner à partir de:Σ^

  1. DessinezϕN(0,Σ^1)

  2. Simulez la dynamique hamiltonienne. (Répétition L fois)

    A. Demi-étape: .ϕϕ+12ϵddθlogp(θy)

    Étape complète: .θθ+ϵΣ^ϕ

    C. Demi-étape: .ϕϕ+12ϵddθlogp(θy)

  3. Accepter / rejeter.

(Si c'est le cas, ne votez pas cela, votez @lacerbi)

bill_e
la source
1
subbed forM1Σ^
bill_e
Ouais, je pense que c'est vrai. Voir par exemple l'Eq. (4) du présent document .
lacerbi