🧮 Computational Mathematics

Inicio · Parte 17 — Frontera matemática para IA e investigación

344 — Hamiltonian Monte Carlo

frontera-investigacion clase 4 de 20 4 horas demostración hamiltonian_monte_carlo

Con gradientes se proponen estados lejanos que se aceptan el 99,8 % de las veces.

Fórmulas

energía: H(q,p) = −log p(q) + ‖p‖²/2
integrador leapfrog, simpléctico
aceptación basada en la conservación de H

Desarrollo

Hamiltonian Monte Carlo sustituye la propuesta aleatoria por una simulación de dinámica física. Se interpreta el logaritmo negativo de la densidad como una energía potencial, se añade una variable de momento con energía cinética, y se simula el movimiento de una partícula en ese paisaje.

La ventaja es que la partícula sigue el gradiente y se desplaza a regiones lejanas que conservan alta densidad. Donde Metropolis-Hastings tantea a ciegas y rechaza a menudo, HMC propone estados informados y los acepta casi siempre. En el ejemplo, la tasa de aceptación es del 99,8 % con propuestas mucho más lejanas.

El integrador tiene que ser simpléctico, y por eso se usa leapfrog y no Euler. Un integrador simpléctico conserva el volumen del espacio de fases, lo que es exactamente la condición que hace válida la propuesta reversible. Con un integrador cualquiera, la cadena no muestrearía la distribución correcta. Es un caso donde la elección del método numérico de la parte 11 no es una cuestión de precisión sino de corrección.

Sus dos hiperparámetros —el tamaño de paso y el número de saltos de leapfrog— son delicados de ajustar, y NUTS los adapta automáticamente. Esa es la razón de que HMC y NUTS sean hoy el motor por defecto de Stan, PyMC y NumPyro. Su límite es que exige gradientes, y por tanto no sirve con parámetros discretos.

Ejemplo trabajado

HMC frente a random walk sobre el mismo objetivo.

objetivo: Normal(2,0 ; 1,5)
3 000 iteraciones
step size ε = 0,35      pasos de leapfrog: 12

tasa de aceptación: 0,9983
media estimada: 2,0051      error 0,005

Comparación con Metropolis-Hastings:
  MH  con paso 0,2:  aceptación 0,95, media 2,4552
  HMC con ε = 0,35:  aceptación 0,998, media 2,0051

HMC acepta más Y explora más lejos, porque las
propuestas siguen el gradiente en vez de ser ciegas.

El integrador debe ser simpléctico: con Euler
la cadena muestrearía la distribución equivocada.

Qué calcula el laboratorio

HMC: usar el gradiente para proponer estados lejanos con alta aceptación.

python classes/part-17-frontera-matematica-para-ia-e-investigacion/344-hamiltonian-monte-carlo/lab.py
compmath run 344

Salidas del laboratorio (13)

Muestra de la ejecución real

{
  "objetivo": "Normal(2.0, 1.5)",
  "iteraciones": 3000,
  "step_size_epsilon": 0.35,
  "pasos_de_leapfrog": 12,
  "tasa_de_aceptacion": 0.9983,
  "media_estimada": 2.0051
}

Errores comunes

Dónde se usa

Motores de inferencia bayesiana como Stan y PyMC, modelos jerárquicos complejos, física computacional y cuantificación de incertidumbre en redes.

Idea rectora de la parte

La geometría de la información dota al espacio de parámetros de una métrica natural.

Error a evitar

Reportar resultados de MCMC sin diagnóstico de convergencia.

Conexión con IA

Score matching fundamenta los modelos de difusión; el transporte óptimo aparece en flow matching; la teoría estadística del aprendizaje explica el scaling.

Bibliografía de la clase

Archivos de la clase