What Are Diffusion Models In Machine Learning