머신러닝

과대적합(Overfitting)과 과소적합(Underfitting)

데이터_박과장 2023. 3. 20. 12:02

과대적합(Overfitting)과 과소적합(Underfitting)은 머신러닝에서 모델의 성능과 관련된 중요한 개념입니다.

 

출처: v7labs.com


과대적합은 모델이 학습 데이터에 지나치게 맞추어져 새로운 데이터에 대해서는 일반화(generalization) 능력이 부족한 상태를 의미합니다. 즉, 모델이 훈련 데이터에 대해서는 높은 정확도를 보이지만, 새로운 데이터에 대해서는 성능이 낮아지는 현상입니다. 과대적합이 발생하면 모델은 훈련 데이터에 너무 적합화되어 새로운 데이터를 처리할 때 예측력이 떨어지는 경우가 많습니다.

과소적합은 반대로 모델이 학습 데이터를 제대로 학습하지 못하여, 훈련 데이터에 대한 정확도가 낮은 상태를 의미합니다. 이 경우에는 새로운 데이터나 실제 데이터에서도 성능이 저하될 가능성이 높습니다.

모델의 총 에러정도를 bias와 variance의 총 합으로 바라보시면 됩니다.

 



이러한 과대적합과 과소적합은 모델의 복잡도와 학습 데이터의 양에 영향을 받습니다. 모델이 복잡하면 학습 데이터에 과대적합될 가능성이 높아지고, 모델이 단순하면 학습 데이터에 과소적합될 가능성이 높아집니다. 또한 학습 데이터의 양이 부족하면 모델이 학습 데이터에 과대적합될 가능성이 높아지고, 충분한 양의 학습 데이터가 있는 경우 일반적으로 과대적합 문제를 완화할 수 있습니다.

 

출처: kaggle.com



Overfitting을 해결하기 위한 방법

 

  1. 더 많은 데이터 수집: Overfitting은 주로 학습 데이터가 적을 때 발생합니다. 따라서 더 많은 데이터를 수집하여 학습 데이터의 양을 늘리는 것이 해결책 중 하나입니다.
  2. 모델의 복잡도 감소: 모델의 복잡도를 줄이는 것도 Overfitting을 해결하는 데 도움이 됩니다. 예를 들어, 의사결정나무(Decision Tree)의 최대 깊이를 제한하거나 신경망(Neural Network)의 은닉층 수를 줄이는 등의 방법을 사용할 수 있습니다.
  3. Regularization: Regularization은 모델의 복잡도를 줄이면서 Overfitting을 방지하는 기술입니다. L1, L2 등의 규제 항을 추가하여 모델의 가중치(wieght)를 제한하는 방식으로 동작합니다.
  4. Dropout: Dropout은 신경망에서 많이 사용되는 방법으로, 학습 과정에서 일부 뉴런을 임의로 제거하여 모델의 복잡도를 줄입니다. 이를 통해 Overfitting을 방지하고, 모델의 일반화 성능을 향상시킬 수 있습니다.
  5. Early Stopping: Early Stopping은 학습 과정 중에 검증 데이터(validation data)의 오차가 증가하기 시작할 때 학습을 멈추는 방식입니다. 이를 통해 학습 데이터에 Overfitting되는 것을 방지할 수 있습니다.
  6. Cross Validation: Cross Validation은 모델의 일반화 성능을 평가하기 위한 기술로, 데이터를 여러 개의 Fold로 나누어 각 Fold를 순서대로 검증 데이터로 사용하는 방식입니다. 이를 통해 모델의 일반화 성능을 더 정확하게 평가할 수 있으며, Overfitting을 방지하는 데에도 도움이 됩니다.

 

 

Underfitting을 해결하기 위한 방법

 

  1. 더 복잡한 모델 사용: Underfitting은 주로 모델이 너무 단순할 때 발생합니다. 따라서 모델의 복잡도를 높이는 것이 해결책 중 하나입니다. 예를 들어, 의사결정나무의 최대 깊이를 늘리거나, 신경망의 은닉층 수를 늘리는 등의 방법을 사용할 수 있습니다.
  2. 더 많은 특성 추가: Underfitting은 주로 데이터의 특성이 너무 적을 때 발생합니다. 따라서 더 많은 특성을 추가하여 모델이 데이터를 더 잘 설명할 수 있도록 하는 것이 해결책 중 하나입니다.
  3. Regularization 감소: Regularization은 모델의 복잡도를 줄이는 기술이기도 합니다. 따라서 Underfitting을 해결하기 위해서는 Regularization을 감소시켜야 합니다. 예를 들어, L1, L2 등의 규제 항의 강도를 줄이는 등의 방법을 사용할 수 있습니다.
  4. 데이터 정제: 데이터에 결측치(missing value)나 이상치(outlier)가 포함되어 있을 경우, 이를 정제하여 모델이 더 잘 학습할 수 있도록 해야 합니다.
  5. 더 많은 에포크(epoch) 사용: 모델이 Underfitting되었다면, 학습을 더 오랫동안 진행해야 할 수도 있습니다. 이를 위해 더 많은 에포크를 사용하여 학습을 진행하면 모델의 성능이 향상될 수 있습니다.
  6. 모델의 하이퍼파라미터 조절: 모델의 하이퍼파라미터를 조절하여 Underfitting을 해결할 수도 있습니다. 예를 들어, 의사결정나무의 최대 깊이나 신경망의 은닉층 수 등의 하이퍼파라미터를 조절하여 모델의 성능을 향상시킬 수 있습니다.