과대적합과 과소적합

머신러닝에서 모델(알고리즘)의 적합성은 중요한 의미를 내포하고 있습니다.
모델 정확성에 대한 근본적인 원인을 이해하는 것은 아주 중요한 부분을 차지합니다.



1. 과대적합(Overfitting)

머신러닝에서 과대적합은 학습데이터를 과하게 잘 학습한 것을 의미합니다. 너무 과하게 학습을 진행해 학습되지 않은 데이터가 들어오면 분류하지 못하게 됩니다.
따라서, 학습 데이터에 대해서는 오차가 감소하지만, 실제 데이터에 대해서는 오차가 증가하는 지점이 존재합니다. 
아래의 그림(Fig. 1)에서는 테스트 에러가 감소하다 갑자기 치솟는 부분에서 과대적합이 발생했다고 볼 수 있습니다.


< Fig. 1. 머신러닝에서의 과대적합 예시 >


과대적합의 해결 방법은 아래와 같습니다.

  • 파라미터 수가 적은 모델을 선택하거나, 모델에 제약을 가하여 단순화시킵니다.
  • 훈련 데이터를 더 많이 확보합니다.
  • 훈련 데이터의 잡음을 줄입니다. (Outlier, Error 제거)


모델을 단순하게 하고 과대적합의 위험을 감소시키기 위해 모델에 제약을 가하는 것을 규제(Regularization)라고 합니다. 예를 들어 앞서 만든 선형 모델은 두 개의 파라미터 𝜃₀와 𝜃₁을 가지고 있었습니다. 이는 데이터에 모델을 맞추기 위한 두 개의 자유도(Degree of Freedom)를 학습 알고리즘에 부여합니다. 모델은 직선의 절편(𝜃₀)과 기울기(𝜃₁)를 조절할 수 있습니다. 우리가 𝜃₁ = 0이 되도록 강제하면 알고리즘에 한 개의 자유도만 남게 되고, 데이터에 적절하게 맞춰지기 힘들어집니다. 즉, 할 수 있는 것이 훈련 데이터에 가능한 가깝게 되도록 직선을 올리거나 내리는 것이 전부이므로 결국 평균 근처가 됩니다. 알고리즘이 𝜃₁을 수정하도록 허락하되 작은 값을 갖도록 유지시키면 학습 알고리즘이 자유도 1과 2 사이의 적절한 어딘가에 위치할 것을 예상할 수 있습니다.

이러한 모델은 자유도가 2인 모델보다는 단순하고 자유도가 1인 모델보다는 복잡한 모델을 만들게 됩니다.
데이터에 완벽히 맞추는 것과 단순한 모델을 유지하는 것 사이의 올바른 균형을 찾는 것이 좋습니다.



2. 과소적합(Underfitting)

과소적합은 과대적합의 반대 개념이라고 할 수 있습니다. 이는 모델이 너무 단순해서 데이터의 내재된 구조를 학습하지 못할 때 발생합니다.
Fig. 1에서 

< Fig. 2. 과소적합, 과대적합의 예시 >


과소적합의 해결 방법은 아래와 같습니다.

  • 파라미터가 더 많은 강력한 모델을 선택합니다.

  • 학습 알고리즘에 더 좋은 특성을 제공합니다.

  • 모델의 제약을 줄입니다.



데이터를 올바르게 학습시키기 위해서는 과대적합과 과소적합의 중간점을 찾는 것이 좋습니다.
Fig. 3에서 보이는 바와 같이 너무 잘 분류해도, 분류하지 못해도 올바른 모델이라고 할 수 없습니다.

< Fig. 3. 좋은 알고리즘과 나쁜 알고리즘의 예시 >



References

  • 오렐리앙 제롱, '핸즈온 머신러닝', 한빛미디어, 2018
  • https://medium.com/greyatom/what-is-underfitting-and-overfitting-in-machine-learning-and-how-to-deal-with-it-6803a989c76




+ Recent posts