The parameters θ θ of the neural network are, therefore, trained in a generative manner by MCMC-based maximum likelihood estimation: The learning process follows an "analysis by synthesis" scheme, where within each learning iteration, the algorithm samples the synthesized examples from the current model by a gradient-based MCMC method, e.g., Langevin dynamics or Hybrid Monte Carlo, and then updates the model parameters θ θ based on the difference between the training examples and the synthesized ones, see equation ( ∗ ∗ ) . This process can be interpreted as an alternating mode seeking and mode shifting process, and also has an adversarial interpretation.