# Hamiltonià de Montecarlo

L'algorisme hamiltonià de Montecarlo (originalment conegut com a Montecarlo híbrid) és un mètode de Montecarlo de cadena de Markov per obtenir una seqüència de mostres aleatòries que convergeixen a ser distribuïdes segons una distribució de probabilitat objectiu per a la qual el mostreig directe és difícil. Aquesta seqüència es pot utilitzar per estimar integrals respecte a la distribució objectiu (valors esperats).
Hamiltonià Monte Carlo correspon a una instància de l'algorisme de Metropolis–Hastings, amb una evolució de la dinàmica hamiltoniana simulada utilitzant un integrador numèric reversible en el temps i que preserva el volum (normalment l'integrador de salt) per proposar un moviment a un nou punt de l'espai d'estats. En comparació amb l'ús d'una distribució de proposta de caminada aleatòria gaussiana a l'algorisme de Metropolis-Hastings, l'Hamiltonià Monte Carlo redueix la correlació entre estats mostrejats successius proposant moviments a estats llunyans que mantenen una alta probabilitat d'acceptació a causa de les propietats aproximades de conservació d'energia de l'Hamiltonià simulat. dinàmic quan s'utilitza un integrador simplèctic. La correlació reduïda significa que es necessiten menys mostres de cadena de Markov per aproximar integrals respecte a la distribució de probabilitat objectiu per a un determinat error de Monte Carlo.
L'algoritme va ser proposat originalment per Simon Duane, Anthony Kennedy, Brian Pendleton i Duncan Roweth el 1987 per a càlculs en cromodinàmica quàntica de gelosia. El 1996, Radford M. Neal va mostrar com el mètode es podia utilitzar per a una classe més àmplia de problemes estadístics, en particular les xarxes neuronals artificials. No obstant això, la càrrega d'haver de proporcionar gradients de la xarxa bayesiana va retardar l'adopció més àmplia de l'algoritme en les estadístiques i altres disciplines quantitatives, fins que a mitjans de la dècada de 2010 els desenvolupadors de Stan van implementar HMC en combinació amb la diferenciació automàtica.

## Algorisme

Suposem que la distribució objectiu a la mostra és $f(\mathbf {x} )$ per $\mathbf {x} \in \mathbb {R} ^{d}$ ( $d\geq 1$ ) i una cadena de mostres $\mathbf {X} _{0},\mathbf {X} _{1},\mathbf {X} _{2},\ldots$ cal.
Les equacions de Hamilton són
${\frac {{\text{d}}x_{i}}{{\text{d}}t}}={\frac {\partial H}{\partial p_{i}}}\quad {\text{i}}\quad {\dfrac {{\text{d}}p_{i}}{{\text{d}}t}}=-{\dfrac {\partial H}{\partial x_{i}}}$
on $x_{i}$ i $p_{i}$ són els $i$ ª component del vector posició i moment respectivament i $H$ és l'Hamiltonià. Deixar $M$ ser una matriu de masses que és simètrica i definitiva positiva, aleshores l'hammiltonià ho és
$H(\mathbf {x} ,\mathbf {p} )=U(\mathbf {x} )+{\dfrac {1}{2}}\mathbf {p} ^{\text{T}}M^{-1}\mathbf {p}$
on $U(\mathbf {x} )$ és l'energia potencial. L'energia potencial per a un objectiu es dona com
$U(\mathbf {x} )=-\ln f(\mathbf {x} )$
que prové del factor de Boltzmann.
L'algorisme requereix un nombre enter positiu per al nombre de passos de granota de salt $L$ i un nombre positiu per a la mida del pas $\Delta t$. Suposem que la cadena és a $\mathbf {X} _{n}=\mathbf {x} _{n}$. Deixar $\mathbf {x} _{n}(0)=\mathbf {x} _{n}$. Primer, un moment gaussià aleatori $\mathbf {p} _{n}(0)$ s'extreu de ${\text{N}}\left(\mathbf {0} ,M\right)$. A continuació, la partícula s'executarà sota la dinàmica hamiltoniana durant el temps $L\Delta t$, això es fa resolent numèricament les equacions de Hamilton utilitzant l'algorisme de granota de salt. Els vectors posició i moment després del temps $\Delta t$ utilitzant l'algoritme de granota de salt són
    $\mathbf {p} _{n}\left(t+{\dfrac {\Delta t}{2}}\right)=\mathbf {p} _{n}(t)-{\dfrac {\Delta t}{2}}\nabla \left.U(\mathbf {x} )\right|_{\mathbf {x} =\mathbf {x} _{n}(t)}$
    $\mathbf {x} _{n}(t+\Delta t)=\mathbf {x} _{n}(t)+\Delta t\mathbf {p} _{n}\left(t+{\dfrac {\Delta t}{2}}\right)$
    $\mathbf {p} _{n}(t+\Delta t)=\mathbf {p} _{n}\left(t+{\dfrac {\Delta t}{2}}\right)-{\dfrac {\Delta t}{2}}\nabla \left.U(\mathbf {x} )\right|_{\mathbf {x} =\mathbf {x} _{n}(t+\Delta t)}$
Aquestes equacions s'han d'aplicar $\mathbf {x} _{n}(0)$ i $\mathbf {p} _{n}(0)$$L$ vegades per obtenir $\mathbf {x} _{n}(L\Delta t)$ i $\mathbf {p} _{n}(L\Delta t)$.
L'algoritme de granota de salt és una solució aproximada al moviment de partícules clàssiques que no interaccionen. Si és exacta, la solució mai canviarà la distribució inicial d'energia generada aleatòriament, ja que l'energia es conserva per a cada partícula en presència d'un camp d'energia potencial clàssic. Per aconseguir una distribució d'equilibri termodinàmic, les partícules han de tenir algun tipus d'interacció amb, per exemple, un bany de calor circumdant, de manera que tot el sistema pugui prendre diferents energies amb probabilitats segons la distribució de Boltzmann.
Una manera de moure el sistema cap a una distribució d'equilibri termodinàmic és canviar l'estat de les partícules mitjançant l'algorisme de Metropolis-Hastings. Per tant, primer s'aplica el pas de granota de salt, després un pas de Metropolis-Hastings.
La transició de $\mathbf {X} _{n}=\mathbf {x} _{n}$ a $\mathbf {X} _{n+1}$ és
$\mathbf {X} _{n+1}|\mathbf {X} _{n}=\mathbf {x} _{n}={\begin{cases}\mathbf {x} _{n}(L\Delta t)&{\text{amb probabilitat }}\alpha \left(\mathbf {x} _{n}(0),\mathbf {x} _{n}(L\Delta t)\right)\\\mathbf {x} _{n}(0)&{\text{altrament}}\end{cases}}$
on
$\alpha \left(\mathbf {x} _{n}(0),\mathbf {x} _{n}(L\Delta t)\right)={\text{min}}\left(1,{\dfrac {\exp \left[-H(\mathbf {x} _{n}(L\Delta t),\mathbf {p} _{n}(L\Delta t))\right]}{\exp \left[-H(\mathbf {x} _{n}(0),\mathbf {p} _{n}(0))\right]}}\right)$
Això es repeteix per obtenir $\mathbf {X} _{n+1},\mathbf {X} _{n+2},\mathbf {X} _{n+3},\ldots$.

## Referències

* ↑ «Hamiltonian Monte Carlo explained by Alex Rogozhnikov» (en anglès). [Consulta: 21 març 2024].
* ↑ Duane, Simon; Kennedy, Anthony D.; Pendleton, Brian J.; Roweth, Duncan Physics Letters B, 195, 2, 1987, pàg. 216–222. Bibcode: 1987PhLB..195..216D. DOI: 10.1016/0370-2693(87)91197-X.
* ↑ Neal, Radford M. «Monte Carlo Implementation». A: Bayesian Learning for Neural Networks (en anglès). 118. Springer, 1996, p. 55–98 (Lecture Notes in Statistics). DOI 10.1007/978-1-4612-0745-0_3. ISBN 0-387-94724-8.
* ↑ Gelman, Andrew; Lee, Daniel; Guo, Jiqiang Journal of Educational and Behavioral Statistics, 40, 5, 2015, pàg. 530–543. DOI: 10.3102/1076998615606113.