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

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

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

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

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

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

## 학습용 데이터셋(Training data set)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

검증 데이터 세트와 테스트 데이터 세트가 모두 사용되는 시나리오에서 테스트 데이터 세트는 일반적으로 검증 프로세스 중에 선택된 최종 모델을 평가하는 데 사용된다. 원본 데이터 세트가 두 개의 하위 세트(훈련 및 테스트 데이터 세트)로 분할된 경우 테스트 데이터 세트는 모델을 한 번만 평가할 수 있다(예: 홀드아웃 방법 에서). 일부 출처에서는 이러한 방법을 권장하지 않는다. 그러나 교차 검증 과 같은 방법을 사용하는 경우 편향과 가변성을 줄이는 데 도움이 되도록 모델 학습 및 테스트를 반복한 후 결과를 평균화하므로 두 개의 파티션으로 충분하고 효과적일 수 있다.
가운데|섬네일|700x700픽셀|동일한 통계 모집단의 훈련 집합(왼쪽)과 테스트 집합(오른쪽)이 파란색 점으로 표시되어 있다. 두 개의 예측 모델이 학습 데이터에 적합하다. 두 적합 모델은 모두 훈련 세트와 테스트 세트와 함께 플롯된다. 훈련 집합에서 주황색으로 표시된 적합도의 MSE는 4이고 녹색으로 표시된 적합도의 MSE는 9이다. 테스트 집합에서 주황색으로 표시된 적합도의 MSE는 15이고 녹색으로 표시된 적합도의 MSE는 13이다. 주황색 곡선은 테스트 집합과 학습 집합을 비교할 때 MSE가 거의 4배 증가하므로 학습 데이터에 심각하게 과적합한다. 녹색 곡선은 MSE가 2배 미만으로 증가하므로 훈련 데이터에 훨씬 덜 과적합된다.

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

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

## 같이 보기
* 통계적 분류
* 
* 

## 각주

분류:기계 학습의 데이터 세트