답변:
다음 상황을 고려하십시오.
지하철을 타서 내 사무실로 가고 싶습니다. 내 계획은 내 차를 타고 지하철에 주차 한 다음 기차를 타고 내 사무실로가는 것입니다. 나의 목표는 매일 오전 8시 15 분에 열차를 타서 정시에 사무실에 도착하는 것입니다. 다음 사항을 결정해야합니다. (a) 집을 떠나야하는 시간 및 (b) 역으로 운전하기 위해 취할 경로.
위의 예에서는 두 가지 매개 변수 (예 : 집에서 출발하는 시간과 역으로가는 경로)가 있으며 오전 8시 15 분까지 역에 도착하도록 이러한 매개 변수를 선택해야합니다.
위의 문제를 해결하기 위해 월요일, 수요일 및 금요일에 다른 '매개 변수'(즉, 출발 및 경로 시간의 다른 조합)를 시도하여 어떤 조합이 '최고의'조합인지 확인할 수 있습니다. 아이디어는 일단 최고의 조합을 확인한 후에는 매일 사용할 수있어 목표를 달성 할 수 있다는 것입니다.
과적 합 문제
위의 접근 방식의 문제점은 내가 과도하게 맞을 수 있다는 것입니다. 이는 본질적으로 내가 식별 한 최상의 조합이 어떤 의미에서 월, 수 및 금요일에 고유 할 수 있으며 그 조합이 Tue 및 Thu에 작동하지 않을 수 있음을 의미합니다. 시간과 경로의 최상의 조합을 검색 할 때 화 / 목 / 금에 발생하지 않는 Mon / Wed / Fri의 교통 상황을 악용하면 과적 합이 발생할 수 있습니다.
과적 합에 대한 하나의 솔루션 : 교차 검증
교차 검증은 과적 합에 대한 하나의 솔루션입니다. 아이디어는 최적의 매개 변수 조합 (이 경우 시간 및 경로)을 식별 한 후 다른 컨텍스트에서 해당 매개 변수 집합의 성능을 테스트한다는 것입니다. 따라서 우리는 선택이 그 당시에도 제대로 작동하는지 확인하기 위해 Tue와 Thu를 테스트하고 싶을 수도 있습니다.
통계에 비유 확장
통계적으로 비슷한 문제가 있습니다. 우리는 종종 알려지지 않은 미지의 파라미터를 추정하기 위해 제한된 데이터 세트를 사용합니다. 만약 우리가 과적 합하면 우리의 모수 추정값은 기존 데이터에 대해서는 잘 작동하지만 다른 상황에서 사용할 때는 적합하지 않습니다. 따라서 교차 검증은 모수 추정치가 추정치에 사용 된 데이터에 고유하지 않다는 확신을 제공함으로써 위의 과적 합 문제를 피하는 데 도움이됩니다.
물론, 교차 검증은 완벽하지 않습니다. 지하철의 예로 돌아가서 교차 유효성 검사 후에도 다양한 문제 (예 : 건설, 시간 경과에 따른 교통량 변화 등)로 인해 1 개월 동안 최선의 매개 변수 선택이 작동하지 않을 수 있습니다.
나는 이것이 다음 그림 과 함께 가장 잘 설명되어 있다고 생각합니다 (이 경우 k- 겹 교차 검증).
교차 검증은 특히 데이터 양이 제한 될 수있는 경우 예측 모델에서 과적 합을 방지하기 위해 사용되는 기술입니다. 교차 유효성 검사에서는 고정 된 수의 데이터 접기 (또는 파티션)를 만들고 각 접기에 대해 분석을 실행 한 다음 전체 오류 추정의 평균을 구합니다.
어떤 과정을 조사한다고 가정 해 봅시다. 이를 설명하는 데이터를 수집했으며 모델을 작성했습니다 (통계 또는 ML은 중요하지 않음). 그러나 지금, 그것이 정상인지 판단하는 방법? 아마도 그것은 그것이 구축 된 데이터에 의심스럽게 적합하기 때문에 아무도 당신의 모델이 당신이 생각하기에 너무 훌륭하다고 생각하지 않을 것입니다.
첫 번째 아이디어는 데이터의 하위 집합을 분리하고이를 사용하여 나머지 데이터에 대한 방법으로 모델 빌드를 테스트하는 것입니다. 이제 결과는 확실히 과적 합하지 않고 그럼에도 불구하고 (특히 작은 세트의 경우) 더 운이 적고 테스트하기가 더 간단한 사례가 될 수 있으므로 예측하기가 더 어려워집니다. 오차 / 양호 추정치는 분포에 대해 아무것도 모르기 때문에 모델 비교 / 최적화에는 쓸모가 없습니다.
확실하지 않은 경우에는 무차별 대입을 사용하므로 위의 프로세스를 복제하고 정확도 / 오류 / 양호에 대한 몇 가지 추정치를 수집하여 평균화하면 교차 검증이 가능합니다. 더 나은 추정치 중에서도 히스토그램을 얻을 수 있으므로 분포를 근사화하거나 일부 비모수 적 검정을 수행 할 수 있습니다.
그리고 이것입니다; 테스트 트레인 분할의 세부 사항은 CV 유형이 다른 이유이지만, 드문 경우와 작은 강도 차이를 제외하고는 동일합니다. 실제로 그것은 방탄 공정 방법이기 때문에 큰 이점입니다. 그것을 속이는 것은 매우 어렵다.
교육 시점에 테스트 데이터에 액세스 할 수없고 보이지 않는 테스트 데이터에서 모델이 잘 작동하기를 원하기 때문에 작은 부분을 반복적으로 서브 샘플링하여 일부 테스트 데이터에 액세스 할 수 있다고 가정합니다. 학습 데이터를 학습하고 모델을 학습하는 동안이 세트를 보유한 다음 보류 된 세트를 테스트 데이터에 대한 프록시로 취급합니다 (보류 된 데이터에서 최상의 성능을 제공하는 모델 매개 변수 선택). 학습 데이터에서 다양한 하위 집합을 무작위로 샘플링하여 테스트 데이터처럼 보이게 만들 수 있기를 희망하므로 학습 된 모델 매개 변수는 테스트 데이터 (예 : 모델)에도 적합합니다. 보이지 않는 데이터에 대해 잘 일반화합니다).