Diffusion Neural Networks