본문 바로가기

Learning/Tuning

Overfitting과 Underfitting 정의 및 해결 방법

반응형

만약 동일한 점들이 주어지고 이 점을 대표할 수 있는 함수(곡선)을 추정하는 경우에서, 가운데가 optimize하다고 한다면

  • 왼쪽은 지나친 단순화로 인해 에러가 많이 발생해 underfitting이라 합니다.
  • 오른쪽은 너무 정확하게 표현한 나머지 training data에 대한 정확도는 좋지만 실제 test에서는 에러가 날 수 있는 상황이라 overfitting이라 합니다.

모델은 과대적합(Overfitting)과 과소적합(Underfitting)이 발생하지 않도록 설계하는 것이 중요합니다.

 

1. Overfitting이란?

 

Overfitting은 학습 데이터(Training Set)에 대해 과하게 학습된 상황입니다. 따라서 학습 데이터 이외의 데이터에 대해선 모델이 잘 동작하지 못합니다. 학습 데이터가 부족하거나, 데이터의 특성에 비해 모델이 너무 복잡한 경우 발생합니다. Training Set에 대한 loss는 계속 떨어지는데, Test Set에 대한 loss는 감소하다가 다시 증가합니다.

 

1-1. 원인: Model Capacity

Model Capacity는 모델이 더 복잡한 형상을 나타낼 수 있는 정도를 의미합니다. MLP에서 Model Capacity를 늘리려면 layer를 더 deep하게 쌓거나 layer당 hidden unit 개수를 늘리면 됩니다. 하지만 model capacity를 무한정 늘리면 overfitting이 발생합니다.

모델의 error나 loss를 의미하는 loss는 아래와 같이 두 개로 나눌 수 있습니다.

  • True Risk: 이상적으로 가져올 수 있는 모든 데이터에 대해 계산한 error, loss. 앞으로 어떤 데이터가 들어올지 모르므로, 실제로 줄여야 하는 것은 True Risk입니다.
  • Empirical Risk: 이상적으로 가져올 수 있는 데이터 중 일부 데이터만 가지고 계산한 error, loss입니다. 모든 데이터를 가져올 수는 없기 때문에 구할 수 없는 True Risk 대신, Empirical Risk를 계산합니다.

overfitting을 방지하려면 학습 데이터에 적합한 Model Capacity를 가지도록 모델을 설계할 필요가 있습니다. 예를 들어 dataset이 Train set만 있다고 해 봅시다. 이 데이터로 Model Capacity가 매우 높은 모델을 학습하면, 모델이 Train set을 외워버리는 것으로 학습될 수 있습니다. 모델이 Train set을 외웠기 때문에, 다른 데이터가 들어오면 올바른 결과를 주지 못할 것입니다.

이런 문제가 발생하는 것을 확인하기 위해 train에 사용하지 않는 test set을 두고, test set에 대해서도 모델이 잘 동작하는지 확인합니다. Train sample의 loss는 계속 감소하는데, Test sample의 loss만 계속 증가한다면 overfitting이 발생한다고 볼 수 있습니다.

 

1-2. 해결책

Overfitting이 발생했을 때 사용할 수 있는 일반적인 해결책은 아래와 같습니다.

  • Model Capacity 낮추기: 모델이 학습 데이터에 비해 과하게 복잡하지 않도록, hidden layer 크기를 줄이거나 layer 개수를 줄이는 등 모델을 간단하게 만듭니다.
  • Dropout: 학습을 할 때 일부 뉴런을 끄고 학습합니다.
  • L1/L2 정규화(L1/L2 regularization)
  • 학습 데이터 늘리기(data augmentation)

 

Test Set Accuracy가 증가하다가 감소하면 학습 데이터가 부족한 경우로 볼 수 있습니다. 학습 데이터를 늘릴 필요가 있습니다. 이미지 같은 경우 이미지의 비율을 바꾸거나, 일부분을 가리거나, 회전하는 것으로 데이터를 늘릴 수 있습니다.

Training Set Accuracy가 100%에 가깝지만 Test Set Accuracy가 상당히 낮은 경우가 있습니다. 학습 데이터가 편향되어 있지 않은지 확인할 필요가 있습니다. 특수한 경우의 데이터를 가지고 일반적 문제를 해결하는 경우가 해당될 수 있습니다.

 

2. Underfitting

Underfitting(과소적합)은 이미 있는 Train set도 학습을 하지 못한 상태를 의미합니다. Overfitting과 반대되는 상태를 의미합니다. Overfitting이 바생하는 이유는 아래와 같습니다.

  1. 학습 반복 횟수가 너무 적음
  2. 데이터의 특성에 비해 모델이 너무 간단함
  3. 데이터 양이 너무 적음

 

3. Reference

반응형

'Learning > Tuning' 카테고리의 다른 글

Regularization : L1, L2 regularization  (0) 2020.04.12
Batch Normalization  (0) 2020.04.12
Dropout  (0) 2020.04.12
Regularization  (0) 2020.04.12
Hyperparameter  (0) 2020.04.12