How can neural networks learn the rich internal representations required for difficult tasks such as recognizing objects or understanding language ?