머신러닝, 딥러닝 모델링에 필요한 데이터셋의 종류와 차이점에 대해 알아보자

Introduction

머신러닝이나 딥러닝에 있어서 어떤 모델을 선정할 것인지도 중요하지만 주어진 데이터에 대한 처리도 굉장히 중요하다.

머신러닝(딥러닝)에 사용되는 데이터들은 훈련(Training), 검증(Validation), 테스트(Test)의 3가지 데이터셋으로 나뉘어 인공지능 학습 및 평가에 사용하는데 이에 대해 알아보도록 하자.

1.Training Set

Training Set은 모델을 학습하기 위한 dataset이다. 한 가지 중요한 점은 모델을 학습하는데에는 오직 Training Set만 이용한다는 점이다. 보통 이러한 Training Set을 이용해 각기 다른 모델을 서로 다른 epoch로 학습을 시킨다. 여기서 각기 다른 모델이란 hidden layer 혹은 Hyperparameter에 약간씩 변화를 주는 것을 의미한다.

2.Validation Set

Validation Set은 Training Set으로 학습이 이미 완료된 모델의 성능을 측정하기 위한 dataset으로 최종 모델을 선정하기 위해 사용되며 모델을 평가하기 위해 여러 번 사용할 수 있다.

3.Test Set

Test Set은 학습과 검증이 완료된 모델의 성능을 평가하기위한 dataset으로 마지막으로 딱 한번 해당 모델의 성능을 측정하기 위해 사용된다.

Validation Set과 Test Set의 차이점

Validation Set은 모델을 Update한다 즉 학습을 시키진 않지만 학습에 ‘관여’는 한다. 반면 Test Set은 학습에 전혀 관여하지 않고 오직 ‘최종 성능’을 평가하기 위해 쓰인다.

Validation Set은 학습을 하지 않는데 어떻게 학습에 관여하는지 아래 그림을 살펴보자.

위 그림은 우측으로 갈수록 epoch를 늘려가면서 train set을 학습시키는 과정이다.

그림을 보면 알 수 있듯이 가운데 그림은 Training set뿐만아니라 Unseen data에 대해서도 좋은 성능을 보일것으로 보인다.

그러나 가장 우측그림을 보면 Training Set에 Overfitting되어 다른 Unseen data에 대해 안 좋은 성능을 보일 것이다. 즉, Training Set으로 학습을 할때 너무 높은 epoch로 학습시키면 Overfitting의 문제가 생길 수 있다.

위 그림을 보면 파란색 baseline을 기준으로 더 학습시키면 Overfitting되어 Test Set에 대한 결과가 점점 안 좋아진다. 따라서 우리는 파란색 baseline 까지만 학습을 해야한다. 다시말해, 파란색 baseline에 해당하는 epoch를 찾아야한다.

그러나 이때 Test Set은 최종 성능을 평가할때만 사용하므로 학습에 이처럼 관여해서는 안된다. 결국 여기서 Validation Set이 사용되는 것이다.

Validation Set을 사용하여 Train Set에 대한 epoch를 바꿔가면서 위 그림과 같은 error 곡선을 그린다. 그 후 baseline에 해당하는 epoch를 찾으면 해당 epoch까지만 모델을 학습시켜 Test Set으로 최종 성능을 평가한다.

한마디로 위 그림에서의 Test Error를 Validation Set에 의한 Validation Error라고 생각하면된다.

이렇게 Validation Set은 Train Set에 의한 epoch뿐만 아니라 다른 Hyperparameter, hidden layer를 조정할때도 사용될 수 있다. 예를 들어, learning rate와 hidden layer를 조금 변형해가면서 Validation Set에 대한 accuracy를 보면서 적절한 hyperparameter, hidden layer를 결정하는 것이다.

Validation Set에 대한 accuracy가 중요한 이유는 학습에서

  • Overfitting에 빠지지 않고
  • Unseen data에 대한 좋은 성능

이 두가지가 핵심적이기 때문이다.

Summary

요약하자면 Training Set으로 만든 모델을 Validation Set으로 검증하는데 만약 Validation Set에 대한 성능이 좋지 않다면 앞서 말한 epoch나 hyperparameter의 튜닝을 통해 모델의 성능을 높여 최종 모델을 선정한 후 마지막으로 선정된 최종 모델을 Test Set으로 평가하는 것이다.

Reference

댓글남기기