왜 세 개의 파티션입니까? (훈련, 검증, 테스트)


61

모델을 대규모 데이터 세트에 맞추려고 할 때 일반적인 조언은 데이터를 교육, 검증 및 테스트 데이터 세트의 세 부분으로 분할하는 것입니다.

이는 일반적으로 모델에 세 가지 "수준"매개 변수가 있기 때문입니다. 첫 번째 "매개 변수"는 모델 클래스 (예 : SVM, 신경망, 임의 포리스트)이고 두 번째 매개 변수 세트는 "규정 화"매개 변수 또는 "하이퍼 매개 변수"( 예를 들어 올가미 페널티 계수, 커널 선택, 신경망 구조) 및 세 번째 세트는 일반적으로 "매개 변수"(예 : 공변량에 대한 계수)로 간주됩니다.

모델 클래스와 하이퍼 파라미터의 선택이 주어지면 훈련 세트의 오류를 최소화하는 파라미터를 선택하여 파라미터를 선택합니다. 모델 클래스가 주어지면 검증 세트의 오류를 최소화하여 하이퍼 파라미터를 조정합니다. 테스트 세트에서 성능별로 모델 클래스를 선택합니다.

그러나 왜 더 많은 파티션이 아닌가? 하이퍼 파라미터를 두 그룹으로 나누고 "validation 1"을 사용하여 첫 번째에 맞추고 "validation 2"를 사용하여 두 번째에 맞출 수 있습니다. 또는 훈련 데이터 / 유효 데이터 분할의 크기를 조정될 하이퍼 파라미터로 취급 할 수도 있습니다.

이것은 이미 일부 응용 프로그램에서 일반적인 관행입니까? 최적의 데이터 파티셔닝에 대한 이론적 연구가 있습니까?

답변:


79

먼저 세 파티션이하는 일에 대해 착각했다고 생각합니다. 테스트 데이터를 기반으로 선택하지 않습니다. 알고리즘은 학습 데이터를 기반으로 매개 변수를 조정합니다. 그런 다음 유효성 검사 데이터에서이를 실행하여 알고리즘과 훈련 된 매개 변수를 비교하고 승자를 결정합니다. 그런 다음 테스트 데이터에서 승자를 실행하여 실제 환경에서 얼마나 잘 수행되는지 예측할 수 있습니다.

훈련 데이터는 모델에 비해 적합하기 때문에 검증하지 않습니다. 유효성 검사 단계에서 승자를 얻기 위해 항목을 반복적으로 조정했기 때문에 유효성 검사 단계의 승자 점수에서 멈추지 않으므로 독립적 인 테스트 (구체적으로 조정하지 않은)가 필요합니다. 현재 경기장 밖에서 얼마나 잘 할 수 있을지에 대한 아이디어.

둘째, 여기서 한 가지 제한 요소는 데이터의 양입니다. 대부분의 경우 데이터를 고정 파티션으로 분할하고 싶지 않기 때문에 CV도 마찬가지입니다.


2
내가 가진 개념적 문제는 충분한 모델을 비교하는 경우 유효성 검사 데이터를 사용하여 "승자를 결정할 때"유효성 검사 데이터에 효과적으로 적합하다는 것입니다. 따라서 여전히 유효성 검사 데이터를 분할하는 데 문제가있을 수 있습니다.
charles.y.zheng

교육 유효성 검사 계층과 유효성 검사 테스트 계층은 어떤 의미에서 다른 목적으로 사용되며 승자를 선언하려면 공통 유효성 검사 세트에서 모델을 비교해야한다고 생각합니다. 추가 레이어가 도움이 될지 확실하지 않습니다. (내 지식은 충분히 알기에는 충분하지 않습니다.) 귀하의 제안에 가장 근접하게 생각할 수있는 것은 Netflix 경쟁이 어떻게 진행되었는지입니다. 팀이 테스트 세트 그라디언트를 등반하지 못하게하기 위해 부분 테스트 세트를 사용했다고 생각하지만 다릅니다.
Wayne

2
@ user10882, 귀하의 의견이 정확하지 않으며 Firebugs도 아닙니다. (1) 모델 매개 변수 (가중치, 임계 값) 및 (2) 이른바 "하이퍼"매개 변수 (숨겨진 층 수, 결정 트리 수)는 해석과 느낌이 크게 다를 수 있지만 모두 서로 다른 매개 변수 일뿐입니다. 모델 . 훈련 데이터를 사용하여 모든 것을 최적화하고, 검증 데이터를 사용하여 과적 합을 피하고 교차 검증을 사용하여 결과가 안정적인지 확인하십시오. 테스트 데이터는 모델의 예상 성능을 지정하는 데만 사용되며, 모델을 수락 / 거부하는 데 사용하지 마십시오.
Ytsen de Boer

1
@ RubenvanBergen : 나는 당신이 말하는 것을 이해하고 user10882를 지적하는 것이 좋고 유용합니다. 그러나 나는 그것이 궁극적으로 기술이라고 주장한다. 훈련 데이터를 사용하여 단계 방향 (다항식도 포함)을 추정하는 기울기 하강 알고리즘을 사용하여 기울기 하강 알고리즘의 각 단계에서 훈련 손실에 검증 손실을 추가하는 검증 절차와 함께 (초기와 유사 함) 멎는). 이제 "정상"또는 "하이퍼"의 차이점은 더 이상 관련이 없습니다. 절차에 따라 다릅니다. n
Ytsen de Boer

1
@YtsendeBoer : 충분합니다. 유효성 검사 기반의 조기 중지와 같은 sth를 사용하면 적어도 최적화 절차 측면에서 경계가 흐려집니다. 내 생각에 이것은 "하이 파라미터"의 개념을 일반적인 것의 개념과 완전히 병합하지 않습니다. 여전히 다르게 취급되는 상황이 많이 있으며 모델 정의에서의 역할 측면에서 다르게 생각합니다. 어쨌든, 나는이 토론이 다른 사람들에게이 개념들 사이의 (미묘한) 차이점과 유사점을 설명하는데 도움이 되길 바랍니다.
Ruben van Bergen

0

이것은 흥미로운 질문이며 @Wayne의 답변에 도움이된다는 것을 알았습니다.

내 이해에서 데이터 세트를 다른 파티션으로 나누는 것은 작성자의 목적과 실제 응용 프로그램의 모델 요구 사항에 달려 있습니다.

일반적으로 훈련과 테스트라는 두 가지 데이터 세트가 있습니다. 훈련은 모델의 매개 변수를 찾거나 모델에 맞추는 데 사용됩니다. 테스트는 보이지 않는 데이터 (또는 실제 데이터)에서 모델의 성능을 평가하는 데 사용됩니다.

교육에서 한 단계 만 수행하면 교육 및 테스트 (또는 검증) 프로세스가 있음이 분명합니다.

그러나이 방법을 사용하면 모델이 하나의 데이터 집합으로 한 번 훈련 될 때 과적 합 문제가 발생할 수 있습니다. 이것은 실제 문제에서 모델의 불안정성을 초래할 수 있습니다. 이 문제를 해결하는 한 가지 방법은 교육 데이터 세트에서 모델을 교차 검증 (CV)하는 것입니다. 즉, 훈련 데이터 세트를 다른 접기로 나누고 다른 접기로 훈련 된 모델을 테스트하기 위해 한 배를 유지합니다. 승자는 이제 전체 CV 프로세스에서 최소한의 손실 (자신의 목적 함수를 기반으로)을 제공하는 사람입니다. 이런 식으로 우리는 훈련 과정에 지나치게 적합 할 가능성을 최소화하고 올바른 승자를 선정 할 수 있습니다. 보이지 않는 데이터에서 승자를 평가하는 데 테스트 세트가 다시 사용됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.