Terminología Hamiltoniana / Híbrida MCMC 'matriz de masa'

8

Estoy tratando de implementar HMC con una matriz de masa no diagonal, pero algunas de las terminologías me hacen tropezar.

De acuerdo con BDA3 y la revisión de Neal, el término de energía cinética (que supongo que siempre se usa por conveniencia) es

K(p)=pTM1p2.

Esto también se reconoce como una normal multivariada con media cero y matriz de covarianza M. BDA3 (pg 301) dice

Para mantenerlo simple, comúnmente usamos una matriz de masa diagonal, M. Si es así, los componentes de φ son independientes, con φj ∼ N (0, Mjj) para cada dimensión j = 1,. . . d. Puede ser útil para M escalar aproximadamente con la matriz de covarianza inversa de la distribución posterior, (var (θ | y)) ^ - 1.

(Estoy leyendo N (0, M)) como una normal multivariada con media cero y covarianza M.)

La parte que me hace tropezar es donde dice que "puede ser útil para Mescalar aproximadamente con la matriz de covarianza inversa de la distribución posterior ... ".

Y luego, justo antes de eso, la muestra de impulso que comienza los pasos de salto (ϕ) se extrae de una matriz multivariada normal con covarianzaM.

Entonces, ¿cuál es? Para construir una buena M para HMC, ¿calculo la matriz de covarianza o precisión de la parte posterior? AunqueMes la matriz de covarianza de la energía cinética, usando unMQue es una estimación de la matriz de precisión de la posterior dará un algoritmo más eficiente?

Pregunta secundaria: ¿cuál es la intuición que podría guiarme aquí?

  • ¿Desea utilizar una matriz de precisión para que el impulso empuje ortogonalmente al potencial / posterior para mejorar la mezcla?

  • O ¿desea que el impulso empuje hacia la parte de masa de alta probabilidad de la parte posterior (porque de ahí es de donde desea extraer la mayoría de las muestras).

ps La razón por la que no estoy usando la matriz de identidad para M es porque para mi problema puedo obtener una estimación decente de la matriz de covarianza de mi bastante alta dimensión (~ 1000) posterior de antemano.

bill_e
fuente

Respuestas:

6

Una transformación lineal de las variables de posición es equivalente a la transformación lineal inversa de las variables de momento. Idealmente, desea muestrear a partir de una distribución (transformada) cuya matriz de covarianza es la matriz de identidad, y esto se obtiene mediante la transformación indicada anteriormente.

Para más detalles, hay una buena explicación en "MCMC usando dinámica hamiltoniana" de Neal, Capítulo 5 del Manual de Markov Chain Monte Carlo , Sección 4.1 ("Efecto de las transformaciones lineales"). El capítulo está disponible aquí .

Neal explica:

Supongamos que tenemos una estimación, Σ, de la matriz de covarianza para qy supongamos también que qtiene al menos una distribución aproximadamente gaussiana. ¿Cómo podemos usar esta información para mejorar el rendimiento de HMC? Una forma es transformar las variables para que su matriz de covarianza esté cerca de la identidad, al encontrar la descomposición de Cholesky,Σ=LLT, con L ser triangular inferior y dejar q=L1q. []

Una forma equivalente de hacer uso de la covarianza estimada Σ es mantener el original q variables, pero use la función de energía cinética K(p)=pTΣp/2 - es decir, dejamos que las variables de momento tengan covarianza Σ1. La equivalencia se puede ver transformando esta energía cinética para que corresponda a una transformación aq=L1q (ver ecuación (4.1)), que da K(p)=(p)TM1p con M=(L1(LLT)(L1)T)1=I.

Para dar un poco de intuición, suponga que el pdf objetivo tiene forma de cigarro apuntando en una dirección que no está alineada con el eje. Puede rotar y reescalar el espacio, de modo que el cigarro se convierta en una bola, y luego extraer momentos de una unidad multivariada normal, o de manera equivalente, puede mantener el espacio original y dibujar sus momentos para que estén alineados con el cigarro (por ejemplo, con la mayor parte de la velocidad a lo largo del eje principal del cigarro, para que pueda explorarlo rápidamente).

lacerbi
fuente
Debo confesar que lo leí (algunas veces) y luego decidí hacer esta pregunta ... Si puedes conectar la explicación de Neal allí con mis preguntas, obtendrás todos los puntos
bill_e
@bill_e: Su primera pregunta está completamente respondida arriba: "dejamos que las variables de momento tengan covarianza Σ1". Entonces sí, M=Σ1. La respuesta a la segunda pregunta es que desea enviarpLTpde modo que la distribución de los momentos esté alineada con los ejes de la matriz de covarianza (que es equivalente a volver a trazar el espacio original para que la matriz de covarianza sea la identidad).
lacerbi
Pasos publicados de una implementación de esto, solo para ser cristalino. ¿Es correcto? Muy específicamente el inverso (o falta de) enΣ^. Sí, lo del cigarro tiene sentido. Lo pensaré más.
bill_e
4

Una forma simple de ver por qué M debe ser la covarianza inversa de la distribución de la que desea muestrear es considerar el muestreo de una Normal multivariada con media aribitraria μ y covarianza Σ. En este caso, las ecuaciones de movimiento hamiltonianas pueden resolverse exactamente (es decir, no es necesaria la integración de salto de rana). Ahora paraM=Σ1 suceden dos cosas mágicas: (i) las ecuaciones de movimiento para cada desacoplamiento de coordenadas del resto, y (ii) las matrices Σ y Mcancelarse mutuamente y desaparecer de las ecuaciones de movimiento. La solución es un conjunto de osciladores con igual frecuencia, que se puede argumentar que produce la mezcla más rápida posible. Vea algunos detalles en las ecuaciones (2.31) - (2.35) aquí .

En una distribución genérica, este enfoque sería solo una aproximación.

aripakman
fuente
0

Parte sobresaliente del momento de transformación lineal usando covarianza estimada.

Dado un estimado Σ^ de la matriz de covarianza de la HMC posterior es tomar muestras de:

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

  2. Simula la dinámica hamiltoniana. (Repitiendo L veces)

    A. Medio paso: ϕϕ+12ϵddθlogp(θy).

    B. Paso completo: θθ+ϵΣ^ϕ.

    C. Medio paso: ϕϕ+12ϵddθlogp(θy).

  3. Aceptar rechazar.

(Si esto es correcto, no votes a favor, vota a favor @lacerbi)

bill_e
fuente
1
subbed M1 para Σ^
bill_e
Sí, creo que esto es correcto. Ver por ejemplo la ecuación. (4) de este documento .
lacerbi