Learning topography in neural networks: towards a better understanding of cortical topography