Training normalizing flows with computationally intensive target probability distributions

Piotr Bialas, Piotr Korcyl, Tomasz Stebel
8/25/2023
cs.LGcond-mat.stat-mechhep-lat

No official code found. Best implementation: nmcmc/nmcmc-code (1 star, MIT, last commit 2024-10-19).

Abstract

Machine learning techniques, in particular the so-called normalizing flows, are becoming increasingly popular in the context of Monte Carlo simulations as they can effectively approximate target probability distributions. In the case of lattice field theories (LFT) the target distribution is given by the exponential of the action. The common loss function's gradient estimator based on the "reparametrization trick" requires the calculation of the derivative of the action with respect to the fields. This can present a significant computational cost for complicated, non-local actions like e.g. fermionic action in QCD. In this contribution, we propose an estimator for normalizing flows based on the REINFORCE algorithm that avoids this issue. We apply it to two dimensional Schwinger model with Wilson fermions at criticality and show that it is up to ten times faster in terms of the wall-clock time as well as requiring up to $30\%$ less memory than the reparameterization trick estimator. It is also more numerically stable allowing for single precision calculations and the use of half-float tensor cores. We present an in-depth analysis of the origins of those improvements. We believe that these benefits will appear also outside the realm of the LFT, in each case where the target probability distribution is computationally intensive.

View on arXivView PDF

Code Implementations(1)

nmcmc/nmcmc-codeCommunity100%
MIT
11PythonAug 27, 20232 years agoMIT

Similar Papers

Cite this paper

@article{bialas2023training,
  title  = {Training normalizing flows with computationally intensive target probability distributions},
  author = {Piotr Bialas and Piotr Korcyl and Tomasz Stebel},
  year   = {2023},
  eprint = {2308.13294},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2308.13294v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2308.13294.svg)](https://codeofpaper.com/paper/2308.13294)

Discussion