본문 바로가기

개발일지/도서추천서비스

훈련 데이터셋 구성 (오버피팅을 피하는 법)

반응형

목차

  1. 모델 학습에 활용되는 데이터셋 종류
  2. 오버피팅 방지하기
  3. 데이터셋 구성 시 주의할 점

1.  모델 학습에 활용되는 데이터셋 종류

모델을 학습시킨다는 것은 "적절한 파라미터를 찾는다" 라는 의미를 가지고 있다.

 

특정 도메인에 특화되도록 모델을 학습 시키기 위해서는 해당 도메인의 데이터를 활용한다.

보통 모델 학습에 활용되는 데이터 셋은 "훈련 / 검증 / 시험" 이렇게 3가지 종류로 분리 한다.

 

1. 훈련 데이터셋 (Training)

→ 모델을 피팅(훈련)하는데 사용되는 실제 데이터 샘플을 말한다.

    신경망의 경우 이 데이터를 통해 가중치 및 편향이 특정 도메인에 맞게 조정된다.

 

2. 검증 데이터셋 (Validation)

훈련 과정에서 주어진 모델의 성능을 평가하는데 사용되는 데이터이다.

    모델 하이퍼파라미터를 조정하면서 훈련 데이터 셋에 맞는 모델에 대한 편견 없는 평가를 제공한다.

    검증 데이터셋은 모델이 학습하지 않는다.

 

3. 시험 데이터셋 (Test)

훈련데이터 시트에 맞는 최종 모델 (완전히 훈련된 상태)에 대해

    편견없는 평가를 제공하는데 사용되는 데이터 샘플이다.

 

    테스트 데이터 셋은 모델의 입장에서는 미지의 데이터로

    기존에 주어진 데이터가 아니라도 일반화가 잘 되는지 확인한다.

 

 

2.  오버피팅 방지하기

 

위 세 그림은 모델을 학습시키는 과정을 보여주고 있다.

 

Model 그래프는 실제 모델이 가리키는 값들을 나타내고

True Function은 파인튜닝 된 상태를 나타낸다.

그리고 Samples 가 데이터 샘플이다.

 

첫 번째 그래프을 보면 Model과 True Function의 그래프가 방향은 비슷하지만

정확히 일치하지는 않는다.

True Function과 가깝도록 모델을 훈련시키는 것이 파인튜닝을 하는 것이라고 볼 수 있다.

 

훈련 후 두 번째 그래프를 보면 이제 Model과 True Function이 어느정도 일치한다.

그러나 Samples 데이터와는 아직 오차 범위가 존재한다.

 

반면 세 번째 그래프를 보면 그래프가 모든 Samples 데이터를 지나가지만

True Function 그래프와의 오차범위가 매우 크다.

 

즉, 주어진 데이터에만 최적화 되어 있는 상태

이 상태가 바로 오버피팅(과대적합)이다.

 

오버피팅이 일어나게 되면 주어진 데이터 내에서는 100% 정확도를 가질 수 있지만
일반화에서 오차 범위가 크게 일어나게 된다.
때문에 두 번째 그래프가 가장 이상적으로 훈련된 상태이며 (굿피팅)
모델 훈련시 추구해야 할 방향이다.

 

 

 

이러한 오버피팅을 방지하기 위해 데이터 셋을 3가지 종류로 구분한다.

 

보통 데이터 셋을 분리할 때 각 데이터셋의 비율은 위 사진과 같다.

 

준비된 Train 데이터로 모델을 훈련시키다보면 training error는 줄어들지만 validation error는 늘어나는 순간이 오게 된다.

아래 사진에 빨간색 그래프가 상승하는 순간이 바로 그 순간이다.

validation error가 늘어나기 전,

즉 training error와 validation error가 가장 줄어든 지점을 찾는 것이 모델 학습의 키 포인트이다.

 

또한 그 지점을 찾아내기 위해 활용하는 데이터가 바로 Validation Data이다.

 

 

3.  데이터 셋 구성 시 주의할점

데이터 셋 구성 시 알아두어야 하는 것들이 있다.

 

1. Test set은 미지의 데이터 전체를 대표

먼저 테스트 데이터 셋은 미지의 데이터로 해당 모델이 다른 일반적인 데이터에서도 잘 적용되는지

확인해보는 데이터 셋이라고 앞서 설명하였다.

때문에 Test set은 미지의 데이터 전체를 잘 표현할 수 있어야 한다.

 

2. Validation set은 Test set을 대표

Validation set은 모델을 평가하기 위한 데이터이기 때문에

Test set과 비슷한 분포를 이루어야 한다.

 

 

 

 

https://www.youtube.com/watch?v=GtLe9Z2No28
https://towardsdatascience.com/train-validation-and-test-sets-72cb40cba9e7