Diffusion adaptation over networks