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

recoder·2021년 7월 24일
0

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개의 댓글