본문 바로가기
지능형시스템_

[머신러닝] - Overfitting (과적합)

by CHML 2016. 5. 7.
1. 개요

머신 러닝 (machine learning)에서 overfitting은 학습데이터를 과하게 잘 학습하는 것을 뜻한다. 일반적으로 학습 데이터는 실제 데이터의 부분집합인 경우가 대부분이다. 따라서, 아래의 그래프처럼 학습 데이터에 대해서는 오차가 감소하지만, 실제 데이터에 대해서는 오차가 증가하는 지점이 존재할 수 있다.

 

 

Overfitting을 이러한 관점에서 본다면 overfitting은 학습 데이터에 대해 과하게 학습하여 실제 데이터에 대한 오차가 증가하는 현상이다. 예를 들어, 노란색 고양이를 보며 고양이의 특성을 학습한 사람이 검은색이나 흰색 고양이를 보고는 그것을 고양이라고 인식하지 못 하는 현상이 overfitting과 유사한 경우이다.

 

2. Overfitting과 딥러닝

앞에서 설명한 바와 같이 overfitting은 머신 러닝 알고리즘의 오차를 증가시키는 원인으로 작용한다. 실제로 기존의 머신 러닝 알고리즘을 이용하여 어떠한 데이터를 인식 및 분류하다 보면, overfitting은 거의 해결이 불가능한 수준의 문제인 경우가 대부분이다. Overfitting을 해결하기 어렵거나 불가능한 간략한 이유는 아래와 같다.

 

  • 일반적으로 학습 데이터는 실제 데이터의 부분집합이며, 실제 데이터를 모두 수집하는 것은 불가능하다.
  • 만약 실제 데이터를 모두 수집하여도 모든 데이터를 학습시키기 위한 시간이 측정 불가능한 수준으로 증가할 수 있다.
  • 학습 데이터만 가지고 실제 데이터의 오차가 증가하는 지점을 예측하는 것은 매우 어렵거나 불가능하다.

 

3. Overfitting과 최적화 (Optimization)

Overfitting 문제를 해결하기 위한 방법은 예전부터 계속 연구되어왔는데, 그중 가장 직관적이면서도 많이 이용된 방법은 최적화 기법을 이용하는 것이다. 머신 러닝을 공부하다보면 항상 같이 나오는 키워드로 인공신경망 (artificial neural network, ANN) 그리고 서포트 벡터 머신 (support vector machine, SVM)이 있다. 이 중에서 서포트 벡터 머신은 기존의 인공신경망이나 에너지 모델과는 다르게 데이터를 분류하기 위한 decision surface를 찾는 것과 동시에 각 데이터의 집합과 decision surface간의 거리 (margin) 최대화하는 방식으로 학습을 진행한다. 아래의 그림과 같이 만약 머신 러닝 모델이 A와 B라는 두 decision surface를 찾은 경우, 기존의 인공신경망이나 에너지 기반 모델은 A 또는 B 중 하나를 선택한다. 그러나 서포트 벡터 머신은 항상 두 그룹으로부터 거리가 최대인 A를 선택함으로써, X-Y 평면에 새로운 데이터가 입력될 때 오분류될 가능성을 최소화한다.

 

 

 

Overfitting을 최소화하기 위한 SVM의 이러한 학습 방식 덕분에 SVM은 딥 러닝이 등장하기 전까지 머신 러닝 분야에서 가장 뛰어난 알고리즘으로 평가되었다.