In machine learning, we often see the expression "end-to-end" learning (or training). However, I do not know that it means. When is a network called end-to-end training? How to recognize a network is end-to-end learning?
From feature extraction to learning the desired result, deep learning algorithms can act as full pipelines for solving tasks at hand. End-to-end learning usually refers to omitting any hand-crafted intermediary algorithms and directly learning the solution of a given problem from the sampled dataset. This could involve concatenation of different networks such as multiple CNNs and LSTMs, which are trained simultaneously.
For the OCR example, instead of trying to classify characters and clustering them into words, it is shown to be a better approach to directly use CNNs to regress the words themselves.
In the optical flow, one could go directly from images to the final flow field, omitting the image difference computations.
In self driving cars, the network can be trained to directly learn how to drive.
In all such examples, the idea is to let the network go from the "raw-est" possible data to the final-most output. This is found to perform better. End-to-end learning reduces the effort of human design and performs better in most applications.