[Recommend] K-Fold Cross Validation(CV, 교차 검증)의 개념

Recorder·2021년 7월 24일

1. Cross validation 이란?

A. 필요성

인공지능 모델을 학습할 때, 보통 데이터를 train set과 test set으로 나누어 수행한다. train set로 모델을 훈련하고, test set으로 모델을 검증하는 것이다.

하지만 이렇게 할 경우 한 가지 문제가 발생할 수 있다. 고정된 test set으로 성능을 검증&수정하는 과정을 반복할 경우, 해당 모델은 test set에만 잘 작동하는 모델이 될 수 있다. 즉 test set에 overfitting된다.

이런 문제를 해결하기 위해 사용하는 것이 바로 Cross Validation이다.

B. 개념

Cross Validation은 train set을 다시 한 번 train set + validation set으로 나누어 학습 중 검증과 수정을 하는 것을 의미한다.
이를 통해 데이터 편중을 막을 수 있고, 적은 데이터로도 정확도를 향상시킬 수 있다.

단, iteration 횟수가 많아, 훈련과 평가에 시간이 오래 걸리는 편이다.

2. K-Fold Cross Validation(k-겹 교차 검증) 이란?

K-Fold Cross Validation은 가장 일반적인 교차검증 방법이다.

K-Fold 교차 검증은 아래와 같은 구조로 이루어진다.

  1. 먼저 전체 data set을 Train Set과 Test Set으로 나눈다.
  2. 그 중 Train Set을 k개의 Fold로 나눈다.
  3. 첫 번째 Fold를 Validation Set으로, 나머지 폴드들을 Train Set으로 사용해서 훈련 및 평가를 한다.
    A. Train Set(나머지 폴드)로 학습하고, Validation Set(첫 폴드)로 평가한다.
  4. 차례대로 다음 폴드를 Validation Set으로 사용해서, 3-A와 같은 과정을 반복한다.
  5. 총 k개의 테스트 결과나 나오며, 이 k개의 평균이 해당 모델의 성능으로 판단한다.
profile
기억은 나 대신 컴퓨터가

0개의 댓글