A Phase Transition in Diffusion Models Reveals the Hierarchical Nature of Data

Antonio Sclocchi, Alessandro Favero, Matthieu Wyart
2/26/2024
stat.MLcond-mat.dis-nncs.CV

No official code found. Best implementation: pcsl-epfl/forward-backward-diffusion (4 stars, MIT, last commit 2024-03-04).

Abstract

Understanding the structure of real data is paramount in advancing modern deep-learning methodologies. Natural data such as images are believed to be composed of features organized in a hierarchical and combinatorial manner, which neural networks capture during learning. Recent advancements show that diffusion models can generate high-quality images, hinting at their ability to capture this underlying compositional structure. We study this phenomenon in a hierarchical generative model of data. We find that the backward diffusion process acting after a time $t$ is governed by a phase transition at some threshold time, where the probability of reconstructing high-level features, like the class of an image, suddenly drops. Instead, the reconstruction of low-level features, such as specific details of an image, evolves smoothly across the whole diffusion process. This result implies that at times beyond the transition, the class has changed, but the generated sample may still be composed of low-level elements of the initial image. We validate these theoretical insights through numerical experiments on class-unconditional ImageNet diffusion models. Our analysis characterizes the relationship between time and scale in diffusion models and puts forward generative models as powerful tools to model combinatorial data properties.

View on arXivView PDF

Code Implementations(1)

MIT

Forward-backward diffusion experiments on image datasets.

44PythonMar 4, 20242 years agoMIT

Similar Papers

Cite this paper

@article{sclocchi2024phase,
  title  = {A Phase Transition in Diffusion Models Reveals the Hierarchical Nature of Data},
  author = {Antonio Sclocchi and Alessandro Favero and Matthieu Wyart},
  year   = {2024},
  eprint = {2402.16991},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2402.16991v3}
}

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/2402.16991.svg)](https://codeofpaper.com/paper/2402.16991)

Discussion