Understanding End-to-End Learning in Artificial Intelligence