머신러닝(Machine Learning)

2-2 일반화, 과대적합, 과소적합

leebaro 2017. 9. 27.
728x90

훈련 세트에서 테스트 데이터로 일반화(generalization) 되었다는 뜻은 머신러닝으로 만든 모델이 데이터에 대해서 정확하계 예측 되었다는 것을 의미한다.


가능한 정확하게 모델을 일반화 해야 예측률이 높아질 것이다. 


모델을 만들때는 보통 데이터를 training set와 test set으로 나누어 사용한다. 학습에 사용한 training 데이터와 test 데이터가 비슷하다면 앞에서 만든 모델의 정확도는 높게 나올 것이다. 하지만 복잡할 모델을 만든다면 training set 데이터에만 정확한 모델이 나올 수 있다.


training set이 정확한 결과를 보여주기 위해 복잡하게 모델을 만드는 것을 과대적합(Over fitting)이라고 하고, 반대로 모델이 너무 간단하여 정확도가 낮을 모델을 과소적합(Under fitting)되었다고 말한다.


과대적합의 경우 training data에 대해서는 높은 정확도를 보여주지만, 새로운 데이터가 입력되면 잘못된 결과를 예측할 수 있다. 반대로 과소적합의 경우 모델은 간단하지만 training data 조차도 정확한 결과가 나오지 않을 수 있다.


간단한 예를 통해 설명해보려고 한다.


 고객번호

 머리길이

나이 

 목걸이 착용

 성별

 1

 단발

 20

 O

 남자

 2

 단발

 25

 X

 남자

 3

 장발

 30

 O

 여자

 4

 장발

35 

 O

 여자

5

 장발

 34

 O

남자


<표1 > 고객 정보



우리가 만드려는 모델은 고객의 데이터 기반으로 고객의 성별을 분류하는 classification 모델이다.  우선 고객번호 1~4까지 4명의 고객으로 학습을 했다고 가정하자. 남자와 여자를 구분하는 특징(feature)는 머리길이와 나이이다. 모델은 머리 길이 특징을 이용하여 단발이면서 나이가 30살 이하이면 남자이고, 장발이고 30세 이상이면 여자로 분류하는 모델을 생성할 것이다. 하지만 신규 고객인 5번 고객이 입력될 경우 장발이면서 34세인 고객인 남자 고객을 여자 고객으로 분류 할 수도 있다.

이와 같이 training data에만 최적화 된 모델을 과대적합되었다고 이야기 한다. 반대로 목걸이 착용 여부로만 남자와 여자를 분류한다면 모델을 간단하지만 정확도가 떨어져 과소적합이라고 할 수 있다.


우리는 아래 그림과 같이 일반화 성능이 최대가 되는 최적점에 있는 모델을 찾아야 한다. 오렌지색 점선과 파란색 점선이 교차하는 지점이 에러가 가장 적으며 모델의 복잡도가 최소가 되는 지점이다.



<그림1> 모델의 복잡도와 에러율의 관계



과대적합이나 과소적합의 문제를 최소하고 모델의 정확도를 높이는 가장 좋은 방법은 더 많고 다양한 데이터를 확보하고, 확보한 데이터로부터 더 다양한 특징(feature)들을 찾아서 학습에 사용하는 것이다.  앞에서도 이야기 했지만, 동일한 데이터를 복사해서 데이터의 양을 늘린다고 정확도가 올라가지 않는다. 더 다양한 케이스를 학습할 수있도록 다양한 케이스의 많은 데이터를 확보하는 것이 모델의 정확도를 높이기 위해 중요하다.





Reference

http://l2r.cs.uiuc.edu/Teaching/CS446-17/index.html


728x90