검증 세트와 테스트 세트를 모두 사용하는 이유는 무엇입니까?


17

신경망을 고려하십시오.

주어진 데이터 세트에 대해 훈련, 검증 및 테스트 세트로 나눕니다. 고전적인 60:20:20 비율로이를 수행 한 다음 유효성 검사 세트에서 네트워크를 확인하여 과적 합을 방지합니다. 그렇다면 성능을 확인하기 위해 테스트 세트에서 테스트해야합니까?

테스트 세트의 오류는 네트워크에 대한 유효성 검사 세트와 다소 같지 않습니까? 유효성 검사 세트와 같이 보이지 않는 데이터이며 둘 다 숫자가 동일합니까?

대신 테스트 세트를 병합하여 훈련 세트를 늘릴 수 없어서 더 많은 훈련 데이터와 네트워크가 더 잘 훈련 된 다음 유효성 검사 세트를 사용하여 과적 합을 방지 할 수 있습니까? 왜 이러지 않습니까?


4
동일한 것을 원하지만 하이퍼 파라미터 최적화 및 조기 중지를 위해 터치했기 때문에 확실하지 않으므로 처녀 테스트 세트가 필요합니다.
Emre

@Emre 그러나 가중치는 검증 세트가 아닌 훈련 세트를 기반으로 조정되므로 테스트 및 검증 세트의 결과가 다르지 않아야합니다.
user1825567

아니요. 교육 세트에 따라 조정되지 않습니다. 그것은 일반적인 매개 변수입니다.
Emre

답변:


23

성능이 일련의 하이퍼 파라미터에 의존하는 모델을 학습한다고 가정 해 봅시다. 신경망의 경우, 이들 파라미터는 예를 들어 학습 속도 또는 훈련 반복 횟수 일 수있다.

하이퍼 파라미터 값을 선택하면 훈련 세트를 사용 하여 모델을 훈련시킵니다. 그러나 하이퍼 파라미터의 값을 어떻게 설정합니까? 이것이 검증 세트의 목적입니다. 이를 사용하여 하이퍼 파라미터 값의 다양한 조합 (예 : 그리드 검색 프로세스)에 대한 모델의 성능을 평가하고 최상의 훈련 된 모델을 유지할 수 있습니다.

그러나 선택한 모델과 다른 모델을 어떻게 비교합니까? 신경망이 동일한 훈련 / 테스트 데이터 조합으로 훈련 된 임의의 포리스트보다 성능이 우수합니까? 해당 유효성 검사 세트는 모델 피팅의 일부이므로 유효성 검사 세트를 기준으로 비교할 수 없습니다. 하이퍼 파라미터 값을 선택하는 데 사용했습니다!

테스트 세트는 당신이 당신의 교육 / hyperparameter 선택 과정의 일부에 사용되지 않은 데이터에 비교를 근거로하여, 편견 방법으로 다른 모델을 비교할 수 있습니다.


11

테스트 세트와 교차 검증 세트의 목적은 다릅니다. 둘 중 하나를 삭제하면 다음과 같은 이점이 사라집니다.

  • 교차 검증 세트는 과적 합을 탐지하고 하이퍼 파라미터 검색을 지원하는 데 사용됩니다.

  • 테스트 세트는 모델의 성능을 측정하는 데 사용됩니다.

교차 검증 세트를 사용하여 모델의 성능을 정확하게 측정 할 수는 없습니다. 수백 가지의 매개 변수에 대해 최상의 메트릭을 얻기 위해 결과를 조정 하기 입니다. 따라서 교차 검증 결과는 너무 낙관적 일 수 있습니다.

같은 이유로 교차 검증 세트를 삭제하고 하이퍼 파라미터를 선택하기 위해 테스트 세트를 사용할 수 없습니다. 모델의 성능을 과대 평가하는 것이 거의 보장됩니다. 이상적인 세계에서는 테스트 세트를 한 번만 사용하거나 "중립"방식으로 사용하여 다른 실험을 비교하십시오.

교차 검증하고 최상의 모델을 찾은 다음 훈련 할 테스트 데이터를 추가하면 가능합니다. (일부 상황에서 아마도 매우 가능성) 모델이 향상 될 것입니다. 그러나 실제로 이러한 상황이 발생했는지 여부를 확인할 수있는 방법이 없으며 새로운 성능이 무엇인지에 대한 편견없는 추정값이 없습니다.

많은 Kaggle 경쟁을 목격 한 결과, 제 경험은 테스트를 과도하게 사용하여 테스트 세트를 튜닝하는 것이 실제적인 일이며 이러한 경쟁에 큰 영향을 미친다는 것입니다. 공개 리더 보드를 올라가서 테스트에서 최고의 모델 (공개 리더 보드는 사실상 테스트 세트 임)을 선택한 반면, 교차 검증에 대해서는 철저하지 않은 경쟁자 그룹이 종종 있습니다. . . 새로운 경쟁자가 끝날 때이 경쟁자들은 순위표를 내립니다.

합리적인 방법 중 하나는 테스트하기 전에 찾은 하이퍼 파라미터를 사용하여 데이터를 재사용 (트레이닝 + cv)하여 재사용하는 것입니다. 이렇게하면 더 많은 데이터를 학습 할 수 있으며 결국에도 독립적 인 성능 측정 값을 얻을 수 있습니다.

교차 검증에서 더 많은 것을 얻으려면 일반적인 접근 방식은 k-fold cross validation 입니다. Kaggle 경쟁에서 일반적인 트릭은 k- 폴드 교차 검증을 사용하고 데이터를 더 큰 (train + cv) 훈련 세트로 재결합하는 대신 cv 결과를 메타 모델로 앙상블하거나 쌓는 것입니다.

마지막으로, 검증 및 테스트를위한 분할이 데이터 세트 내에서 가능한 상관 관계에 대해 강력한 지 항상 확인하십시오.


1
"데이터 세트 내에서 가능한 상관 관계에 대해 견고하다"는 무슨 뜻입니까?
user6903745
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.