AI & BigData/모두를 위한 딥러닝(정리)

머신러닝(ML) #10_ Learning and test data sets

Tigercow.Door 2018. 4. 7. 20:15



안녕하세요.

이번 포스팅에서는 머신러닝 모델이 얼마나 잘 동작하는지 알아보는 방법에 대해서 이야기하겠습니다.


* 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.

관련한 상세 내용은 아래 링크를 참고해주세요.

https://hunkim.github.io/ml/




1. Performance evaluation


우리는 지난 포스팅들을 통해, 머신러닝 모델을 만들고 데이터를 통해 학습을 시켰습니다.

그런데 그 모델이 얼마나 훌륭한가, 얼마나 성공적으로 예측할 수 있을까를 어떻게 평가할 수 있을까요?

우리가 만든 모델에 A라는 데이터를 통해서 훈련을 시켰는데 그 A를 토대로 그대로 평가한다면 어떨까요?

당연히, 100%의 예측률을 보일 것입니다.

예를 들면, 여러분들이 시험공부를 할때 공부했던 문제들에서 숫자하나 바뀌지 않고 그대로 시험이 출제되는 것과 같은 것입니다.

이러한 것은 모델의 성능을 평가하는데 올바르지 않습니다.


그래서 우리는 일반적으로, 우리가 가지고 있는 데이터들중의 70%를 토대로 훈련을 하고 나머지 30%를 테스트하는데 사용합니다.

이때 모델을 훈련하는데 사용하는 70%의 데이터를, training data set 이라고 하며 30%의 데이터를 test data set이라고 합니다.

따라서 어떤 모델을 만들때 training data set을 이용하여 모델을 성공적으로 만든후에 딱 1번의 기회로 test data set을 이용합니다.


그런데 우리가 지난 포스팅에서 이야기 했던 것처럼, 어떤 a라는 learning rate 또는 regulariazation와 같은 것을 튜닝할 필요가 있을 때 보통 사람들은 우리가 가지고 있는 70%의 Training set과 Validation set을 나누어서 모델을 훈련시킵니다.

이때 나누어진 진짜 training set은 말 그대로 훈련하는데 사용되고 위에서 언급한 learning rate 또는 regularization와 같은 것을 튜닝하는데 validation set을 이용합니다. 그리고 testing set은 이전과 같이 딱 1번의 기회로 성능을 평가하는데 사용합니다.



2. Online learning


그런데 우리가 수없이 많은 데이터가 존재했다고 했을 때, 많은 데이터를 한번에 위와 같이 학습시키는 등으로 사용하기 힘들 수 있습니다.

때문에 Online learning 이라는 학습방법도 있습니다.


예를 들어 우리가 100만개의 데이터가 있다고 했을 때 이것을 한번에 사용하는 것이 아니라, 10만개씩 잘라서 학습을 시킵니다.

첫번째 10만개가 학습이 되면 그 학습결과를 모델이 기억하고 있어야 하고 이어서 두번째 10만개를 학습합니다. 이러한 방식으로 매우 큰 데이터를 학습하는 것을 Online learning 방법이라고 합니다.



3. Accurancy


우리가 학습시키고 만들어낸 모델의 정확성에 대해서는, 간단하게 testing data set을 통해서 확인합니다.

우리는 testing data set에 대해 결과값을 알고있기 때문에 이 결과값들과 우리의 모델이 도출한 값을 비교하여 100개 중에 10개가 맞았다면 10%, 90개가 맞았다면 90%라는 식으로 이야기를 합니다.

최근에는 이미지 인식 분야에 있어서 그 정확도가 약 95%를 넘어서고 있습니다.

실제로 이것을 확인해보는 것은 다음 실습을 통해서 진행하도록 하겠습니다.


다음 포스팅에서는 우리가 이야기하는 Neural Network에 대해서 보다 깊게 알아보도록 하겠습니다.



728x90