Why do Convolutional Neural Networks work so well?