Recent Posts
Recent Comments
Archives
반응형
250x250
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today
Yesterday

Total
05-19 00:00
관리 메뉴

Hey Tech

[머신러닝] 교차검증(Cross-validation) 필요성 및 장단점 본문

AI & 빅데이터/머신러닝·딥러닝

[머신러닝] 교차검증(Cross-validation) 필요성 및 장단점

Tony Park 2021. 7. 28. 09:54
728x90
반응형

📚 목차

1. 교차검증 정의
2. 교차검증의 장단점
3. 교차검증의 종류
    3.1. Hold-out Cross-Validation
    3.2. K-Fold Cross-Validation
    3.3. Leave-p-Out Cross-Validation(LpOCV)
    3.4. Leave-One-Out CV(LOOCV)

1. 교차검증 정의

교차검증이란 모델 학습 시 데이터를 훈련용과 검증용으로 교차하여 선택하는 방법입니다. 일반적으로 많이 사용되는 교차검증 방법론으로서 K-Fold Cross Validataion을 예시로 살펴보겠습니다. K-Fold Cross Validataion에 대한 자세한 설명은 아래 '3. 교차검증의 종류'에서 다루겠습니다 :)

그림 1. 교차검증 예시: K-Fold Cross Validation (k = 5)

그림 1 과 같이 전체 데이터셋 5분의 1(\(20%\))을 테스트 데이터셋으로, 나머지 \(80%\) 데이터셋을 학습 데이터셋으로 분류하였습니다. 전체 데이터셋을 위의 비율(8:2)로 나눌 수 있는 경우의 수는 총 \(5\)가지입니다. 즉, 위 그림과 같이 테스트 데이터셋을 좌측 첫 번째 데이터셋으로, 또는 2번째 데이터셋으로, ..., 또는 5번째 데이터셋으로 나눌 수 있겠죠. 이와 같이, 훈련용 데이터셋과 테스트 데이터셋을 교차 변경하는 방법론을 교차검증이라고 부릅니다.

2. 교차검증의 장단점

그렇다면 교차검증을 사용하는 목적은 무엇일까요? 교차검증의 장점과 단점에 대해 알아보겠습니다(표 1 참고).

장점 단점
특정 데이터셋에 대한 과적합 방지 모델 훈련 및 평가 소요시간 증가(반복 학습 횟수 증가)
더욱 일반화된 모델 생성 가능
데이터셋 규모가 적을 시 과소적합 방지

표 1. 교차검증의 장단점

3. 교차검증의 종류

3.1. Hold-out Cross-Validation

특정 비율로 train/test data를 \(1\)회 분할하는 방법론(그림 1 참고)

그림 1. Hold-out Cross-Validation 도식화

3.2. K-Fold Cross-Validation

3.2.1. 정의

전체 데이터셋을 \(K\)개의 fold로 나누어 \(K\)번 다른 fold \(1\)개를 test data로, 나머지 \((K-1)\)개의 fold를 train data로 분할하는 과정을 반복함으로써 train 및 test data를 교차 변경하는 방법론

3.2.2. 절차

① 전체 데이터를 \(K\)개 fold로 분할
② 분할된 fold 중 test data로 할당된 적이 없는 fold \(1\)개를 test data로 할당
③ 위 ② 과정을 \(K\)번 반복
④ \(K\)개의 모델 성능 평가 결괏값을 평균 내어 최종 결괏값으로 활용

3.2.3. 예시: k = 5인 경우(그림 2 참고)

- 전체 데이터셋의 \(20%\)을 test data, 나머지 \(80%\)를 train data 할당
- \(5\)회에 걸쳐 위의 비율로 전체 데이터셋이 train/test에 사용되도록 교차 변경

그림 2. K-Fold Cross-Validation 도식화 (K = 5)

3.2.4. 특징

- \(K\)는 하이퍼파라미터로서 주로 \(5\) ~\(10\) fold 사용
- 최적의 \(K\) 값을 찾기 위한 실험적 검증 필요
- 가장 일반적인 교차검증 방법론

3.2.5. 장점

- 모든 데이터를 train 및 test에 활용 → 과적합/과소적합 탐지 및 더욱 일반화된 모델 생성 가능

3.2.6. 단점

아래와 같은 경우에는 CV 수행 시 오히려 모델 성능이 악화될 수 있습니다[1].

- 순서가 고려된 데이터가 shuffle 되어 있지 않은 경우
- 데이터 불균형(Data Imbalance) → 층화 교차검증(Stratified K-fold CV)을 통해 보완
- 각기 다른 fold에 같은 데이터(i.e., duplicate)가 존재할 경우
- Natural Group(e.g., 같은 사용자/머신 데이터) 데이터가 여러 fold에 shuffle 된 경우

3.3. Leave-p-Out Cross-Validation(LpOCV)

그림 3. Leave-p-Out Cross Validation 도식화

3.3.1. 정의

- 전체 데이터 \(N\)개 중에서 \(p\)개의 샘플을 선택하여 모델 검증에 활용하는 방법론(그림 3 참고)

3.3.2. 훈련/검증 iteration 횟수(test data 조합 개수)

- \(_{n}C_{p} = \frac{n!}{(n-p)!p!}\)

3.3.3. 특징

- 훈련/검증 iteration 결과들을 평균 내어 최종 결괏값으로 활용
- iteration 횟수가 증가함에 따라 연산 소요 시간 및 비용 증가

3.4. Leave-One-Out CV(LOOCV)

그림 4. Leave-One-Out Cross Validation 도식화

3.4.1. 정의

- LpOCV에서 \(p = 1\) 인 경우에 해당(그림 4 참고)
- K-fold CV에서 \(K= N\) 인 경우에 해당
- 훈련/검증 iteration 횟수(test data 조합 개수) = 전체 데이터 개수 = \(N\)회

3.4.2. 특징

- LpOCV보다 연산 소요시간 적음
- Test data가 단 \(1\)개이고 나머지 모든 데이터를 train에 활용 가능 → 학습 모델 성능 우수
- 데이터 개수가 적은 경우 효과적인 방법론
- ✅ LpOCV보다 선호되는 방법론

📚참고할 만한 포스팅

1. [Deep Learning] 퍼셉트론(Perceptron) 개념 이해
2. [Deep Learning] 퍼셉트론(Perceptron) 학습방법 및 절차
3. [Deep Learning] 활성화 함수의 개념 및 종류: sign, tanh, sigmoid, softmax, ReLU
4. [Deep Learning] 손실함수(Loss Function) 개념
5. [Deep Learning] 평균제곱오차(MSE) 개념 및 특징
6. [Deep Learning] 평균절대오차(MAE) 개념 및 특징
7. [Deep Learning] 최적화 개념과 경사 하강법(Gradient Descent)
8. [Deep Learning] 최적화 기법: (1) Momentum
9. [Deep Learning] 최적화 기법: (2) AdaGrad
10. [Deep Learning] 최적화 기법: (3) RMSProp
11. [Deep Learning] 최적화 기법: (4) Adam


오늘은 교차검증의 정의, 사용목적, 종류에 대해 알아봤습니다.
포스팅 내에 오류가 있을 경우 아래에 👇👇👇 댓글 남겨주시면 감사드리겠습니다.
그럼 오늘도 건강한 하루 보내시길 바랍니다.
고맙습니다 :)

728x90
반응형
Comments