머신러닝에서 '어떤 모델을 학습시킨다'라는 말은 '적절한 파라미터를 찾는다'로 해석할 수 있다.
학습 목표는 보통 Cost function을 최소화 시키는 것.
신경망 학습의 '학습' 또한 훈련 데이터로부터 적절한 파라미터(가중치)의 최적값을 자동으로 찾는 것을 의미.
1. Train data & Test data
데이터 분석을 한다는 것은 데이터가 주어지면 모델링을 통해 특정 규칙을 찾아 unseen data의 output을 예측하는 것이 목표이다.
로지스틱, KNN, SVM 등 여러 모델 중 예측력이 가장 좋은 적절한 모델을 찾기 위해 우리의 데이터를 train data와 test data로 나눈 뒤 train data에 각각의 모델로 학습시켜 test data로 각 모델의 최종 정확도를 확인한다.
현재 가지고 있는 data를 train과 test로 나눠서 train으로만 학습하면서 최적의 매개변수를 찾고, test를 사용해 모델의 실력을 평가한다. (ex. 정확도, MSE, ...) 즉, 여기서 test 데이터가 unseen data 역할을 한다.
하지만 train과 test로만 나눴을 때 즉, 데이터셋 하나로만 매개변수의 학습과 평가를 수행한다면 큰 문제점이 있다.
예를 들어 100개의 데이터를 오름차순 정렬을 시킨 후 4등분을 시킨다.
1번은 1~25 데이터 / 2번은 26~50 / 3번은 51~75 / 4번은 76~100 이다.
1,2,3번 총 75개의 데이터를 train데이터라고 하고 4번을 test 데이터라고 할 때, train데이터를 가지고 학습시킨 모델을 A라고 하고 이 A를 test data에 적용시켜 보니 정확도가 95%가 나왔다.
A는 정확도 관점에서 좋은 모델이라고 할 수 있을까?
그렇지 않다. 좋은 모델일 가능성이 조금 더 높을 뿐이지 아직 좋은 모델이라고 확정지을 수 없다.
그 이유는 test data가 A모델에 적합한 데이터일 가능성이 있기 때문이다. (A모델을 적용하기에 깔끔한 데이터일 수도 있다.)
이 A모델을 다른 데이터에 적용시키면 정확도가 낮아질 수 있다.
이번에는 1,2,4번 총 75개의 데이터를 train데이터로 하고 3번을 test데이터라고 할 때, train 데이터를 가지고 학습시킨 모델을 B라고 하고 이 B를 test data에 적용시켜 보니 정확도가 75%가 나왔다.
이처럼 단순히 train과 test를 한 번만 잘라서 평가했다면 더 좋은 모델을 찾을 기회조차 없이 A모델을 택했을 것이다.
즉, 같은 데이터 안에서도 데이터를 어떻게 자르느냐에 따라 모델이 달라질 수 있다.
1-2. Validation 개념
validation 데이터 없이 train / test로만 분리하게 되면 train으로 만든 모델을 검증하기 위해 우리는 test data만 사용할 것이다.
이때, 고정된 test data만 가지고 모델의 성능을 확인하고, 파라미터를 수정하고, 또 확인하고, 수정하고,....
이 과정을 반복하게 되면 결국 최종 모델은 test data에만 성능이 좋은 모델이 될 것이다.
즉, test data에 과적합(Overfit)이 되어 다른 unseen data가 들어왔을 때는 예측력이 떨어질 수 있다.
이때 나오는 개념이 Validation이다.
Train / Validation / Test data 3가지는 각각 모델을 학습하고 검증하고 평가하는데 목적이 다르다.
* Train *
- 모델을 학습하기 위한 데이터셋으로 이때 학습은 최적의 파라미터를 찾는 것.
- 즉, Train data는 오직 학습을 위한 데이터셋
* Validation *
- 학습이 이미 완료된 모델을 검증하기 위한 데이터셋
- 학습이 된 여러 가지 모델 중 가장 좋은 하나의 모델을 고르기 위한 데이터셋
- 학습 과정에 어느 정도 관여를 한다고 볼 수 있다.
- 하지만 Validation 데이터 자체가 학습에 직접적으로 관여하는 것은 아님
* test *
- 모델의 '최종 성능'을 평가하기 위한 데이터셋
- 학습 과정에 관여를 하지 않음
" Train으로 학습하고 Validation으로 검증하고 Test로 최종 성능을 평가한다 "
참조
https://wkddmswh99.tistory.com/10
[머신러닝&딥러닝] Train / Validation / Test 의 차이
머신러닝에서 '어떤 모델을 학습시킨다'라는 말은 '적절한 파라미터를 찾는다'로 해석할 수 있습니다. 학습 목표는 보통 Cost function을 최소화시키는 것입니다. 이번 챕터에서 나오는 신경망 학습
wkddmswh99.tistory.com