A differentiable programming framework for spin models
Tiago de Souza Farias, Vitor Vaz Schultz, José Carlos Merino Mombach, Jonas Maziero
TL;DR
We present a differentiable programming framework for simulating and optimizing three spin-model families—Ising, Potts, and Cellular Potts—by reformulating Metropolis-Hastings updates as differentiable operations on batched tensors and computing energies via convolution. The approach enables gradient-based optimization of both exchange parameters $J_{ij}$ and spin values, and is implemented in PyTorch to leverage GPUs and TPUs. Key contributions include a unified differentiable Monte Carlo methodology, demonstration of energy-minimizing optimization tasks, and substantial hardware-accelerated speedups across Ising, Potts, and CPM simulations. This framework broadens the use of differentiable programming in statistical physics and related fields, with potential impact on materials science, biology, and combinatorial optimization.
Abstract
We introduce a novel framework for simulating spin models using differentiable programming, an approach that leverages the advancements in machine learning and computational efficiency. We focus on three distinct spin systems: the Ising model, the Potts model, and the Cellular Potts model, demonstrating the practicality and scalability of our framework in modeling these complex systems. Additionally, this framework allows for the optimization of spin models, which can adjust the parameters of a system by a defined objective function. In order to simulate these models, we adapt the Metropolis-Hastings algorithm to a differentiable programming paradigm, employing batched tensors for simulating spin lattices. This adaptation not only facilitates the integration with existing deep learning tools but also significantly enhances computational speed through parallel processing capabilities, as it can be implemented on different hardware architectures, including GPUs and TPUs.
