티스토리 뷰

Study/AI

[MLY] end-to-end 학습의 장단점

생각많은 소심남 2018. 10. 12. 09:43

 이전 예와 동일한 음성 파이프라인을 고려해보자.

위의 파이프라인의 대부분 요소들은 "수동적으로 조절되어야 한다(hand-engineered):

 - MFCC는 일종의 수동적으로 생성되는 음성 특징의 집합체이다. 비록 이 정보들이 음성 입력으로부터 의미있는 정보를 제공하기는 하나, 한편으로는 몇몇 정보를 제거함으로 인해서 입력 데이터를 단순화시킬 수도 있다.

 - 음소는 언어학자들이 만들어낸 발명품과 같다. 사실 이것들은 음성 상에서 약간 불완전한 요소이기도 하다. 음소가 실제 음성을 근사하기에게 부족한 부분이 있기에, 이를 알고리즘에 반영하면 실제 음성 시스템의 성능을 제한시킬 수도 있다.

 이런 수동적인 요소들이 시스템의 잠재적인 성능을 제한시킬 수 있다. 하지만 이런 수동적인 요소들도 몇몇 장점을 가지고 있기도 하다:

 - MFCC는 화자의 음정(pitch)와 같이 내용에 영향을 미치지 않는 몇몇 특성에 대해서 쉽게 변하지 않는(robust) 특징을 가지고 있다. 그렇기에 학습 알고리즘 입장에서는 문제를 단순화시키는데 도움이 된다.

 - 음소가 음성에 대한 의미있는 정보를 담고 있다는 부분을 확장시켜서, 학습 알고리즘이 기본적인 소리 요소에 대해서 이해하는데 도움을 주고 궁극적으로는 성능을 향상시킬 수 있다.

이런 수동적 요소들을 더 많이 가지게 되면 일반적으로 음성 시스템이 적은 데이터 만으로도 학습시킬 수 있게 된다. MFCC와 음소로부터 얻어진 수동적으로 생성되는 지식들은 학습 알고리즘에게 데이터로부터 얻을 수 있는 데이터를 조금더 보충해주는 역할을 하게 된다. 만약 데이터가 부족한 상황이라면, 이런 지식들은 도움이 될 수 있다.

 이제 end-to-end 시스템을 고려해보자:

 위 시스템은 수동적으로 생성되는 지식들이 빠져있다. 그렇기 때문에 학습 데이터 군이 적을 경우에는 앞에서 소개한 손으로 직접 설계된 파이프라인 구조보다 더 안 좋게 동작할 수 있다.

 하지만 만약 학습 데이터가 많이 있다면, 굳이 MFCC나 음소 기반의 정보로 인해 걸리는 제한에 방해받을 필요가 없다. 만약 학습 알고리즘이 충분히 큰 신경망으로 구성되어 있고, 충분한 학습 데이터로 학습된다면, 아마 잘 동작할 것이고, 어쩌면 이상적인 오류율에 도달할 것이다.

  End-to-end 학습 시스템은 "양끝단"(보통 입력 끝단과 출력 끝단을 말한다)상에서 라벨링된 데이터가 많을 때 잘 동작하는 경향이 있다. 위의 예제에서는 아마 (음성 데이터와 번역된 결과) 쌍으로 구성된 데이터가 많이 필요하다. 이런 형식의 데이터를 사용하기 어려운 상황이라면, end-to-end 학습을 적용하는 것은 굉장히 조심해야 한다.

 만약 학습 데이터가 매우 작은 상황에서 머신 러닝 문제를 풀어야 한다면, 사용해야할 알고리즘의 기반 지식의 대부분은 당신이 "손으로 직접 다루는" 요소와 같이 인간이 느끼는 직감으로부터 나와야만 한다.

 만약 end-to-end 시스템을 사용하지 않는다면, 파이프라인 상에서 어떤 과정을 거쳐할 것이며, 어떤 과정을 서로 연관시킬 것인지를 결정해야 한다. 다음 포스트에서는 파이프라인을 설계하는데 있어 몇가지 제안을 해보고자 한다.

< 해당 포스트는 Andrew Ng의 Machine Learning Yearning 중 chapter 49. Pros and cons of end-to-end learning를 번역한 내용입니다.>

댓글