Learning and Generalisation for High-dimensional Data