These notes are still being written. The reading above is authoritative until this banner disappears.
Learning Objectives
By the end of this week you should be able to:
- Describe the forward diffusion process and its closed-form marginal at any timestep.
- Explain the reparameterization that lets a network predict noise instead of the clean image.
- Write the training objective for a denoising diffusion probabilistic model.
- Describe ancestral sampling and the speed/quality trade-off of the sampler.
- Explain classifier-free guidance and conditional generation.
- Relate diffusion models to score matching and to VAEs.
Plotting setup (click to expand)
import numpy as np
import matplotlib.pyplot as plt
import torch
torch.manual_seed(774)
np.random.seed(774)
plt.rcParams.update({
"figure.figsize": (7, 4),
"figure.dpi": 130,
"axes.spines.top": False,
"axes.spines.right": False,
"axes.grid": True,
"grid.alpha": 0.25,
"font.size": 10,
"legend.frameon": False,
})
NDSU_GREEN = "#005643"
NDSU_GOLD = "#FFC72C"
ACCENT = "#C1121F"
The Training Objective
TODO
Conditional Generation and Guidance
TODO
Connections to Score Matching
TODO
A Minimal Diffusion Model in PyTorch
TODO
Exercises
Problem numbers refer to Prince, Chapter 18.
1. TODO
2. TODO
3. Computational. TODO
Further Reading
- Prince, Understanding Deep Learning, Chapter 18.
- TODO
Back to top