훈련용 검증용 테스트 데이터 세트

위키백과, 우리 모두의 백과사전.

기계 학습(머신러닝)에서 일반적인 작업은 데이터로부터 학습하고 데이터를 예측할 수 있는 알고리즘을 연구하고 구축하는 것이다.[1] 이러한 알고리즘은 입력 데이터로부터 수학적 모델을 구축하여[2] 데이터 기반 예측 또는 결정을 내리는 방식으로 작동한다. 모델을 구축하는 데 사용되는 이러한 입력 데이터는 일반적으로 여러 데이터 세트 로 나뉜다. 특히 모델 생성의 여러 단계에서 훈련, 검증, 테스트 세트라는 세 가지 데이터 세트가 일반적으로 사용된다.

모델은 초기에 모델의 매개변수(예: 인공 신경망의 뉴런 간 연결 가중치)를 맞추는 데 사용되는 예제 세트인 훈련 데이터 세트[3]에 맞춰진다.[4] 모델(예: Naive Bayes 분류기 )은 지도 학습 방법(예: 경사 하강법 또는 확률적 경사 하강법 과 같은 최적화 방법 사용)을 사용하여 훈련 데이터 세트에 대해 훈련된다. 실제로 훈련 데이터 세트는 입력 벡터 (또는 스칼라)와 해당 출력 벡터(또는 스칼라)의 쌍으로 구성되는 경우가 많으며, 여기서 답은 일반적으로 목표 (또는 라벨 )로 표시된다. 현재 모델은 훈련 데이터 세트를 사용하여 실행되고 결과를 생성한 다음 훈련 데이터 세트의 각 입력 벡터에 대해 목표 와 비교된다. 비교 결과와 사용된 특정 학습 알고리즘을 기반으로 모델의 매개변수가 조정된다. 모델 피팅에는 변수 선택 (영어판) 과 매개변수 추정(추정이론 참고)이 모두 포함될 수 있다.

이어서, 적합 모델은 검증 데이터 세트 라는 두 번째 데이터 세트의 관측값에 대한 반응을 예측하는 데 사용된다.[5] 검증 데이터 세트는 모델의 하이퍼파라미터 [6] (예: 신경망의 숨겨진 단위 수(레이어 및 레이어 너비)[7] )를 조정하는 동시에 훈련 데이터 세트에 맞는 모델에 대한 편견 없는 평가를 제공한다. 검증 데이터 세트는 조기 중단 (검증 데이터 세트의 오류가 증가하면 훈련 데이터 세트에 대한 과적합의 신호이므로 훈련 중단)를 통해 정규화에 사용될 수 있다.[8] 이 간단한 절차는 훈련 중에 검증 데이터 세트의 오류가 변동하여 여러 로컬 최소값을 생성할 수 있다는 사실로 인해 실제로 복잡하다. 이러한 복잡성으로 인해 과적합이 실제로 시작된 시기를 결정하기 위한 많은 임시 규칙이 생성되었다.[8]

마지막으로, 테스트 데이터 세트는 훈련 데이터 세트에 맞는 최종 모델에 대한 편견 없는 평가를 제공하는 데 사용되는 데이터 세트이다.[9] 테스트 데이터 세트의 데이터가 훈련(예: 교차 검증 )에 사용된 적이 없는 경우 테스트 데이터 세트를 홀드아웃 데이터 세트 라고도 한다. 일부 문헌에서는 "검증 세트"라는 용어가 "테스트 세트" 대신 사용되는 경우가 있다(예: 원본 데이터 세트가 두 개의 하위 세트로만 분할된 경우 테스트 세트를 검증 세트라고 부를 수 있다.)[9]

학습, 테스트 및 검증 세트에서 데이터 세트 분할의 크기와 전략을 결정하는 것은 사용 가능한 문제와 데이터에 따라 크게 달라진다.[10]

학습용 데이터셋(Training data set)[편집]

학습 데이터 세트는 학습 과정에서 사용되는 예제의 데이터 세트이며 분류기 등의 매개변수(예: 가중치)를 맞추는 데 사용된다.[11][12]

분류 작업의 경우 지도 학습 알고리즘은 훈련 데이터 세트를 살펴보고 좋은 예측 모델링을 생성할 변수의 최적 조합을 결정하거나 학습한다.[13] 목표는 알려지지 않은 새로운 데이터에 잘 일반화되는 훈련된(적합된) 모델을 생성하는 것이다.[14] 적합 모델은 보유 데이터 세트(검증 및 테스트 데이터 세트)의 "새로운" 예시를 사용하여 평가되어 새 데이터를 분류할 때 모델의 정확도를 추정한다.[15] 과적합과 같은 문제의 위험을 줄이려면 검증 및 테스트 데이터 세트의 예를 사용하여 모델을 훈련해서는 안 된다.[15]

경험적 관계에 대해 교육 데이터를 검색하는 대부분의 접근 방식은 데이터에 과적합되는 경향이 있다. 즉, 일반적으로 유지되지 않는 교육 데이터에서 명백한 관계를 식별하고 활용할 수 있다.

검증용 데이터셋(Validation data set)[편집]

검증 데이터 세트는 분류기의 하이퍼파라미터 (예: 아키텍처)를 조정하는 데 사용되는 예제 데이터 세트이다. 개발 세트 또는 "개발 세트"라고도 한다.[16] 인공 신경망의 하이퍼파라미터의 예로는 각 레이어의 숨겨진 유닛 수가 있다.[17][18] 아래 언급된 테스트 세트와 마찬가지로 훈련 데이터 세트와 동일한 확률 분포를 따라야 한다.

과적합을 방지하기 위해 분류 매개변수를 조정해야 하는 경우 훈련 및 테스트 데이터 세트 외에 검증 데이터 세트가 필요하다. 예를 들어 문제에 가장 적합한 분류기를 찾는 경우 훈련 데이터 세트를 사용하여 다양한 후보 분류기를 훈련하고 검증 데이터 세트를 사용하여 성능을 비교하고 어떤 분류기를 선택할지 결정한 다음 마지막으로 테스트 데이터를 결정한다. 세트는 정확도, 민감도, 특이성, F-측정값 등과 같은 성능 특성을 얻는 데 사용된다. 검증 데이터 세트는 하이브리드로 작동한다. 즉, 테스트에 사용되는 훈련 데이터이지만 하위 수준 훈련의 일부나 최종 테스트의 일부로는 사용되지 않는다.

모델 선택을 위해 검증 데이터 세트를 사용하는 기본 프로세스(훈련 데이터 세트, 검증 데이터 세트 및 테스트 데이터 세트의 일부)는 다음과 같다.[19][20]

우리의 목표는 새로운 데이터에서 가장 우수한 성능을 보이는 네트워크를 찾는 것이므로, 다양한 네트워크를 비교하는 가장 간단한 접근 방식은 훈련에 사용된 데이터와 독립적인 데이터를 사용하여 오차 함수를 평가하는 것이다. 훈련 데이터 세트에 대해 정의된 적절한 오차 함수를 최소화하여 다양한 네트워크를 훈련한다. 그런 다음 독립적인 검증 집합을 사용하여 오차 함수를 평가하여 네트워크의 성능을 비교하고, 검증 집합에 대해 오차가 가장 작은 네트워크를 선택한다. 이 접근 방식을 '홀드 아웃' 방법이라고 한다. 이 절차는 그 자체로 검증 집합에 대한 과적합을 초래할 수 있으므로, 선택된 네트워크의 성능은 테스트 집합이라고 하는 세 번째 독립적인 데이터 집합에서 성능을 측정하여 확인해야 한다.


1. 여러 모델을 각각 훈련 데이터셋으로 학습시킨다.

2. 각 모델의 성능을 검증 데이터셋으로 평가한다.

3. 가장 좋은 결과를 보인 모델을 선택한다.

4. 선택된 모델의 최종 성능을 테스트 데이터셋으로 평가한다.

이 프로세스의 적용은 후보 모델이 동일한 네트워크의 연속 반복이고 검증 세트의 오류가 커지면 훈련을 중지하고 이전 모델(오류가 최소인 모델)을 선택하는 조기 중단 과정에 있다.

이 과정의 한 가지 응용은 조기 종료(early stopping)에서 볼 수 있다. 이때 후보 모델들은 동일한 네트워크의 연속적인 반복이며, 검증 세트에서의 오류가 증가할 때 학습을 중단하고, 이전 모델(오류가 최소인 모델)을 선택한다.

테스트용 데이터셋(Test data set)[편집]

테스트 데이터 세트는 훈련 데이터 세트와 확률론적 의미에서의 독립이지만 훈련 데이터 세트와 동일한 확률 분포를 따르는 데이터 세트이다. 훈련 데이터 세트에 맞는 모델이 테스트 데이터 세트에도 잘 맞는 경우 과적합이 최소화된 것이다(아래 그림 참조). 테스트 데이터 세트와 달리 훈련 데이터 세트를 더 잘 맞추는 것은 일반적으로 과적합을 가리킨다.

따라서 테스트 세트는 완전히 지정된 분류기의 성능(즉, 일반화)을 평가하는 데에만 사용되는 예제 세트이다.[21][22] 이를 위해 최종 모델은 테스트 세트의 예제 분류를 예측하는 데 사용된다. 이러한 예측은 모델의 정확도를 평가하기 위해 예제의 실제 분류와 비교된다.[23][24]

검증 데이터 세트와 테스트 데이터 세트가 모두 사용되는 시나리오에서 테스트 데이터 세트는 일반적으로 검증 프로세스 중에 선택된 최종 모델을 평가하는 데 사용된다. 원본 데이터 세트가 두 개의 하위 세트(훈련 및 테스트 데이터 세트)로 분할된 경우 테스트 데이터 세트는 모델을 한 번만 평가할 수 있다(예: 홀드아웃 방법 에서).[25] 일부 출처에서는 이러한 방법을 권장하지 않는다.[24] 그러나 교차 검증 과 같은 방법을 사용하는 경우 편향과 가변성을 줄이는 데 도움이 되도록 모델 학습 및 테스트를 반복한 후 결과를 평균화하므로 두 개의 파티션으로 충분하고 효과적일 수 있다.[26]

동일한 통계 모집단의 훈련 집합(왼쪽)과 테스트 집합(오른쪽)이 파란색 점으로 표시되어 있다. 두 개의 예측 모델이 학습 데이터에 적합하다. 두 적합 모델은 모두 훈련 세트와 테스트 세트와 함께 플롯된다. 훈련 집합에서 주황색으로 표시된 적합도의 MSE는 4이고 녹색으로 표시된 적합도의 MSE는 9이다. 테스트 집합에서 주황색으로 표시된 적합도의 MSE는 15이고 녹색으로 표시된 적합도의 MSE는 13이다. 주황색 곡선은 테스트 집합과 학습 집합을 비교할 때 MSE가 거의 4배 증가하므로 학습 데이터에 심각하게 과적합한다. 녹색 곡선은 MSE가 2배 미만으로 증가하므로 훈련 데이터에 훨씬 덜 과적합된다.

용어의 혼용[편집]

테스트는 그것에 대해 알아내기 위해 무엇인가를 시도하는 것이며(Collaborative International Dictionary of English에 따르면 "증명하기 위해, 실험을 통해 진실성, 진실성 또는 품질을 증명하기 위해") 검증하는 것은 무언가가 타당하다는 것을 증명하는 것이다( "확인하다; 유효하게 하다" 공동 국제 영어 사전). 이러한 관점에서 테스트 세트검증 세트라는 용어의 가장 일반적인 사용은 여기에 설명된 것이다. 그러나 산업계와 학계에서는 내부 프로세스에서 개선을 위해 서로 다른 모델을 테스트하고(개발 세트로서의 테스트 세트) 최종 모델이 실제 사용 전에 검증이 필요한 모델이라는 점을 고려하여 때때로 혼용되어 사용되기도 한다. 보이지 않는 데이터(검증 세트). "기계 학습에 관한 문헌은 '검증'과 '테스트' 세트의 의미를 바꾸는 경우가 많다. 이는 인공 지능 연구에 만연한 용어 혼란의 가장 노골적인 예이다."[27] 그럼에도 불구하고 반드시 지켜야 할 중요한 개념은 테스트든 검증이든 최종 세트는 최종 실험에만 사용해야 한다는 것이다.

교차 검증(Cross-validation)[편집]

보다 안정적인 결과를 얻고 모든 귀중한 데이터를 훈련에 사용하기 위해 데이터 세트를 여러 훈련 및 검증 데이터세트로 반복적으로 분할할 수 있다. 이를 교차 검증 이라고 한다. 모델의 성능을 확인하기 위해 일반적으로 교차 검증에서 제외된 추가 테스트 데이터 세트가 사용된다.

같이 보기[편집]

참조[편집]

  1. Ron Kohavi; Foster Provost (1998). “Glossary of terms”. 《Machine Learning30: 271–274. doi:10.1023/A:1007411609915. 
  2. Bishop, Christopher M. (2006). 《Pattern Recognition and Machine Learning》. New York: Springer. vii쪽. ISBN 0-387-31073-8. Pattern recognition has its origins in engineering, whereas machine learning grew out of computer science. However, these activities can be viewed as two facets of the same field, and together they have undergone substantial development over the past ten years. 
  3. James, Gareth (2013). 《An Introduction to Statistical Learning: with Applications in R》. Springer. 176쪽. ISBN 978-1461471370. 
  4. Ripley, Brian (1996). 《Pattern Recognition and Neural Networks》. Cambridge University Press. 354쪽. ISBN 978-0521717700. 
  5. James, Gareth (2013). 《An Introduction to Statistical Learning: with Applications in R》. Springer. 176쪽. ISBN 978-1461471370. 
  6. Brownlee, Jason (2017년 7월 13일). “What is the Difference Between Test and Validation Datasets?”. 2017년 10월 12일에 확인함. 
  7. Ripley, Brian (1996). 《Pattern Recognition and Neural Networks》. Cambridge University Press. 354쪽. ISBN 978-0521717700. 
  8. Prechelt, Lutz; Geneviève B. Orr (2012년 1월 1일). 〈Early Stopping — But When?〉. Grégoire Montavon; Klaus-Robert Müller. 《Neural Networks: Tricks of the Trade》. Lecture Notes in Computer Science. Springer Berlin Heidelberg. 53–67쪽. doi:10.1007/978-3-642-35289-8_5. ISBN 978-3-642-35289-8. 
  9. Brownlee, Jason (2017년 7월 13일). “What is the Difference Between Test and Validation Datasets?”. 2017년 10월 12일에 확인함. 
  10. “Machine learning - Is there a rule-of-thumb for how to divide a dataset into training and validation sets?”. 《Stack Overflow》. 2021년 8월 12일에 확인함. 
  11. Ripley, B.D. (1996) Pattern Recognition and Neural Networks, Cambridge: Cambridge University Press, p. 354
  12. "Subject: What are the population, sample, training set, design set, validation set, and test set?", Neural Network FAQ, part 1 of 7: Introduction (txt), comp.ai.neural-nets, Sarle, W.S., ed. (1997, last modified 2002-05-17)
  13. Larose, D. T.; Larose, C. D. (2014). 《Discovering knowledge in data : an introduction to data mining》. Hoboken: Wiley. doi:10.1002/9781118874059. ISBN 978-0-470-90874-7. OCLC 869460667. 
  14. Xu, Yun; Goodacre, Royston (2018). “On Splitting Training and Validation Set: A Comparative Study of Cross-Validation, Bootstrap and Systematic Sampling for Estimating the Generalization Performance of Supervised Learning”. 《Journal of Analysis and Testing》 (Springer Science and Business Media LLC) 2 (3): 249–262. doi:10.1007/s41664-018-0068-2. ISSN 2096-241X. PMC 6373628. PMID 30842888. 
  15. Brownlee, Jason (2017년 7월 13일). “What is the Difference Between Test and Validation Datasets?”. 2017년 10월 12일에 확인함. 
  16. “Deep Learning”. 《Coursera》 (영어). 2021년 5월 18일에 확인함. 
  17. Ripley, B.D. (1996) Pattern Recognition and Neural Networks, Cambridge: Cambridge University Press, p. 354
  18. "Subject: What are the population, sample, training set, design set, validation set, and test set?", Neural Network FAQ, part 1 of 7: Introduction (txt), comp.ai.neural-nets, Sarle, W.S., ed. (1997, last modified 2002-05-17)
  19. "Subject: What are the population, sample, training set, design set, validation set, and test set?", Neural Network FAQ, part 1 of 7: Introduction (txt), comp.ai.neural-nets, Sarle, W.S., ed. (1997, last modified 2002-05-17)
  20. Bishop, C.M. (1995), Neural Networks for Pattern Recognition, Oxford: Oxford University Press, p. 372
  21. Ripley, B.D. (1996) Pattern Recognition and Neural Networks, Cambridge: Cambridge University Press, p. 354
  22. "Subject: What are the population, sample, training set, design set, validation set, and test set?", Neural Network FAQ, part 1 of 7: Introduction (txt), comp.ai.neural-nets, Sarle, W.S., ed. (1997, last modified 2002-05-17)
  23. Larose, D. T.; Larose, C. D. (2014). 《Discovering knowledge in data : an introduction to data mining》. Hoboken: Wiley. doi:10.1002/9781118874059. ISBN 978-0-470-90874-7. OCLC 869460667. 
  24. Xu, Yun; Goodacre, Royston (2018). “On Splitting Training and Validation Set: A Comparative Study of Cross-Validation, Bootstrap and Systematic Sampling for Estimating the Generalization Performance of Supervised Learning”. 《Journal of Analysis and Testing》 (Springer Science and Business Media LLC) 2 (3): 249–262. doi:10.1007/s41664-018-0068-2. ISSN 2096-241X. PMC 6373628. PMID 30842888. 
  25. Kohavi, Ron (2001년 3월 3일). “A Study of Cross-Validation and Bootstrap for Accuracy Estimation and Model Selection” 14. 
  26. Brownlee, Jason (2017년 7월 13일). “What is the Difference Between Test and Validation Datasets?”. 2017년 10월 12일에 확인함. 
  27. Ripley, Brian D. (2009). 《Pattern recognition and neural networks》. Cambridge Univ. Press. Glossary쪽. ISBN 9780521717700. OCLC 601063414.