How Are Diffusion Models Trained