Skip to content

Latest commit

 

History

History
11 lines (6 loc) · 3.06 KB

42_Addressing_data_mismatch.md

File metadata and controls

11 lines (6 loc) · 3.06 KB

42 Addressing data mismatch

음성인식 시스템을 개발했다고 가정해 보자. 이 음성인식 시스템은 학습 데이터셋와 학습개발 데이터셋에 대해서 아주 잘 작동한다. 그런데, 개발 데이터셋에 대해서는 그렇지 못한 상황이다: 데이터 미스매치 문제가 있다. 이럴때 뭘 하면 좋을까?

다음과 같은 것을 시도하기를 추천한다. (i) 학습 데이터셋과 개발 데이터셋의 분포를 다르게 만드는 데이터의 속성이 무엇인지를 이해하려고 노력해 보자. (ii) 알고리즘 성능에 문제가 되는 개발 데이터셋의 데이터들과 더 비슷한 형태의 데이터를 학습 데이터셋으로서 더 많이 모으기를 노력해 보자.

예를 들어서, 개발 데이터셋에 대하여 음성 인식 알고리즘이 보이는 에러에 대한 에러 분석을 수행한다고 가정해 보자: 수작업으로 100개의 예제 데이터를 살펴보고, 알고리즘이 어느부분에서 실수를 일으키는지를 이해하려고 노력하게 된다. 개발중인 시스템이 잘 동작하지 않은 이유가 개발 데이터셋에 포함된 대부분의 오디오 클립이 자동차 안에서 녹음된 것이라는 것을 발견할 수도 있겠다. 엔진과 외부의 노이즈낀 소리가 음성인식 시스템의 성능을 급격하게 나쁘게 만들 수 있을 것이다. 이러한 경우에는, 자동차 속에서 녹음된 오디오 클립을 학습 데이터에 더 많이 포함 시키는 노력을 해볼 수 있다. 에러 분석의 목적은 학습 데이터셋과 개발 데이터셋 사이의 커다란 차이점을 이해하는 것이다. 이러한 차이점이 데이터 미스매치라는 결과를 가져온다.

만약에 학습 데이터셋과 학습개발 데이터셋이 자동차 속에서 녹음된 오디오 클립을 포함한다면, 이 데이터의 부분집합에 대한 시스템의 성능을 재차 확인해 봐야만 한다. 학습 데이터셋에 포함된 자동차 속에서 녹음된 데이터에 대해서 잘 동작하지만, 학습개발 데이터셋에 포함된 자동차 속에서 녹음된 데이터에 대해서는 그렇지 않다면, 이 사실은 더 많은 자동차 속에서 녹음된 오디오 클립을 구해보는 것이 도움이 된다는 가정을 보다 타당성 있게 만들어 준다. 이것이 바로 학습 데이터셋에 포함된 몇몇 데이터가 에 개발/테스트 데이터셋과 동일한 분포에 포함될 가능성에 대해서 논의한 이유이다 (앞 챕터에서 다뤄진 것). 이렇게 하면, 개발 데이터셋에 포함된 자동차 속에서 녹음된 데이터와, 개발/테스트 데이터셋에 포함된 자동차 속에서 녹음된 데이터 각각에 대하여 알고리즘의 성능을 비교해 볼 수 있게 해준다.

불행하게도 이 과정에 대해서 어떠한 보장도 할 수 없다. 예를 들어서, 개발 데이터셋에 근접하는 더 많은 학습 데이터를 구할 방법이 없다면, 성능 향상을 향한 확실한 방향을 설정할 수 없을지도 모른다.