stringtranslate.com

Montecarlo hamiltoniano

Muestreo de Monte Carlo hamiltoniano de una distribución de probabilidad bidimensional

El algoritmo Monte Carlo hamiltoniano (originalmente conocido como Monte Carlo híbrido ) es un método Monte Carlo de cadena de Markov para obtener una secuencia de muestras aleatorias cuya distribución converge a una distribución de probabilidad objetivo que es difícil de muestrear directamente. Esta secuencia se puede utilizar para estimar integrales de la distribución objetivo, como valores esperados y momentos .

El Hamiltonian Monte Carlo corresponde a una instancia del algoritmo Metropolis-Hastings , con una evolución de dinámica hamiltoniana simulada utilizando un integrador numérico reversible en el tiempo y que preserva el volumen (normalmente el integrador leapfrog ) para proponer un movimiento a un nuevo punto en el espacio de estados. En comparación con el uso de una distribución de propuesta de paseo aleatorio gaussiano en el algoritmo Metropolis-Hastings, el Hamiltonian Monte Carlo reduce la correlación entre estados muestreados sucesivos al proponer movimientos a estados distantes que mantienen una alta probabilidad de aceptación debido a las propiedades aproximadas de conservación de energía de la dinámica hamiltoniana simulada cuando se utiliza un integrador simpléctico . La correlación reducida significa que se necesitan menos muestras de cadena de Markov para aproximar integrales con respecto a la distribución de probabilidad objetivo para un error de Monte Carlo dado .

El algoritmo fue propuesto originalmente por Simon Duane, Anthony Kennedy, Brian Pendleton y Duncan Roweth en 1987 para cálculos en cromodinámica cuántica de red . [1] En 1996, Radford M. Neal mostró cómo el método podría usarse para una clase más amplia de problemas estadísticos, en particular redes neuronales artificiales . [2] Sin embargo, la carga de tener que proporcionar gradientes de la red bayesiana retrasó la adopción más amplia del algoritmo en estadística y otras disciplinas cuantitativas, hasta que a mediados de la década de 2010 los desarrolladores de Stan implementaron HMC en combinación con la diferenciación automática . [3]

Algoritmo

Supongamos que la distribución objetivo a muestrear es para ( ) y se requiere una cadena de muestras .

Las ecuaciones de Hamilton son

donde y son el componente n del vector de posición y momento respectivamente y es el hamiltoniano. Sea una matriz de masas que es simétrica y definida positiva, entonces el hamiltoniano es

¿Dónde está la energía potencial ? La energía potencial de un objetivo se expresa como

que proviene del factor de Boltzmann . Nótese que el hamiltoniano es adimensional en esta formulación porque el peso de probabilidad exponencial tiene que estar bien definido. Por ejemplo, en simulaciones a temperatura finita el factor (con la constante de Boltzmann ) se absorbe directamente en y .

El algoritmo requiere un entero positivo para el número de pasos de salto y un número positivo para el tamaño del paso . Supongamos que la cadena está en . Sea . Primero, se extrae un momento gaussiano aleatorio de . A continuación, la partícula se ejecutará bajo dinámica hamiltoniana durante el tiempo , esto se hace resolviendo numéricamente las ecuaciones de Hamilton utilizando el algoritmo de salto . Los vectores de posición y momento después del tiempo utilizando el algoritmo de salto son: [4]

Estas ecuaciones se deben aplicar a y veces para obtener y .

El algoritmo de salto de rana es una solución aproximada al movimiento de partículas clásicas que no interactúan. Si es exacta, la solución nunca cambiará la distribución de energía inicial generada aleatoriamente, ya que la energía se conserva para cada partícula en presencia de un campo de energía potencial clásico. Para alcanzar una distribución de equilibrio termodinámico, las partículas deben tener algún tipo de interacción con, por ejemplo, un baño de calor circundante, de modo que todo el sistema pueda asumir diferentes energías con probabilidades de acuerdo con la distribución de Boltzmann.

Una forma de mover el sistema hacia una distribución de equilibrio termodinámico es cambiar el estado de las partículas utilizando el algoritmo de Metropolis-Hastings . Primero se aplica el paso de salto y luego un paso de Metropolis-Hastings.

La transición de a es

dónde

Una actualización completa consiste en primero muestrear aleatoriamente los momentos (independientemente de las iteraciones anteriores), luego integrar las ecuaciones de movimiento (por ejemplo, con leapfrog) y, finalmente, obtener la nueva configuración a partir del paso de aceptación/rechazo de Metropolis-Hastings. Este mecanismo de actualización se repite para obtener .

Muestra sin vuelta en U

El muestreador sin giro en U (NUTS) [5] es una extensión que se controla automáticamente. El ajuste es fundamental. Por ejemplo, en el caso unidimensional , el potencial es que corresponde al potencial de un oscilador armónico simple . Si es demasiado grande, la partícula oscilará y, por lo tanto, se desperdiciará tiempo computacional. Si es demasiado pequeño, la partícula se comportará como un paseo aleatorio.

En términos generales, NUTS ejecuta la dinámica hamiltoniana hacia adelante y hacia atrás en el tiempo de manera aleatoria hasta que se cumple una condición de giro en U. Cuando eso sucede, se elige un punto aleatorio de la trayectoria para la muestra MCMC y el proceso se repite desde ese nuevo punto.

En detalle, se construye un árbol binario para rastrear la ruta de los pasos de salto de rana. Para producir una muestra MCMC, se lleva a cabo un procedimiento iterativo. Se toma una muestra de una variable de corte. Sea y la posición y el momento de la partícula hacia adelante respectivamente. De manera similar, y para la partícula hacia atrás. En cada iteración, el árbol binario selecciona al azar de manera uniforme para mover la partícula hacia adelante hacia adelante en el tiempo o la partícula hacia atrás hacia atrás en el tiempo. Además, para cada iteración, el número de pasos de salto de rana aumenta en un factor de 2. Por ejemplo, en la primera iteración, la partícula hacia adelante se mueve hacia adelante en el tiempo usando 1 paso de salto de rana. En la siguiente iteración, la partícula hacia atrás se mueve hacia atrás en el tiempo usando 2 pasos de salto de rana.

El procedimiento iterativo continúa hasta que se cumple la condición de giro en U, es decir

o cuando el hamiltoniano se vuelve inexacto

o

donde, por ejemplo, .

Una vez que se cumple la condición de U-Turn, la siguiente muestra MCMC, , se obtiene muestreando uniformemente la trayectoria de salto de rana trazada por el árbol binario que satisface

Generalmente esto se cumple si los parámetros HMC restantes son sensatos.

Véase también

Referencias

  1. ^ Duane, Simon; Kennedy, Anthony D.; Pendleton, Brian J.; Roweth, Duncan (1987). "Monte Carlo híbrido". Physics Letters B . 195 (2): 216–222. Código Bibliográfico :1987PhLB..195..216D. doi :10.1016/0370-2693(87)91197-X.
  2. ^ Neal, Radford M. (1996). "Implementación de Monte Carlo". Aprendizaje bayesiano para redes neuronales . Apuntes de clase sobre estadística. Vol. 118. Springer. págs. 55–98. doi :10.1007/978-1-4612-0745-0_3. ISBN . 0-387-94724-8.
  3. ^ Gelman, Andrew; Lee, Daniel; Guo, Jiqiang (2015). "Stan: un lenguaje de programación probabilístico para la inferencia y optimización bayesiana". Revista de estadística educativa y conductual . 40 (5): 530–543. doi :10.3102/1076998615606113. S2CID  18351694.
  4. ^ Betancourt, Michael (15 de julio de 2018). "Una introducción conceptual al método Monte Carlo hamiltoniano". arXiv : 1701.02434 [stat.ME].
  5. ^ Hoffman, Matthew D; Gelman, Andrew (2014). "El muestreador sin giro en U: configuración adaptativa de longitudes de ruta en el modelo Monte Carlo hamiltoniano". Journal of Machine Learning Research . 15 (1): 1593–1623 . Consultado el 28 de marzo de 2024 .

Lectura adicional

Enlaces externos