next up previous contents
Next: Hybridi Monte Carlo Up: MCMC-menetelmät Previous: Gibbs-otanta

Stokastisen dynamiikan menetelmä

Tarkastellaan lämpötilassa t=1 olevaa hiukkasjoukkoa, jonka hiukkasilla (massa 1) on sijainneista qi riippuva potentiaalienergiafunktio E(q). Oletetaan E(q) derivoituvaksi qi suhteen. Klassisen mekaniikan mukainen tilatodennäköisyys voidaan tällöin kirjoittaa muodossa

\begin{displaymath}
P(q) = \frac{1}{Z_E} e^{-E(q)},\end{displaymath} (12)

jossa ZE on normalisointivakio.

Jokaisella partikkelilla on potentiaalienergian lisäksi myös kineettinen energia K(p). Kineettiselle energialle saadaan tilatodennäköisyys

\begin{displaymath}
P(p) = \frac{1}{Z_K} e^{-K(q)} = \frac{1}{Z_K} e^{-\frac{1}{2} \sum_i p_i^2},\end{displaymath} (13)

Liikemäärät pi ovat siis riippumattomia ja normaalijakautuneita keskiarvolla 0 ja varianssilla 1.

Kokonaisenergian lauseke eli Hamiltonin funktio on nyt

\begin{displaymath}
H(q,p) = E(q) + K(p) = E(q) + \frac{1}{2} \sum_i p_i^2.\end{displaymath} (14)

Yhteistodennäköisyys voidaan kirjoittaa muodossa

Otetaan käyttöön lisäksi aikaparametri $\tau$, ja määritellään hiukkasten dynamiikka seuraavasti:


Pienellä ketjusäännön soveltamisella nähdään, että $dH/d\tau = 0$eli kokonaisenergia säilyy. Samoin hiukkasten viemä tila pysyy vakiona, mikä nähdään toteamalla, että faasitason divergenssi on nolla.

''Leapfrog''-diskretointi (leapfrog discretization, pukkihyppelydiskretointi). Hamiltonin dynamiikan yhtälöt ratkaistaan yleisessä tapauksessa numeerisesti. Hyvin paljon käytetty menetelmä on ns. leapfrog-diskretointi, jossa hiukkasia liikutellaan vuorotellen pieniä hyppäyksiä Hamiltonin yhtälöiden pysyessä voimassa.

Yhdellä iteraatiokierroksella lasketaan uudet approksimaatiot sijainnille ja liikemäärälle, $\hat{q}(\tau + \epsilon)$ ja $\hat{p}(\tau+\epsilon)$ edellisten arvojen $\hat{q}(\tau)$ja $\hat{p}(\tau)$ avulla:


Nyt jakaumasta P(q) voidaan tuottaa näytteitä esimerkiksi toistamalla seuraavia askelia, joista ensimmäistä kutsutaan stokastiseksi transitioksi ja toista dynaamiseksi:

1.
Arvotaan uudet arvot liikemäärille jakaumasta P(p). Tällöin kokonaisenergia H muuttuu, mutta P(q) säilyy koskemattomana, koska P(p|q) = P(p).
2.
Simuloidaan L kertaa Hamiltonin dynamiikkaa käyttäen leapfrog-diskretointia. Tällöin sekä kokonaisenergia H että P(q) säilyy muuttumattomana - olettaen, että diskretointi ja pyöristysvirheitä ei tapahdu.

Sen sijaan, että kaikille liikemäärille arvottaisiin uudet arvot askeleella 1, voidaan myös arpoa uusi liikemäärä vain yhdelle satunnaiselle hiukkaselle.

Toinen tapa on simuloida lyhyitä hiukkasratoja tekemällä seuraavanlaisia stokastisia transitioita:

 
 \begin{displaymath}
p_i' = \alpha p_i + n_i \sqrt{1 - \alpha^2},\end{displaymath} (15)

jossa $\alpha \in [0,1[$ ja $n_i \sim N(0,1)$.

Stokastisen dynamiikan menetelmällä voidaan tuottaa näytteitä jakaumasta $p(\theta)$ määrittelemällä ''energiafunktio'' tiheysfunktion negatiivisena logaritmina $E(\theta) = -\log p(\theta)$.Esimerkiksi bayesilaisen päättelyn (Bayesian inference) tapauksessa saadaan


jolloin simuloimalla Hamiltonin dynamiikkaa saadaan näytteitä posteriori-jakaumasta.


next up previous contents
Next: Hybridi Monte Carlo Up: MCMC-menetelmät Previous: Gibbs-otanta
Simo Särkkä
8/23/1999