Hamiltonian Monte Carlo

Indice dei contenuti

    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

    \pi(q)\propto \exp[-U(q)],

    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:

    U(q)=-\log\pi(q)+\text{costante}.

    HMC introduce una variabile ausiliaria di momento p, di solito gaussiana:

    p\sim\mathcal{N}(0,M),

    dove M è una matrice di massa. L’energia cinetica è

    K(p)= \dfrac{1}{2}p^TM^{-1}p.

    L’hamiltoniana totale è

    H(q,p)=U(q)+K(p).

    Campionare nello spazio esteso (q,p) permette di costruire proposte direzionali invece di muoversi per piccoli passi casuali.

    Dinamica hamiltoniana

    Le equazioni hamiltoniane sono

    \dfrac{dq}{dt}= \dfrac{\partial H}{\partial p} = M^{-1}p,
    \dfrac{dp}{dt}= -\dfrac{\partial H}{\partial q} = -\nabla U(q).

    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 è:

    p\leftarrow p-\dfrac{\epsilon}{2}\nabla U(q),
    q\leftarrow q+\epsilon M^{-1}p,
    p\leftarrow p-\dfrac{\epsilon}{2}\nabla U(q).

    Dopo L passi, la proposta viene accettata con probabilità

    \alpha= \min\left\{ 1, \exp\left[-H(q^\*,p^\*)+H(q,p)\right] \right\}.

    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:

    1. passo leapfrog \epsilon;
    2. numero di passi L;
    3. matrice di massa M;
    4. 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.

    Ultimo aggiornamento: