Diffusion models are generative models whose outputs are generated by iteratively denoising Gaussian noise. During inference, the reverse process is executed, whereas during training, the forward process is carried out (converting data to noise). This process can be guided at inference time to respect specific geometric constraints.
Details
Diffusion models try to recover samples drawn from from Gaussian noise by iteratively denoising across time steps. The forward process is defined as
: Standard Weiner process (by which noise is added)
Typically these drift and diffusion functions are used:
The reverse process:
The scoring function is approximated by a neural network, .
Diffusion models can also be zero-shot classifiers (1).
Diffusion models have been combined with Replica-exchange molecular dynamics (2).
Types of sequence-based diffusion
For protein sequences, which are fundamentally discrete, Yang et al (3) describe three approaches to generation using diffusion models:
- Diffusion in pre-trained latent space (e.g., continuous diffusion)
- Diffusion in discrete space with uniform noise matrices
- Diffusion in discrete space via absorbing matrices, e.g., one-at-a-time masking/unmasking of individual tokens