02/10/2020
\(a\)
Continuum limit
Markov Chain Monte Carlo (MCMC)
if \(q(x^{\prime}|x) = q(x|x^{\prime})\)
Metropolis-Hastings: Accept/Reject
import numpy as np
def metropolis_hastings(p, steps=1000):
x = 0. # initialize config
samples = np.zeros(steps)
for i in range(steps):
x_prime = x + np.random.randn() # proposed config
if np.random.rand() < p(x_prime) / p(x): # compute A(x'|x)
x = x_prime # accept proposed config
samples[i] = x # accumulate configs
return samples
As
,
correlated!
burn-in
We know how this "evolves" in time!
(for HMC)
Jacobian determinant, \(|\mathcal{J}|\)
Integrate \(H(x, v)\):
\(t \longrightarrow t + \varepsilon\)
Project onto target parameter space \(p(x, v) \longrightarrow p(x)\)
\(v \sim p(v)\)
Cannot easily traverse low-density zones.
What do we want in a good sampler?
Energy levels selected randomly \(\longrightarrow\) slow mixing!
(especially for Lattice QCD)
Ideal for lattice QCD due to critical slowing down!
Momentum scaling
Gradient scaling
Translation
inputs
(trajectory length)
\(A(\xi^{\prime}|\xi) = \min{\left(1, \frac{p(\mathbf{FL}_{\theta}\xi)}{p(\xi)}\left|\frac{\partial\left[\mathbf{FL}\xi\right]}{\partial\xi^{T}}\right|\right)}\)
\(|\mathcal{J}| \neq 1\)
Unlike HMC,
Encourages typical moves to be large
Penalizes sampler if unable to move effectively
scale parameter
"distance" between \(\xi, \xi^{\prime}\): \(\delta(\xi, \xi^{\prime}) = \|x - x^{\prime}\|^{2}_{2}\)
\(\delta \times A = \) "expected" distance
Accept prob.
Build model,
initialize network
Run dynamics, Accept/Reject
Calculate
Backpropagate
Finished
training?
Save trained
model
Run inference
on saved model
Train step
where:
Sum of \(\phi\) around plaquette