Hamiltonian Monte Carlo (HMC) è un metodo MCMC che introduce momenti ausiliari e usa una dinamica hamiltoniana approssimata per proporre mosse lontane ma ad alta probabilità di accettazione.
Rispetto a un random walk Metropolis, HMC esplora meglio posteriori continue ad alta dimensione perché sfrutta il gradiente della log-densità.
La simulazione numerica usa passi leapfrog e una correzione Metropolis. Divergenze, energia mal esplorata o bassa effective sample size sono segnali di problemi nella geometria posteriore o nella parametrizzazione.
Spazio esteso
Supponiamo di voler campionare una distribuzione target continua
dove q rappresenta i parametri del modello e U(q) è l’energia potenziale, spesso uguale a meno la log-densità a meno di una costante:
HMC introduce una variabile ausiliaria di momento p, di solito gaussiana:
dove M è una matrice di massa. L’energia cinetica è
L’hamiltoniana totale è
Campionare nello spazio esteso (q,p) permette di costruire proposte direzionali invece di muoversi per piccoli passi casuali.
Dinamica hamiltoniana
Le equazioni hamiltoniane sono
Il gradiente della log-densità guida il movimento verso regioni ad alta probabilità senza trasformare la catena in un random walk. Idealmente, la dinamica conserva H(q,p) e quindi si muove lungo traiettorie compatibili con la distribuzione target.
Integratore leapfrog
Poiché la dinamica esatta è quasi sempre impossibile da calcolare, HMC usa un integratore numerico reversibile e simplettico, tipicamente leapfrog. Un passo con ampiezza \epsilon è:
Dopo L passi, la proposta viene accettata con probabilità
La correzione di Metropolis compensa l’errore numerico dell’integratore.
Perché è efficiente
Rispetto a Metropolis-Hastings a random walk, HMC può proporre punti lontani mantenendo alta probabilità di accettazione. Questo è decisivo in distribuzioni posteriori continue ad alta dimensione, dove i movimenti casuali locali esplorano lentamente.
HMC è particolarmente utile nei modelli bayesiani differenziabili: regressioni gerarchiche, modelli a effetti misti, modelli latenti continui e molte applicazioni di inferenza bayesiana moderna.
Parametri di tuning
I parametri chiave sono:
- passo leapfrog \epsilon;
- numero di passi L;
- matrice di massa M;
- parametrizzazione del modello.
Un passo troppo grande produce errori numerici e rifiuti frequenti; un passo troppo piccolo rende l’esplorazione lenta. Un numero di passi troppo basso produce traiettorie corte; uno troppo alto può sprecare calcolo o tornare vicino al punto iniziale.
Algoritmi adattivi come NUTS scelgono automaticamente la lunghezza della traiettoria, riducendo la necessità di fissare L a mano.
Divergenze e geometria posteriore
Una divergenza indica che l’integratore non riesce a seguire in modo affidabile la geometria locale della posteriore. Può dipendere da curvature forti, funnel gerarchici, scale mal parametrizzate o prior troppo deboli.
Nei modelli gerarchici, per esempio, una parametrizzazione centrata può creare regioni strette e difficili da esplorare. Una parametrizzazione non centrata può migliorare drasticamente la geometria.
Diagnostica
Oltre alle diagnostiche MCMC generali, in HMC si controllano accettazione, divergenze, effective sample size, mixing tra catene e comportamento dell’energia. Se le catene non esplorano bene, aumentare solo il numero di iterazioni raramente risolve il problema: serve intervenire su parametrizzazione, scala, prior o tuning.
HMC richiede gradienti affidabili. Modelli con discontinuità, parametri discreti non marginalizzati o densità non differenziabili sono meno adatti.
Errori comuni
Un errore frequente è trattare HMC come una scatola nera: se il software produce campioni, non significa che l’inferenza sia affidabile. Divergenze anche poche possono segnalare regioni posteriori problematiche.
Un altro errore è confrontarlo solo in termini di tempo per iterazione. Una singola iterazione HMC costa più di un passo random walk, ma può produrre campioni molto meno correlati. La metrica utile è il numero di campioni efficaci per unità di tempo.