Diffusion Models

Adding noise to an example is easy to control. Learning to remove it gives us a useful training problem, and a trained reverse process can then turn a noisy starting point into a generated example.

10 sections · 9 questions · 4 coding challenges

1 / 10

Could Learning to Remove Noise Teach a Model to Generate?

BOTIE

Creating a detailed image in one operation is a difficult task. Adding a little noise to an existing image is easy, and learning to account for a small corruption gives us a more manageable question. What if we could organise generation as many such steps?

Sohl-Dickstein and colleagues' 2015 diffusion work modelled data through a gradual noising process and a learned reverse process. Ho, Jain and Abbeel's 2020 work developed a particularly effective denoising formulation for image generation.

During training, we corrupt examples by known amounts and teach a model to estimate the noise or an equivalent denoising quantity. During generation, we start with noise and repeatedly apply learned reverse steps. Each step is conditioned on where we are in the process. This does not recover a uniquely hidden original image from arbitrary noise; it samples a new example using regularities learned from the training data.

Sources for this history