머신러닝 과대 적합과 과소 적합
과대 적합과 과소 적합
머신러닝 모델 학습에 가장 큰 영향을 주는 것은 데이터입니다. 데이터에서 충분히 특징을 찾아내지 못하고 머신러닝 모델을 학습할 경우 모델이 과소적합되기 쉽고, 필요 이상의 특징으로 학습할 경우 모델이 과대 적합되기 쉽습니다.
수학적으로 데이터에서 특징을 필요 이상으로 추출할 경우 분산이 높아지고, 반대로 필요 이하로 추출할 경우 편향이 높아집니다. 에러율이 가장 적은 모델, 즉 최적의 모델은 분산과 편향이 균형된 모델인 것을 확인할 수 있습니다.
과소적합
과소 적합은 모델 학습 시 충분한 데이터의 특징을 활용하지 못할 경우 발생합니다. 아래의 학습 데이터 예제를 보겠습니다.
사물 | 분류값 | 생김새 |
---|---|---|
야구공 | 공 | 동그라미 |
농구공 | 공 | 동그라미 |
테니스공 | 공 | 동그라미 |
딸기 | 과일 | 세모 |
포도알 | 과일 | 동그라미 |
사물을 보고 공을 구분하는 머신러닝 모델을 만들 때 위 학습 데이터를 사용할 경우 어떤 문제가 발생할까요? 데이터의 특징으로는 생김새밖에 없으므로 생김새가 동그라미이면 공이라는 간단한 머신러닝 분류기를 만들 수 있습니다. 하지만 이 분류기는 학습 데이터에 대해서도 높은 정확도를 가지지 못합니다. 그 이유는 공을 구별할 수 있는 특징이 너무 적기 때문에 현재 가지고 있는 데이터에 대해서도 정확도가 낮게 측정되는 것이며, 앞으로 다가올 실제 데이터에 대해서도 높은 정확도를 예상하기 어렵습니다. 이처럼 충분하지 못한 특징만으로 학습되어 특정 특징에만 편향되게 학습된 모델을 과소적합된 모델이라고 부르며, 보통 테스트 데이터뿐만 아니라 학습 데이터에 대해서도 정확도가 낮게 나올 경우 과소 적합된 모델일 가능성이 높습니다.
과대 적합
학습 데이터에서 필요 이상으로 특징을 발견해서 학습 데이터에 대한 정확도는 상당히 높지 만 테스트 데이터 또는 학습 데이터 외의 데이터에는 정확도가 낮게 나오는 모델을 과대적합된 모델이라 부릅니다. 과대 적합의 예제를 보겠습니다.
사물 | 분류값 | 생김새 | 크기 | 줄무늬 |
---|---|---|---|---|
야구공 | 공 | 원형 | 중간 | 있음 |
농구공 | 공 | 원형 | 큼 | 있음 |
위 특징 모두를 사용해서 머신러닝 모델을 학습할 경우 “생김새가 원형이고 크기가 작지 않으며, 줄무늬가 있으면 공이다” 라는 명제를 가진 머신러닝 모델이 만들어질 수 있습니다. 이 머신러닝 모델은 현재 가지고 있는 학습 데이터에는 100%의 정확도를 보여주지만 학습 데이터에 포함되지 않은 아래의 테스트 데이터에는 0%의 정확도를 갖습니다.
이처럼 머신러닝 모델이 학습 데이터에는 높은 정확도를 가지나 테스트 데이터 또는 실제 데이터에 대해서는 낮은 정확도를 보일 경우 과대 적합을 의심할 수 있습니다. 과대 적합은 특징은 필요 이상으로 많을 경우(분산이 높을 경우) 일어납니다. 과대 적합을 피하기 위한 가장 좋은 방법은 무엇일까요? 간단하면서도 확실한 답은 더 많은 데이터를 확보해서 부족한 학습 데이터를 충분히 채우는 것입니다. 하지만 데이터가 충분하지 않고 모델이 과대적합됐을 경우 학습에 사용된 특징을 줄여보는 것도 좋은 방법입니다. 또한 특징들의 수치 값을 정규화함으로써 특정 특징에 의한 편향을 줄이는 것도 과대 적합을 피하는 좋은 방법 중 하나입니다. 이밖에도 딥러닝 같은 경우 조기 종료 및 드롭아웃을 사용해 과대 적합을 피할 수 있습니다.