Overfitting
데이터에 대한 복잡도보다 모델의 복잡도가 큰 경우 Overfitting이 발생한다
모델의 복잡도가 커진다는 것은
모델은 하나의 함수라고 봐도 되는데
함수의 차원이 증가하는 것이다
데이터의 분포가 1차원의 직선 형태인데 모델은 3차 4차 혹은 그 이상의 고차원의 함수 형태를 띄게 되면 이때 Overfitting이 발생했다고 할 수 있는 것이다
아래 그림은 참고하면 이해에 도움이 된다
최고차항이 4차인 곡선의 모델이 좌측의 곡선들에 비해 복잡한 것이다
Overfitting이 발생하게 되는 이유는 특정 Train data에 과하게 핏하게 학습되기 때문이다
아래는 Overfitting 된 모델의 모습이다
좌측은 linear regression에서 overfitting이 발생한 모습이고 우측의 그림은 분류 모델에서의 overfitting이 발생한 모습이다
아래는 어떤 블로그글을 보고 이렇게 정리하면 한 눈에 보기 좋겠다는 생각을 해서 비슷하게 정리해봤습니다
Overfitting 이 발생하는 이유 | - 모델의 복잡도가 데이터의 복잡도보다 큰 경우 - 일부 가중치의 크기가 큰 경우 - 데이터가 부족한 경우 - 너무 많은 Epoch로 학습하는 경우 |
Overfitting을 해결하는 방법 | - 데이터의 복잡도를 늘린다 (더 많은 데이터를 확보한다) - Regularization을 통해 모델을 규제한다 - Validation set을 이용해 적정 epoch로 조정한다 |
Early Stopping (적정 Epoch 조정 방법)
Learning curve에서 Validation error가 Train error 보다 커지는 지점을 찾고 그 이전에 학습을 중단한다
이 방법을 Early Stopping이라고 한다
Underfitting
Overfitting과는 반대되는 개념으로
오히려 데이터의 복잡도가 모델의 복잡도 보다 큰 경우에 일어난다
이는 모델이 그냥 Train data에 대해 학습이 덜 됐다고 봐도 무방하다
Underfitting을 해결하기 위해서는 epoch를 늘려 학습을 더 오래 시킬 수 있다.
Learning curve를 확인하면 underfitting일 때 Train error와 Validation error 모두 높다.
'기초 머신러닝' 카테고리의 다른 글
Regularization, L2 regularization (Ridge), L1 regularization (Lasso) (0) | 2024.12.12 |
---|---|
Stratified K-Fold (0) | 2024.12.12 |