본문 바로가기
머신러닝

머신러닝(Machine Learning) 10장 - Training-Testing data set -

by ChocoPeanut 2017. 5. 29.

머신러닝(Machine Learning) 10

- Training-Testing data set -

 

Machine Learning의 특정 모델을 학습시키기 위해서는 training data set이 필요하다. 하지만 training data set만으로 학습을 한 후 바로 실제 데이터를 사용에 투입되는 것은 아니다. 다른 데이터를 활용해서 이 학습 모델이 제대로 동작하는지에 대한 test 과정이 필요하다. 이 때 필요한 데이터 값이 testing data set이다. 만약 다음과 같은 데이터가 주어진다고 생각을 해보자. 집의 크기에 따른 가격의 차이를 나타내는 data set이다.



만약 다음의 data set을 모두 training data set으로 사용해서 특정 머신러닝 모델을 학습시킨다고 생각을 해보자. 특정 모델이 학습이 되고 난 후 test를 하는 과정도 같은 data set을 가지고 진행을 한다면 이를 통해 모델을 test 할 수 있겠는가? 거의 100% 알맞은 학습을 했다고 나타낼 수 있을 것이다. 그렇기 때문에 data set에서 30%를 분리시켜 70%training data set으로 활용을 하게 되고 나머지 30%testing data set으로 활용하게 된다. testing data set은 기존에 숨겨 놓고 training data set만을 통해서 모델을 학습시키게 된다. 모든 학습이 끝나고 난 후 testing data set을 넣어서 모델의 예측 값과 실제 데이터의 결과 값을 비교하게 된다. 이를 통해 학습이 잘 되었는지를 test 할 수 있게 되는 것이다.



그런데 모델을 학습시킬 때 두 가지의 상수가 나타나게 된다. 미분 기울기의 변화하는 step의 크기를 의미하는 알파 값overfitting을 줄이기 위해 사용하는 일반화 기술에서 그 값의 크기를 조절하는 람다 값이 상수이다. 그런데 데이터를 학습할 때 이 상수 값에 대한 변화가 필요할 때가 있다. 실제로 overshooting이 일어나거나 cost function의 값의 변화가 거의 없을 때는 알파의 값을 변화시켜 step의 간격을 조절해야하고 일반화 과정이 필요하거나 필요 없을 경우 크기의 차이가 더 필요한 경우 등에는 람다의 값을 조절해야한다. 그래서 training data set의 부분에서 또 다시 다른 학습 데이터 부분을 나누게 된다. Validation이라는 부분으로 Training set을 조금 더 보안하는 data set을 가지게 된다.