DDPM's training objective is to predict the noise added to an image rather than the original image directly
Rather than training the network to predict the mean of the reverse Gaussian directly, Ho et al. reparametrize so the network predicts the noise epsilon that was added to x_0. The ELBO loss reduces to an L2 loss between the true noise and the predicted noise: ||epsilon - epsilon_theta(sqrt(alpha_bar_t)*x_0 + sqrt(1-alpha_bar_t)*epsilon, t)||^2. This reparametrization is a design choice — the network becomes a ‘noise predictor’ rather than a ‘mean predictor’. In practice, the Huber loss (smooth L1) is often used instead of L2 for robustness. This objective is the core thing being minimized during training.
Examples
In code: p_losses(model, x_start, t, loss_type='huber') corrupts x_start, runs the model, computes F.smooth_l1_loss(noise, predicted_noise).
Assessment
State what the DDPM network predicts at inference and why predicting noise (rather than x_0 directly) is equivalent to reparametrizing the mean. Implement the loss function in one line.