What can flatness teach us: understanding generalisation in Deep Neural Networks