# Cross Validation은 무엇이고 어떻게 해야 하나요?
모델에 들어가는 데이터를 크게 훈련 데이터, 검증 데이터, 테스트 데이터로 나눌 수 있습니다. 이때 교차 검증이란 훈련 데이터로 모델이 잘 훈련되었는지를 검증 데이터를 사용해 검증하는 방법 중 하나입니다.
훈련 집합: 모델을 학습시킬 때 사용하는 데이터 집합
검증 집합: 수많은 종류의 학습된 모델이 있을 때, 그 중 최적의 모델(즉 최적 하이퍼 파라미터)을 선택하기 위해 사용하는 데이터 집합
테스트 집합: 검증을 거친 최종 모델의 일반화 성능을 검증할 때 사용하는 데이터 집합
보통 훈련 데이터로 모델을 훈련한 후, 검정 데이터를 사용해 모델이 어떻게 검증되나를 지켜보며 그에 따라 모델의 하이퍼 파라미터를 조정하고 모델의 성능을 올립니다. 이때 사용하는 검정 데이터가 한 세트밖에 없다면 검정 데이터로 직접 모델을 훈련하지 않더라도 검정 데이터에 모델이 과적합 될 수 있습니다. 이를 막는 방법이 Cross Validation(교차 검증)입니다.
그리고 대표적으로 K-fold 교차 검증이 있습니다. 전체 훈련 데이터를 K개의 그룹으로 묶고, 그중 한 그룹을 검증셋으로 사용합니다. 이때 각각의 모든 데이터 그룹이 적어도 한 번씩은 검증셋으로 사용되어야 합니다. K-fold 교차 검증을 사용함으로써 검정 데이터에 모델이 과적합 되는 것을 막을 수 있습니다. 장점과 단점은 다음과 같습니다.
장점: K개의 그룹의 서로 다른 데이터셋을 이용해 모델을 학습시키므로 과적합을 방지할 수 있다.
학습시 검증용 데이터를 사용해 하이퍼 파라미터를 조정할 수 있다.
단점: K번의 반복되는 계산이 필요하기 때문에 시간 복잡도가 증가한다.
K-fold 교차 검증을 한 마디로 요약하자면, “모델의 평가에 사용되는 검정 데이터에 모델이 과적합 되지 않도록 하는 방법”이라고 할 수 있겠습니다.
'딥러닝 & 머신러닝 > 머신러닝 지식' 카테고리의 다른 글
선형 함수 (linear function) (0) | 2020.11.12 |
---|---|
L1, L2 Norm & L1, L2 loss & L1, L2 규제 (2) | 2020.08.08 |
차원의 저주와 차원 축소 개념 (0) | 2020.08.05 |
정규화(Normalization)의 목적과 방법들 (0) | 2020.08.04 |
회귀 / 분류시 알맞은 metric과 그에 대한 설명 (2) | 2020.08.04 |