Skip to content

Latest commit

 

History

History
39 lines (21 loc) · 4.3 KB

40_Generalizing_from_the_training_set_to_the_dev_set.md

File metadata and controls

39 lines (21 loc) · 4.3 KB

40 Generalizing from the training set to the dev set

학습, 개발/테스트 데이터셋이 서로다른 분포를 가지는 상황에서 머신러닝을 적용하게 되었다고 가정해 보자. 가령 학습 데이터셋은 인터넷 이미지 + 모바일 이미지로 구성되어 있고, 개발/테스트 데이터셋은 모바일 이미지로만 구성되어 있다. 근데, 알고리즘이 그다지 좋은 결과를 내어 놓지 못한다: 기대한것 보다 개발/테스트 데이터셋에 대한 높은 에러가 나타난다. 무엇때문에 이런 문제가 발생하는지 몇가지 가능성 있는 상황을 아래에 설명한다:

  1. 학습 데이터셋에 대해서 잘 동작하지 못한다. 높은 (피할 수 있는) 편향이 학습 데이터셋의 분포에서 발생하는 문제이다.

  2. 학습 데이터셋에 대해서는 잘 동작한다. 그러나, 학습 데이터셋과 동일한 분포로 부터 선별되었지만 학습 단계에서 보지 못한 데이터에 대해서 일반화가 잘 되지 못한다. 이것은 높은 분산을 의미한다.

  3. 학습 데이터셋과 동일한 분포에서 뽑힌, 그러나 학습 단계에서 아직 접하지 못한 데이터에 대해서 일반화가 잘 되었지만, 개발/테스트 데이터셋의 분포에 대한 데이터에 대해서는 잘 동작하지 못한다. 이러한 문제를 미스매치 라고 부른다. 왜냐하면, 학습 데이터셋이 개발/테스트 데이터셋과 비교해서 매치가 잘 되지 않기 때문이다.

예를 들어서, 사람이 고양이를 인식하는 작업에 대해서 거의 완벽에 가까운 성능을 보여주었다고 생각해 보자. 이때, 알고리즘은 다음 사항을 성취하였다:

  • 학습 데이터에대한 1%의 에러율
  • 알고리즘이 아직 접하지 못한, 학습 데이터와 동일한 분포로 부터 뽑힌 데이터에 대한 1.5%의 에러율
  • 개발 데이터셋에 대한 10%의 에러율

이러한 경우, 데이터의 미스매치 문제가 확실히 존재한다. 이를 해결하기 위해서, 학습 데이터를 개발/테스트 데이터셋과 좀더 비슷한 형태로 만들어 보려고 노력해야 할지도 모른다. 이를 위한 기법을 나중에 소개할 것이다.

어떤 부분 때문에 알고리즘이 위에서 소개된 1-3까지의 문제로 부터 어려움을 격는지 진단하기 위하여, 또 다른 데이터셋을 준비하는 것이 유용할 것이다. 좀 더 자세히 말해보면, 알고리즘에게 학습 데이터의 모든 것을 주는 것 대신에 이를 두 개의 부분 집합으로 나눌 수 있을 것이다: 알고리즘이 학습되어야 하는 실제 학습 대상이 되는 데이터셋과, 학습에 사용되는 것이 아닌 "학습개발" 데이터셋이라고 불리는 분리된 데이터셋

그러면, 이제는 데이터의 4개의 부분 집합이 있게 된다:

  • 학습 데이터셋. 알고리즘이 학습하는데 사용되는 데이터 (앞선 예에서는, 인터넷 이미지 + 모바일 이미지) 로, 알고리즘이 실제로 걱정해야 하는 데이터 (개발/테스트 데이터셋) 와 동일한 분포여서는 안된다.

  • 학습개발 데이터셋. 이 데이터는 학습 데이터셋과 동일한 분포를 가진다 (인터넷 이미지 + 모바일 이미지). 보통 학습 데이터셋 보다는 양이 적은 편이다; 학습 알고리즘의 진행 정도를 추적하고 평가하기에 충분한 정도의 크기면 된다.

  • 개발 데이터셋. 테스트 데이터세소가 동일한 분포를 가지고, 최종적으로 알고리즘이 걱정해야 하는 데이터의 분포를 반영한다 (예를 들어서 모바일 데이터).

  • 테스트 데이터셋. 개발 데이터셋과 동일한 분포를 가진다.

이 4가지 데이터셋으로 무장하면, 다음을 평가할 수 있게 된다:

  • 학습 데이터셋의 사용으로 평가되는 학습 에러.

  • 학습개발 데이터셋의 사용으로, 학습 데이터와 동일한 분포에서 뽑힌 새로운 데이터에 대한 알고리즘의 일반화 능력.

  • 개발/테스트 데이터셋의 사용으로, 가장 걱정해야 하는 데이터에 대한 알고리즘의 성능.

챕터 5-7에 있는 개발 데이터셋의 크기를 선정하기 위한 대부분의 가이드라인은 학습개발 데이터셋에도 적용 가능하다.