인공지능 모델을 학습할 때, 보통 데이터를 train set과 test set으로 나누어 수행한다. train set로 모델을 훈련하고, test set으로 모델을 검증하는 것이다.
하지만 이렇게 할 경우 한 가지 문제가 발생할 수 있다. 고정된 test set으로 성능을 검증&수정하는 과정을 반복할 경우, 해당 모델은 test set에만 잘 작동하는 모델이 될 수 있다. 즉 test set에 overfitting된다.
이런 문제를 해결하기 위해 사용하는 것이 바로 Cross Validation이다.
Cross Validation은 train set을 다시 한 번 train set + validation set으로 나누어 학습 중 검증과 수정을 하는 것을 의미한다.
이를 통해 데이터 편중을 막을 수 있고, 적은 데이터로도 정확도를 향상시킬 수 있다.
단, iteration 횟수가 많아, 훈련과 평가에 시간이 오래 걸리는 편이다.
K-Fold Cross Validation은 가장 일반적인 교차검증 방법이다.
K-Fold 교차 검증은 아래와 같은 구조로 이루어진다.