티스토리 뷰

과대적합(Overfitting)

필요 이상의 특징을 발견하여 학습 데이터에선 높은 정확도를 보이지만

테스트 데이터나 새로운 데이터에는 정확도가 낮게 나오는 경우를 과대적합이라고 해요.

공을 분류해내는 머신러닝 모델을 간단한 예로 들어볼게요.

사물 분류값 생김새 크기 줄무늬
야구공 원형 중간 있음
농구공 원형 있음
테니스공 원형 중간 있음
딸기 과일 세모 중간 없음
포도알 과일 원형 작음 없음

위의 학습데이터를 기준으로,

모델에게 '생김새가 원형이고 크기가 작지 않으며, 줄무늬가 있으면 공이야!' 라고 학습을 시킨다면. 

학습데이터만 두고 본다면 이 모델은 정확하게 '야구공,농구공,테니스공!'이라고 대답하겠지만,

이 모델에게 아래 데이터를 보여주고 똑같이 질문한다면

사물 분류값 생김새 크기 줄무늬
골프공 원형 작음 없음
수박 공 !? 원형 있음
당구공 원형 중간 없음
럭비공 타원형 있음
볼링공 원형 없음

'음..수박은 원형이고 크기도 작지않고 줄무늬도 있으니 공이네요!' 라는 대답을 할거에요.

또 주어진 조건에선 다른 공들은 공이 아니라는 결과를 내놓겠지요. 이 모델은 정확도가 0이 된 겁니다!

이는 모델에게 너무 많은 특징을 발견하게 만들어놔서 과대적합 현상이 발생한 거에요!

과대적합은 이처럼 특징이 필요 이상으로 많을 경우(분산이 높을 경우)일어납니다.

과대적합을 피하기 위한 가장 좋은 방법은 무엇일까요? 가장 간단한 방법은 충분한 데이터를 확보하는 것입니다.

데이터가 충분하지 않다면, 특징을 적절하게 줄여주는 것도 좋은 방법이 될 수 있습니다.

또한 특징들의 수치값을 정규화함으로써 특정 특징에 대한 편향을 줄이면 과적합률이 줄어들 수 있어요! 

과소적합(Underfitting)

과소적합은 모델 학습 시 충분한 데이터의 특징을 활용하지 못할 경우 발생합니다.

이번에도 예를 들어보면,

사물 분류값 생김새
야구공 동그라미
농구공 동그라미
테니스공 동그라미
딸기 과일 세모
포도알 공 !? 동그라미

사물을 보고 공을 구분하도록 머신러닝 모델을 만들 때, 이 데이터에선 특징이 생김새밖에 없으므로

생김새가 동그라미이면 공이라는 간단한 분류기를 만들 수 있지만, 이 분류기는 포도알까지 공으로 분류해버릴거에요.

이처럼 데이터의 특징이 충분하지 못한경우 과소적합이 발생하게 됩니다.

보통 테스트데이터 뿐 아니라 학습데이터에 대해서도 정확도가 낮게 나올 경우 과소적합된 모델일 가능성이 높습니다.

최적의 모델

과소적합과 과대적합 관계 -Youtube Minsuk Heo 허민석-

위 그림처럼 데이터에서 특징을 필요 이상으로 추출할 경우 분산(variance)이 높아지고,

반대로 필요 이하로 추출할 경우 편향(bias)이 높아지게 됩니다.

에러율이 가장 적은 모델, 즉 최적의 모델은 분산과 편향이 균형된 모델인 것을 알 수 있습니다.


<참고 문헌>
Minseok-Heo, [나의 첫 머신러닝/딥러닝], Wikibooks, 2019.

이 글은 저자님과 출판사의 참고 허가를 받고 작성되었습니다.

글 보관함