7. 개발셋과 테스트셋의 규모

7. 개발셋과 테스트셋의 규모

개발 데이터셋1은 여러분이 학습시킨 알고리즘들의 차이를 감지할 수 있을 만큼 커야 합니다. 예를 들어서, A 분류기의 정확도는 90.0%이고 B 분류기의 정확도는 90.1%라고 가정해 보겠습니다. 여기에 사용하는 개발 데이터셋의 크기가 100건이라면, 이 개발 데이터셋으로는 두 알고리즘 성능 0.1%의 차이를 감지할 수 없습니다. 지금까지 머신러닝 경험을 생각해보면, 개발 데이터셋으로 데이터 100건1은 너무 작습니다. 개발 데이터셋 크기는 일반적으로 1,000개에서 10,000개가 일반적입니다. 개발 데이터셋으로 10,000 건의 데이터를 사용하면, 0.1% 성능 향상2은 쉽게 감지할 수 있습니다.3

광고, 웹 검색 및 제품 추천과 같이 성숙하고 중요한 애플리케이션의 경우에, 작은 성능 향상도 회사의 이익에 직접적인 영향을 주기 때문에, 0.01% 성능 개선도 개발팀에 큰 동기 부여가 되기도 합니다. 이런 상황이라면, 개발 데이터셋이 훨씬 더 작은 성능 개선을 탐지할 수 있도록 10,000개보다 훨씬 더 크게 만들어야 합니다.

테스트 데이터셋의 크기는 어떨까요? 시스템의 전체 성능에 높은 신뢰성을 제공할 수 있을 만큼 충분히 커야 합니다.4 일반적인 휴레스틱(경험적인) 방법은 전체 데이터의 30%를 테스트 데이터셋으로 사용하는 것입니다. 이런 방식은 전체 데이터가 100개에서 10,000개인 작은 규모에 적합합니다. 그러나 현재는 빅데이터 시대입니다. 10억 개가 넘는 데이터를 머신러닝하는 경우도 있습니다. 이런 상황을 고려하여 최근에는 개발/테스트 데이터셋에 데이터를 나누는 비율이 줄어들고 있습니다. 할당 비율은 줄어들고 있지만 기반 데이터가 매우 크기 때문에 개발 및 테스트 세트의 실제 데이터 수는 늘어나는 상항입니디. 알고리즘 성능을 평가하는 데 필요한 것 이상으로 과도하게 큰 개발 데이터셋과 테스트 데이터셋을 만들 필요는 없습니다.

이 문서는 Andrew NG 교수님께서 집필 중인 Machine Learning Yearning의 7장 번역입니다. 원제는 “7. How large do the dev/test sets need to be?” 입니다. 원문 Ebook은 http://www.mlyearning.org [↗NW] 에서 내려받을 수 있습니다.


  1. <옮긴이> 개발 데이터셋은 알고리즘에 적용되는 파라미터를 개선하는데 사용됩니다. 파라미터 변경이 알고리즘에 미치는 영향을 파악하고자하는 스케일 크기가 개발 데이터셋의 크기를 결정하는 기준이됩니다. [return]
  2. <옮긴이> 개발 데이터셋으로 데이터 10,000건을 사용하면 소수점 2자리 백분률를 구할 수 있습니다. 따라서 소수점 한자리 변화는 쉽게 파악할 수있다는 의미입니다. [return]
  3. 이론적으로, 알고리즘 변경이 개발 세트에 통계적으로 유의미한 차이를 만들면 테스트를 수행할 수도 있습니다. 실무에서는 학문적 연구 논문을 준비하지 않는 한, 이런 작업에 신경을 쓰지 않습니다. 본인도 보통 중간 진척을 측정하는 데 유용한 통계적 중요 테스트를 확인하지 않습니다. [return]
  4. <옮긴이> 개발 데이터셋의 규모는 알고리즘의 정확도를 구분해야 하는 스케일을 기준으로 결정합니다. 테스트 데이터셋의 규모는 알고리즘을 평가하는 신뢰도를 기준으로 결정합니다. 평가 신뢰도가 확보된 상태라면, 학습 데이터셋이 늘어났다고해서, 테스트 데이터셋을 늘릴 필요는 없습니다. [return]
Last updated on 22 Dec 2018 / Published on 22 Dec 2018
김태완 avatar
작성자: 김태완
1999년 부터 Java, Framework, Middleware, SOA, DB Replication, Cache, CEP, NoSQL, Big Data, Cloud를 키워드로 살아왔습니다. 현재는 빅데이터와 Machine Learning을 중점에 두고 있습니다.
E-mail: taewanme@gmail.com

Powered by http://taewan.kim