Computer Engineering/머신러닝(ML: Machine Learning)

[ML] 4-2. 머신러닝의 테스트와 검증 및 데이터 불일치 여부 확인

잇트루 2021. 5. 8. 12:12
반응형

[이전글]

[ML] 4-1. 머신러닝에서의 하이퍼파라미터란 무엇일까? - 파라미터 vs 하이퍼파라미터

ittrue.tistory.com/42

 

[ML] 4-1. 머신러닝에서의 하이퍼파라미터란 무엇일까? (파라미터 vs 하이퍼파라미터)

[이전글] [ML] 3-2. 머신러닝의 훈련 조건 (2) - 과대적합과 과소적합 ittrue.tistory.com/39 [ML] 3-2. 머신러닝의 훈련 조건 (과대적합과 과소적합) [이전글] [ML] 3-1. 머신러닝의 훈련 조건 (1) - 좋은 데이터..

ittrue.tistory.com

모델이 새로운 샘플에 대해서 잘 예측하기 위해서는 일반화가 잘 이루어져야 하며, 이를 확인하기 위해 모델을 테스트해보는 것이 중요합니다. 훈련 세트와 테스트 세트로 나누어 진행을 하는데, 훈련 세트를 사용하여 모델을 훈련하고 테스트 세트를 사용해 모델의 성능을 모니터링하는 것이 일반적입니다.

 

  • 훈련 세트 : 모델 훈련을 위한 데이터셋
  • 테스트 세트 : 훈련된 모델을 실제로 적용하기 위한 데이터셋

일반적으로 데이터셋의 80%를 훈련 세트로 사용하며, 20% 세트는 테스트 세트로 사용합니다. 하지만, 데이터셋이 매우 크다면 훈련 세트와 테스트 세트 중 테스트 세트의 비율을 낮추어 모델에 적용할 수 있습니다.

 

머신러닝에서의 검증이란?

모델의 테스트를 위한 훈련 세트와 테스트 세트가 모두 준비되어 있다면 테스트 세트에 대한 모델 테스트를 마친 후 이에 대한 모델 검증이 필요합니다. 검증 기준으로는 새로운 샘플에 대한 오류 비율일반화 오차(Generalization error)로 판단하게 됩니다. 일반화 오차는 학습된 모델의 일반화 성능의 기준이 되며, 테스트 세트에서 모델을 평가함으로써 일반화 오차에 대한 추정값(Estimation)을 얻습니다. 만약, 훈련 오차(훈련 세트에서 모델의 오차가 적음)에 비해 일반화 오차가 높은 경우 과대적합이 발생했다는 뜻입니다.

 

테스트 세트를 사용하여 모델 평가를 하는 방법

  1. 선형 모델과 다항 모델 등 여러 모델을 적용시켜 비교
  2. 하이퍼파라미터 튜닝을 통한 훈련

 

홀드아웃 검증(Holdout Validation)

만약, 모델을 테스트하여 일반화가 잘 된 것을 선정하고, 최적의 하이퍼파라미터를 찾았다고 가정한다면, 이 모델을 실제 서비스를 투입합니다. 하지만 예상만큼 좋지 않고 큰 오차를 발생한다면 어떻게 해결해야 할까요? 이는 일반화 오차를 테스트 세트에서 여러 번 측정 했으므로 모델과 하이퍼파라미터가 테스트 세트에 최적화된 모델을 만들었기 때문입니다. 즉, 모델이 새로운 데이터에 잘 작동하지 않을 수 있다는 뜻으로 이 문제를 해결하기 위해 홀드아웃 검증을 사용합니다. 이를 예비표본 검증이라고도 합니다.

 

예비 표본은 훈련 세트의 일부로 만들어진 데이터셋으로 다양한 하이퍼파라미터 값을 사용하는 후보 모델을 평가하는 용도로 예비 표본을 활용하는 기법입니다. 간단하게 훈련 세트의 일부를 떼어내어 여러 후보 모델을 평가하고 가장 좋은 하나를 선택합니다. 여기서 선택한 홀드아웃 세트를 검증 세트라고 부릅니다.

 

홀드아웃 검증의 과정

  1. 검증 세트를 뺀 훈련 세트에서 다양한 하이퍼파라미터 값을 가진 여러 모델을 훈련
  2. 검증 세트에서 가장 높은 성능을 내는 모델을 선택
  3. 홀드아웃 검증 과정이 끝나면 전체 훈련 세트에서 다시 훈련하여 최종 모델을 완성
  4. 최종 모델을 테스트 세트에서 평가하여 일반화 오차를 추정

 

교차 검증(Cross Validation)

홀드아웃 검증 방법은 일반적으로 잘 작동하지만, 검증 세트가 너무 작으면 모델이 정확하게 평가되지 않습니다. 이는 최적이 아닌 모델을 잘못 선택할 수 있다는 뜻입니다. 반대로 검증 세트가 너무 크면 남은 훈련 세트가 전체 훈련 세트보다 작아지게 되며, 최종 모델이 전체 훈련 세트에서 훈련되기 때문에 너무 작은 훈련 세트에서 훈련한 후보 모델을 비교하는 것은 이상적이지 않습니다. 이러한 문제를 해결하기 위해 교차 검증을 수행합니다.

 

교차 검증은 여러 개의 검증 세트를 사용한 반복적인 예비표본 검증 적용 기법으로 교차 검증 후 모든 모델의 평가를 평균으로 계산하면 훨씬 정확한 성능을 측정할 수 있게 됩니다. 하지만, 훈련 시간이 검증 세트의 개수에 비례하여 늘어나게 되므로 비교적 오랜 시간이 걸릴 수 있습니다.

 

데이터 불일치

모델 훈련에 사용된 데이터가 실전에 사용되는 데이터를 완벽하게 대변하지 못할 수 있습니다. 따라서 검증 세트와 테스트 세트가 실전에서 기대하는 데이터를 가능한 한 잘 대표해야 하는데, 검증 세트와 테스트 세트에 대표 사진이 배타적으로 포함되어야 합니다. 만약 꽃을 구별하는 훈련 모델을 검증하고자 할 때, 훈련 세트와 테스트 세트에 중복이 되는 사진이 들어가지 않게 해야 한다는 뜻입니다.

 

데이터 불일치 여부를 확인하기 위해서는 훈련 사진의 일부를 떼어내어 또 다른 세트를 만드는 것인데, 이를 훈련-개발 세트라고 부릅니다. 훈련-개발 세트를 만든 후, 이를 제외한 훈련 세트로 모델을 훈련한 후 훈련-개발 세트를 이용하여 성능 평가를 진행하여 데이터 불일치 여부를 확인할 수 있습니다.

 

만약, 훈련-개발 세트에 대한 평가가 좋은 경우 과대적합이 발생하지 않았음을 뜻합니다. 하지만 훈련-개발 세트에서 평가는 좋은 반면에 검증 세트에 대한 평가가 나쁜 경우를 데이터 불일치하다고 판단할 수 있습니다. 이를 해결하기 위해서는 데이터를 전처리한 후 훈련시키면 성능을 향상할 수 있습니다.

 

반대로 훈련-개발 세트에 대한 평가가 나쁜 경우에는 과대적합이 발생했다는 것이며, 모델에 규제를 적용하거나 더 많은 훈련 데이터를 활용하거나 훈련 데이터 정제를 시도해봐야 합니다.

 

[다음글]

[ML] 5-1. 서포트 벡터 머신(SVM)이란 무엇일까?

https://ittrue.tistory.com/44

 

[ML] 5-1. 서포트 벡터 머신(SVM)이란 무엇일까?

[이전글] [ML] 4-2. 머신러닝의 테스트와 검증 및 데이터 불일치 여부 확인 ittrue.tistory.com/43 [ML] 4-1. 머신러닝에서의 하이퍼파라미터란 무엇일까? (파라미터 vs 하이퍼파라미터) [이전글] [ML] 3-2. 머

ittrue.tistory.com

 

반응형