We present a general-purpose method to train Markov chain Monte Carlo kernels, parameterized by deep neural networks, that converge and mix quickly to their target distribution. Our method generalizes Hamiltonian Monte Carlo and is trained to maximize expected squared jumped distance, a proxy for mixing speed. We demonstrate large empirical gains on a collection of simple but challenging distributions, for instance achieving a 49x improvement in effective sample size in one case, and mixing when standard HMC makes no measurable progress in a second. Finally, we show quantitative and qualitative gains on a real-world task: latent-variable generative modeling. We release an open source TensorFlow implementation of the algorithm.READ FULL TEXT VIEW PDF
High-dimensional distributions that are only analytically tractable up to a normalizing constant are ubiquitous in many fields. For instance, they arise in protein folding (schutte1999direct), physics simulations (olsson1995two)
, and machine learning(andrieu2003introduction). Sampling from such distributions is a critical task for learning and inference (mackay2003information), however it is an extremely hard problem in general.
Markov Chain Monte Carlo (MCMC) methods promise a solution to this problem. They operate by generating a sequence of correlated samples that converge in distribution to the target. This convergence is most often guaranteed through detailed balance, a sufficient condition for the chain to have the target equilibrium distribution. In practice, for any proposal distribution, one can ensure detailed balance through a Metropolis-Hastings (hastings1970monte) accept/reject step.
Despite theoretical guarantees of eventual convergence, in practice convergence and mixing speed depend strongly on choosing a proposal that works well for the task at hand. What’s more, it is often more art than science to know when an MCMC chain has converged (“burned-in”), and when the chain has produced a new uncorrelated sample (“mixed”). Additionally, the reliance on detailed balance, which assigns equal probability to the forward and reverse transitions, often encourages random-walk behavior and thus slows exploration of the space(ichiki2013violation).
For densities over continuous spaces, Hamiltonian Monte Carlo (HMC; duane1987hybrid; neal2011mcmc) introduces independent, auxiliary momentum variables, and computes a new state by integrating Hamiltonian dynamics. This method can traverse long distances in state space with a single Metropolis-Hastings test. This is the state-of-the-art method for sampling in many domains. However, HMC can perform poorly in a number of settings. While HMC mixes quickly spatially, it struggles at mixing across energy levels due to its volume-preserving dynamics. HMC also does not work well with multi-modal distributions, as the probability of sampling a large enough momentum to traverse a very low-density region is negligibly small. Furthermore, HMC struggles with ill-conditioned energy landscapes (girolami2011riemann) and deals poorly with rapidly changing gradients (pmlr-v32-sohl-dickstein14).
Recently, probabilistic models parameterized by deep neural networks have achieved great success at approximately sampling from highly complex, multi-modal empirical distributions (kingma2013auto; rezende2014stochastic; goodfellow2014generative; bengio2014deep; sohl2015deep). Building on these successes, we present a method that, given an analytically described distribution, automatically returns an exact
sampler with good convergence and mixing properties, from a class of highly expressive parametric models. The proposed family of samplers is a generalization of HMC; it transforms the HMC trajectory using parametric functions (deep networks in our experiments), while retaining theoretical guarantees with a tractable Metropolis-Hastings accept/reject step. The sampler is trained to minimize a variation on expected squared jumped distance (similar in spirit topasarica2010adaptively). Our parameterization reduces easily to standard HMC. It is further capable of emulating several common extensions of HMC such as within-trajectory tempering (neal1996sampling) and diagonal mass matrices (bennett1975mass).
We evaluate our method on distributions where HMC usually struggles, as well as on a the real-world task of training latent-variable generative models.
Our contributions are as follows:
We introduce a generic training procedure which takes as input a distribution defined by an energy function, and returns a fast-mixing MCMC kernel.
We show significant empirical gains on various distributions where HMC performs poorly.
We finally evaluate our method on the real-world task of training and sampling from a latent variable generative model, where we show improvement in the model’s log-likelihood, and greater complexity in the distribution of posterior samples.
Adaptively modifying proposal distributions to improve convergence and mixing has been explored in the past (andrieu2008tutorial). In the case of HMC, prior work has reduced the need to choose step size (neal2011mcmc) or number of leapfrog steps (hoffman2014no) by adaptively tuning those parameters. salimans2015markov proposed an alternate scheme based on variational inference. We adopt the much simpler approach of pasarica2010adaptively
, who show that choosing the hyperparameters of a proposal distribution to maximize expected squared jumped distance is both principled and effective in practice.
Previous work has also explored applying models from machine learning to MCMC tasks. Kernel methods have been used both for learning a proposal distribution (sejdinovic2014kernel) and for approximating the gradient of the energy (strathmann2015gradient)
. In physics, Restricted and semi-Restricted Boltzmann machines have been used both to build approximations of the energy function which allow more rapid sampling(liu2017self; huang2017accelerated), and to motivate new hand-designed proposals (wang2017can).
Most similar to our approach is recent work from song2017nice, which uses adversarial training of a volume-preserving transformation, which is subsequently used as an MCMC proposal distribution. While promising, this technique has several limitations. It does not use gradient information, which is often crucial to maintaining high acceptance rates, especially in high dimensions. It also can only indirectly measure the quality of the generated sample using adversarial training, which is notoriously unstable, suffers from “mode collapse” (where only a portion of a target distribution is covered), and often requires objective modification to train in practice (arjovsky2017wasserstein). Finally, since the proposal transformation preserves volume, it can suffer from the same difficulties in mixing across energy levels as HMC, as we illustrate in Section 5.
To compute the Metropolis-Hastings acceptance probability for a deterministic transition, the operator must be invertible and have a tractable Jacobian. Recent work (dinh2016density), introduces RNVP, an invertible transformation that operates by, at each layer, modifying only a subset of the variables by a function that depends solely on the remaining variables. This is exactly invertible with an efficiently computable Jacobian. Furthermore, by chaining enough of these layers, the model can be made arbitrarily expressive. This parameterization will directly motivate our extension of the leapfrog integrator in HMC.
Let be a target distribution, analytically known up to a constant, over a space . Markov chain Monte Carlo (MCMC) methods (neal1993probabilistic) aim to provide samples from . To that end, MCMC methods construct a Markov Chain whose stationary distribution is the target distribution . Obtaining samples then corresponds to simulating a Markov Chain, i.e., given an initial distribution and a transition kernel
, constructing the following sequence of random variables:
In order for to be the stationary distribution of the chain, three conditions must be satisfied: must be irreducible and aperiodic (these are usually mild technical conditions) and has to be a fixed point of . This last condition can be expressed as: . This condition is most often satisfied by satisfying the stronger detailed balance condition, which can be written as: .
Given any proposal distribution , satisfying mild conditions, we can easily construct a transition kernel that respects detailed balance using Metropolis-Hastings (hastings1970monte) accept/reject rules. More formally, starting from , at each step , we sample , and with probability , accept as the next sample in the chain. If we reject , then we retain the previous state and . For typical proposals this algorithm has strong asymptotic guarantees. But in practice one must often choose between very low acceptance probabilities and very cautious proposals, both of which lead to slow mixing. For continuous state spaces, Hamiltonian Monte Carlo (HMC; neal2011mcmc) tackles this problem by proposing updates that move far in state space while staying roughly on iso-probability contours of .
Without loss of generality, we assume to be defined by an energy function , s.t. , and where the state
. HMC extends the state space with an additional momentum vector, where is distributed independently from , as (i.e., identity-covariance Gaussian). From an augmented state , HMC produces a proposed state by approximately integrating Hamiltonian dynamics jointly on and , with taken to be the potential energy, and the kinetic energy. Since Hamiltonian dynamics conserve the total energy of a system, their approximate integration moves along approximate iso-probability contours of .
The dynamics are typically simulated using the leapfrog integrator (hairer2003geometric; leimkuhler2004simulating), which for a single time step consists of:
Following pmlr-v32-sohl-dickstein14, we write the action of the leapfrog integrator in terms of an operator : , and introduce a momentum flip operator : . It is important to note two properties of these operators. First, the transformation is an involution, i.e. . Second, the transformations from to , from to , and from to are all volume-preserving shear transformations i.e., only one of the variables ( or ) changes, by an amount determined by the other one. The determinant of the Jacobian, , is thus easy to compute. For vanilla HMC , but we will leave it in symbolic form for use in Section 4. The Metropolis-Hastings-Green (hastings1970monte; green1995reversible) acceptance probability for the HMC proposal is made simple by these two properties, and is
In this section, we describe our proposed method L2HMC (for ‘Learning To Hamiltonian Monte Carlo’). Given access to only an energy function (and not samples), L2HMC learns a parametric leapfrog operator over an augmented state space. We begin by describing what desiderata we have for , then go into detail on how we parameterize our sampler. Finally, we conclude this section by describing our training procedure.
HMC is a powerful algorithm, but it can still struggle even on very simple problems. For example, a two-dimensional multivariate Gaussian with an ill-conditioned covariance matrix can take arbitrarily long to traverse (even if the covariance is diagonal), whereas it is trivial to sample directly from it. Another problem is that HMC can only move between energy levels via a random walk (neal2011mcmc)
, which leads to slow mixing in some models. Finally, HMC cannot easily traverse low-density zones. For example, given a simple Gaussian mixture model, HMC cannot mix between modes without recourse to additional tricks, as illustrated in Figure0(b). These observations determine the list of desiderata for our learned MCMC kernel: fast mixing, fast burn-in, mixing across energy levels, and mixing between modes.
While pursuing these goals, we must take care to ensure that our proposal operator retains two key features of the leapfrog operator used in HMC: it must be invertible, and the determinant of its Jacobian must be tractable. The leapfrog operator satisfies these properties by ensuring that each sub-update only affects a subset of the variables, and that no sub-update depends nonlinearly on any of the variables being updated. We are free to generalize the leapfrog operator in any way that preserves these properties. In particular, we are free to translate and rescale each sub-update of the leapfrog operator, so long as we are careful to ensure that these translation and scale terms do not depend on the variables being updated.
As in HMC, we begin by augmenting the current state with a continuous momentum variable drawn from a standard normal. We also introduce a binary direction variable
, drawn from a uniform distribution. We will denote the complete augmented state as, with probability density . Finally, to each step of the operator we assign a fixed random binary mask that will determine which variables are affected by each sub-update. We draw uniformly from the set of binary vectors satisfying , that is, half of the entries of are 0 and half are 1. For convenience, we write and ( denotes element-wise multiplication, and the all ones vector).
We now describe the details of our augmented leapfrog integrator , for a single time-step , and for direction .
We first update the momenta . This update can only depend on a subset of the full state, which excludes . It takes the form
We have introduced three new functions of : , , and . is a translation, rescales the gradient, and rescales the momentum. The determinant of the Jacobian of this transformation is . Note that if , , and are all zero, then we recover the standard leapfrog momentum update.
We now update . As hinted above, to make our transformation more expressive, we first update a subset of the coordinates of , followed by the complementary subset. The first update, which yields and affects only , depends on the state subset . Conversely, with defined below, the second update only affects and depends only on :
Again, is a translation, rescales the effect of the momenta, rescales the positions , and we recover the original leapfrog position update if . The determinant of the Jacobian of the first transformation is , and the determinant of the Jacobian of the second transformation is .
Finally, we update again, based on the subset :
This update has the same form as the momentum update in equation 4.
To give intuition into these terms, the scaling applied to the momentum can enable, among other things, acceleration in low-density zones, to facilitate mixing between modes. The scaling term applied to the gradient of the energy may allow better conditioning of the energy landscape (e.g., by learning a diagonal inertia tensor), or partial ignoring of the energy gradient for rapidly oscillating energies.
are implemented using multi-layer perceptrons, with shared weights. We encode the current time step in the MLP input.
Our leapfrog operator corresponds to running steps of this modified leapfrog, , and our flip operator reverses the direction variable , . Written in terms of these modified operators, our proposal and acceptance probability are identical to those for standard HMC. Note, however, that this parameterization enables learning non-volume-preserving transformations, as the determinant of the Jacobian is a function of and that does not necessarily evaluate to . This quantity is derived in Appendix B.
For convenience, we denote by an operator that re-samples the momentum and direction. I.e., given , where . Sampling thus consists of alternating application of the and , in the following two steps each of which is a Markov transition that satisfies detailed balance with respect to :
with probability (Equation 3), otherwise .
This parameterization is effectively a generalization of standard HMC as it is non-volume preserving, with learnable parameters, and easily reduces to standard HMC for .
We need some criterion to train the parameters that control the functions , , and . We choose a loss designed to reduce mixing time. Specifically, we aim to minimize lag-one autocorrelation. This is equivalent to maximizing expected squared jumped distance (pasarica2010adaptively). For in the extended state space, we define . Expected squared jumped distance is thus . However, this loss need not encourage mixing across the entire state space. Indeed, maximizing this objective can lead to regions of state space where almost no mixing occurs, so long as the average squared distance traversed remains high. To optimize both for typical and worst case behavior, we include a reciprocal term in the loss,
where is a scale parameter, capturing the characteristic length scale of the problem. The second term encourages typical moves to be large, while the first term strongly penalizes the sampler if it is ever in a state where it cannot move effectively – being small resulting in a large loss value. We train our sampler by minimizing this loss over both the target distribution and initialization distribution. Formally, given an initial distribution over , we define , and minimize
The first term of this loss encourages mixing as it considers our operator applied on draws from the distribution; the second term rewards fast burn-in; controls the strength of the ‘burn-in’ regularization. Given this loss, we exactly describe our training procedure in Algorithm 1. It is important to note that each training iteration can be done with only one pass through the network and can be efficiently batched. We further emphasize that this training procedure can be applied to any learnable operator whose Jacobian’s determinant is tractable, making it a general framework for training MCMC proposals.
We present an empirical evaluation of our trained sampler on a diverse set of energy functions. We first present results on a collection of toy distributions capturing common pathologies of energy landscapes, followed by results on a task from machine learning: maximum-likelihood training of deep generative models. For each, we compare against HMC with well-tuned step length and show significant gains in mixing time. Code implementing our algorithm is available online111https://github.com/brain-research/l2hmc..
We evaluate our L2HMC sampler on a diverse collection of energy functions, each posing different challenges for standard HMC.
(ICG): Gaussian distribution with diagonal covariance spaced log-linearly betweenand . This demonstrates that L2HMC can learn a diagonal inertia tensor.
Strongly correlated Gaussian
(SCG): We rotate a diagonal Gaussian with variancesby . This is an extreme version of an example from neal2011mcmc. This problem shows that, although our parametric sampler only applies element-wise transformations, it can adapt to structure which is not axis-aligned.
Mixture of Gaussians (MoG): Mixture of two isotropic Gaussians with , and centroids separated by distance . The means are thus about standard deviations apart, making it almost impossible for HMC to mix between modes.
Rough Well: Similar to an example from pmlr-v32-sohl-dickstein14, for a given . For small the energy itself is altered negligibly, but its gradient is perturbed by a high frequency noise oscillating between and . In our experiments, we choose .
For each of these distributions, we compare against HMC with the same number of leapfrog steps and a well-tuned step-size. To compare mixing time, we plot auto-correlation for each method and report effective sample size (ESS). We compute those quantities in the same way as pmlr-v32-sohl-dickstein14. We observe that samplers trained with L2HMC show greatly improved autocorrelation and ESS on the presented tasks, providing more than improved ESS on the SCG task. In addition, for the MoG, we show that L2HMC can easily mix between modes while standard HMC gets stuck in a mode, unable to traverse the low density zone. Experimental details, as well as a comparison with LAHMC (pmlr-v32-sohl-dickstein14), are shown in Appendix C.
In addition to the well known challenges associated with adversarial training (arjovsky2017wasserstein), we note that parameterization using a volume-preserving operator can dramatically fail on simple energy landscapes. We build off of the mog2 experiment presented in (song2017nice), which is a -d mixture of isotropic Gaussians separated by a distance of with variances . We consider that setup but increase the ratio of variances: . We show in Figure 0(d) sample chains trained with L2HMC and A-NICE-MC; A-NICE-MC cannot effectively mix between the two modes as only a fraction of the volume of the large mode can be mapped to the small one, making it highly improbable to traverse. This is also an issue for HMC. On the other hand, L2HMC can both traverse the low-density region between modes, and map a larger volume in the left mode to a smaller volume in the right mode. It is important to note that the distance between both clusters is less than in the mog2 case, and it is thus a good diagnostic of the shortcomings of volume-preserving transformations.
We apply our learned sampler to the task of training, and sampling from the posterior of, a latent-variable generative model. The model consists of a latent variable , where we choose , and a conditional distribution which generates the image . Given a family of parametric ‘decoders’ , and a set of samples , training involves finding . However, the log-likelihood is intractable as . To remedy that problem, kingma2013auto proposed jointly training an approximate posterior that maximizes a tractable lower-bound on the log-likelihood:
where is a tractable conditional distribution with parameters , typically parameterized by a neural network. Recently, to improve upon well-known pitfalls like over-pruning (burda2015importance) of the VAE, pmlr-v70-hoffman17a proposed HMC-DLGM. For a data sample , after obtaining a sample from the approximate posterior , pmlr-v70-hoffman17a runs a MCMC algorithm with energy function to obtain a more exact posterior sample from . Given that better posterior sample , the algorithm maximizes .
To show the benefits of L2HMC, we borrow the method from pmlr-v70-hoffman17a, but replace HMC by jointly training an L2HMC sampler to improve the efficiency of the posterior sampling. We call this model L2HMC-DLGM. A diagram of our model and a formal description of our training procedure are presented in Appendix D. We define, for .
In the subsequent sections, we compare our method to the standard VAE model from kingma2013auto and HMC-DGLM from pmlr-v70-hoffman17a. It is important to note that, since our sampler is trained jointly with and , it performs exactly the same number of gradient computations of the energy function as HMC. We first show that training a latent variable generative model with L2HMC results in better generative models both qualitatively and quantitatively. We then show that our improved sampler enables a more expressive, non-Gaussian, posterior.
Implementation details: Our decoder () is a neural network with fully connected layers, with units each and softplus non-linearities, and outputs Bernoulli activation probabilities for each pixel. The encoder () has the same architecture, returning mean and variance for the approximate posterior. Our model was trained for epochs with Adam (kingma2014adam) and a learning rate
. All experiments were done on the dynamically binarized MNIST dataset(lecun1998mnist).
We first present samples from decoders trained with L2HMC, HMC and the ELBO (i.e. vanilla VAE). Although higher log likelihood does not necessarily correspond to better samples (theis2015note), we can see in Figure 5, shown in the Appendix, that the decoder trained with L2HMC generates sharper samples than the compared methods.
We now compare our method to HMC in terms of log-likelihood of the data. As we previously stated, the marginal likelihood of a data point is not tractable as it requires integrating
over a high-dimensional space. However, we can estimate it using annealed importance sampling (AIS;neal2001annealed). Following wu2016quantitative, we evaluate our generative models on both training and held-out data. In Figure 2, we plot the data’s log-likelihood against the number of gradient computation steps for both HMC-DGLM and L2HMC-DGLM. We can see that for a similar number of gradient computations, L2HMC-DGLM achieves higher likelihood for both training and held-out data. This is a strong indication that L2HMC provides significantly better posterior samples.
In the standard VAE framework, approximate posteriors are often parametrized by a Gaussian, thus making a strong assumption of uni-modality. In this section, we show that using L2HMC to sample from the posterior enables learning of a richer posterior landscape.
Block Gibbs Sampling To highlight our ability to capture more expressive posteriors, we in-paint the top of an image using Block Gibbs Sampling using the approximate posterior or L2HMC. Formally, let be the starting image. We denote top or bottom-half pixels as and . At each step , we sample , sample . We then set and . We compare the results obtained by sampling from using (i.e. the approximate posterior) vs. our trained sampler. The results are reported in Figure 2(a). We can see that L2HMC easily mixes between modes (3, 5, 8, and plausibly 9 in the figure) while the approximate posterior gets stuck on the same reconstructed digit (3 in the figure).
Visualization of the posterior After training a decoder with L2HMC, we randomly choose an element and run parallel L2HMC chains for Metropolis-Hastings steps. We then find the direction of highest variance, project the samples along that direction and show a histogram in Figure 2(b). This plot shows non-Gaussianity in the latent space for the posterior. Using our improved sampler enables the decoder to make use of a more expressive posterior, and enables the encoder to sample from this non-Gaussian posterior.
The loss in Section 4.2 targets lag-one autocorrelation. It should be possible to extend this to also target lag-two and higher autocorrelations. It should also be possible to extend this loss to reward fast decay in the autocorrelation of other statistics of the samples, for instance the sample energy as well as the sample position. These additional statistics could also include learned statistics of the samples, combining benefits of the adversarial approach of (song2017nice) with the current work.
Our learned generalization of HMC should prove complementary to several other research directions related to HMC. It would be interesting to explore combining our work with the use of HMC in a minibatch setting (chen2014stochastic); with shadow Hamiltonians (izaguirre2004shadow); with gradient pre-conditioning approaches similar to those used in Riemannian HMC (girolami2009riemannian; betancourt2013general); with the use of alternative HMC accept-reject rules (pmlr-v32-sohl-dickstein14; berger2015markov); with the use of non-canonical Hamiltonian dynamics (tripuraneni2016magnetic); with variants of AIS adapted to HMC proposals (sohl2012hamiltonian); with the extension of HMC to discrete state spaces (zhang2012continuous); and with the use of alternative Hamiltonian integrators (creutz1989higher; chao2015exponential).
Finally, our work is also complementary to other methods not utilizing gradient information. For example, we could incorporate the intuition behind Multiple Try Metropolis schemes (martino2013flexibility) by having several parametric operators and training each one when used. In addition, one could draw inspiration from the adaptive literature (haario2001adaptive; andrieu2008tutorial) or component-wise strategies (gilks1992adaptive).
In this work, we presented a general method to train expressive MCMC kernels parameterized with deep neural networks. Given a target distribution , analytically known up to a constant, our method provides a fast-mixing sampler, able to efficiently explore the state space. Our hope is that our method can be utilized in a “black-box” manner, in domains where sampling constitutes a huge bottleneck such as protein foldings (schutte1999direct) or physics simulations (olsson1995two).
We would like to thank Ben Poole, Aditya Grover, David Belanger, and Colin Raffel for insightful comments on the draft, Mohammad Norouzi for support and encouragement launching the project, and Jiaming Song for discussions and help running A-NICE-MC.
Let in the extended state space with . Here, we describe the leapfrog updates for a single time step , this consists of inverting the equations presented in the corresponding section.
Let , we have:
With the notation from Section 4, let
Let us denote :
Finally, the last update, with :
It is important to note that to invert , these steps should be ran for from to .
Given the derivations (and notations) from Section 4, for the forward operator , we can immediately compute the Jacobian:
Where denotes the intermediary variable at time step and is the direction of i.e. .
First of all, we keep separate parameters for the network responsible for updating and those updating . The architectures are the same. Let us take the example of . The time step is given as input to the MLP, encoded as .
denotes the ReLU non-linearity.
For hidden units per layer:
We first compute ().
In Section 5.1, the are neural networks with hidden layers with ( for the -d ICG) units and ReLU non-linearities. We train with Adam (kingma2014adam) and a learning rate . We train for iterations with a batch size of .
was set to for ICG and SCG and to for MoG and Rough Well. For the MoG tasks, we train our sampler with a temperature parameter that we continuously anneal; we evaluate the trained sampler without using temperature.
Let be a set of correlated samples converging to the distribution with mean and covariance . We define auto-correlation at time as:
We can now define effective sample size (ESS) as:
Similar to hoffman2014no, we truncate the sum when the auto-correlation goes below .
We compare our trained sampler with LAHMC (pmlr-v32-sohl-dickstein14). Results are reported in Table 1. L2HMC largely outperforms LAHMC on all task. LAHMC is also unable to mix between modes for the MoG task. We also note that L2HMC could be easily combined with LAHMC, by replacing the leapfrog integrator of LAHMC with the learned one of L2HMC.
In this section, we present our training algorithm as well as a diagram explaining L2HMC-DGLM. For conciseness, given our operator , we denote by the distribution over next state given sampling of a momentum and direction and the Metropolis-Hastings step.
Similar to our L2HMC training on unconditional sampling, we share weights across and . In addition, the auxiliary variable (here the image from MNIST) is first passed through a -layer neural network, with softplus non-linearities and hidden units. This input is given to both networks and . The architecture then consists of hidden layers of units and ReLU non-linearities. For (scale parameter of the loss), we use the standard deviation of the approximate posterior.
For each data point, we run Markov Chains in parallel, annealing steps with leapfrogs per step and choose the step size for an acceptance rate of .
We show in Figure 5 samples from the three evaluated models: VAE (kingma2013auto), HMC-DGLM (pmlr-v70-hoffman17a) and L2HMC-DGLM.