49 Pros and cons of end-to-end learning
이전 챕터에서 보여준 음성인식의 “파이프라인” 시스템의 예를 다시 한번 살펴보자:
이 파이프라인의 많은 부분들이 “사람의 손으로 엔지니어링된” 것들이다:
- MFCCs는 사람의 손으로 디자인된 오디오 feature의 집합이다. 비록 이 집합이 오디오 입력에 대한 합리적인 요약을 나타낼 지라도, 이 집합이 몇몇 중요한 정보를 버리기도 할 수 있는 일이다.
- 음소들은 언어학자들이 발명한 것이다. 음소는 사람의 말 소리의 완벽하지 못한 표현 방법이다. 음소들은 현실의 부족한 근사치를 나타내는 범위로, 알고리즘으로 하여금 강제로 이 음소를 사용하게 하는 것은 음성 시스템의 성능에 제한적인 결과를 가져온다.
이렇게 사람의 손으로 엔지니어링된 컴포넌트는 음성 시스템의 잠재적인 성능에 한계를 부여할 수 있다. 하지만, 이러한 컴포넌트는 몇몇 이점 또한 가지고 있다:
- MFCC features는 음성이 가지는 몇몇 속성에 대해서 강점을 가지는데, 이 속성들은 말하는 사람의 톤과 같은 음성의 컨텐츠에는 영향을 끼치지 않는다. 이렇게, MFCC features는 학습알고리즘이 풀어야 하는 문제를 간소화하여 도움을 주게 된다.
- 음소는 소리를 합리적으로 나타내는 범위로, 학습 알고리즘으로 하여금 소리를 이루는 컴포넌트의 기초를 이해할 수 있게 도와준다. 그래서, 성능 향상을 가져올 수 있다.
사람 손으로 엔지니어링된 컴포넌트를 더 많이 사용하면 일반적으로 음성 시스템이 비교적 더 적은 데이터로도 학습 할 수 있게 된다. MFCC와 음소로 부터 인식되는 사람 손으로 엔지니어링된 지식은 알고리즘이 데이터로부터 알아내야하는 지식의 보충의 의미라고 볼 수 있다. 충분한 데이터가 없는 상황이라면, 이러한 지식은 꽤나 유용할 수 있다.
이번에는 End-to-End 시스템을 한번 고려해보자:
이 시스템에서는 사람 손으로 엔지니어링된 지식이 부족하다. 따라서, 학습 데이터셋이 작은 경우에는, 사람 손으로 엔지니어링된 파이프라인보다 더 좋지 않은 결과를 도출할 지도 모른다.
하지만, 학습 데이터셋이 거대하다면, MFCC나 음소 기반의 표현에서 발견되는 한계점들로부터 방해받지 않게 된다. 학습 알고리즘이 거대하고, 충분한 학습 데이터를 통해 학습 되었다면, 매우 좋은 결과를 보여줄 가능성이 있으며 최적의 에러율까지 도달할 가능성 까지도 있다.
End-to-End 학습 시스템은 충분한 레이블링된 데이터가 있을때 “각각의 End”인, 입력의 End와 출령의 End에 대해서 잘 동작하는 경향이 있다. 여기 예제에서는 (오디오, 이 오디오가 글로 옮겨진 문장) 페어로 이루어진 거대한 데이터셋을 요구한다. 이 데이터가 없다면, End-to-End 학습을 사용할때 큰 주의를 기울여야 할 것이다.
만약 학습 데이터셋이 매우 적은 경우에 기계학습을 적용하려고 한다면, 알고리즘의 대부분의 지식은 사람의 통찰력으로부터 오는 것들이어야만 한다. 예를 들어서, “사람 손으로 엔지니어링된” 컴포넌트와 같이 말이다.
End-to-End 시스템을 사용 안하기로 결정 했다면, 계획하는 파이프라인의 각각의 단계를 설정해야만 하고, 어떻게 이전 단계가 다음단계와 연결되는지를 디자인 해야만 한다. 다음 몇 챕터에서는 이러한 파이프라인을 디자인하기 위한 몇가지 제안점을 주고자 한다.