  Differentiable programming has emerged as a key programming paradigm
empowering rapid developments of deep learning while its applications to
important computational methods such as Monte Carlo remain largely unexplored.
Here we present the general theory enabling infinite-order automatic
differentiation on expectations computed by Monte Carlo with unnormalized
probability distributions, which we call "automatic differentiable Monte Carlo"
(ADMC). By implementing ADMC algorithms on computational graphs, one can also
leverage state-of-the-art machine learning frameworks and techniques to
traditional Monte Carlo applications in statistics and physics. We illustrate
the versatility of ADMC by showing some applications: fast search of phase
transitions and accurately finding ground states of interacting many-body
models in two dimensions. ADMC paves a promising way to innovate Monte Carlo in
various aspects to achieve higher accuracy and efficiency, e.g. easing or
solving the sign problem of quantum many-body models through ADMC.
