Learning Through Diffusion