자동처리 시스템 / 학습 시스템에서 여러 단계가 필요한 처리 과정을 한 번에 처리하는 것을 말합니다. 데이터를 입력하고 목적을 학습시키는 것이라고 이해하시면 됩니다. 예를 들어 설명하겠습니다.
Ex. Speech Recongnition 시스템 개발
1. 기존의 모델 - Audio -> Feature Extraction -> Phonemes -> Words -> Transcript
2. End-to-End 모델 - Audio -----------------------------------------> Transcript
기존의 모델의 경우에는 음성에서 Feature을 추출하여 머신러닝 알고리즘을 이용해 음소를 알아내고 이 음소들을 이용해 단어를 만들고 Transcript을 만들게 됩니다. 하지만 End-to-End에서는 이런 과정을 생략하고 처리하는 것입니다. Audio만 있으면 한 번에 Transcript을 얻을 수 있습니다. 이렇게 순수 End-to-End말고 Audio에서 Phonemes 단계로 바로 넘어가는 경우처럼 기존의 몇 단계는 넘어가고 어떤 단계는 사용하는 것이 가능합니다. 그러나 이러한 End-to-End Learning을 하기 위해서는 많은 데이터가 필요하게 됩니다.
꼭 그렇지만 않습니다. 단계를 나눠서 학습하는 것이 효율적일 때가 있습니다. 효율적인 경우는 다음과 같습니다.
실제로, 순수 End-to-End보다 문제를 쪼개서 학습하는 것이 효과적이며 좋습니다. 상황에 따라서 어떤 곳에는 End-to-End를 사용하고 다른 어떤 곳에는 단계별로 나아가야 합니다.
Coursera: Structuring Machine Learning Projects (Andrew Ng)