when do we use objective "pred_x_start"?
Author: liaocs2008Created Feb 14, 2024Updated Jul 9, 2025
Hi diffusion developers,
Thank you for the open source development!
I have a naive question about the objective "pred_x_start". If we use this objective, after training we have a model that can directly denoise from any timestep xt to x0. In this case, what is the purpose of reverse diffusion process with >1 timesteps?
There are essentially two possible outcomes after training:
- We have a well trained and PERFECT denoising model that always gives ideal x0. The reverse diffusion seems to be a waste of time adding noise to the perfect x0 at each timestep.
- We have a regular denoising model that gives approximately optimal x0. However, the reverse diffusion will keep adding noise during the process. This is like adding extra error (noise) on top of existing approximation error, which seems to make it even harder for the model to denoise.
Best, Leo
Source: lucidrains/denoising-diffusion-pytorch