본문 바로가기
기초 머신러닝

Overfitting, Early Stopping, Underfitting

by eongco 2024. 12. 12.

Overfitting

데이터에 대한 복잡도보다 모델의 복잡도가 큰 경우 Overfitting이 발생한다

 

모델의 복잡도가 커진다는 것은 

 

모델은 하나의 함수라고 봐도 되는데

 

함수의 차원이 증가하는 것이다

 

데이터의 분포가 1차원의 직선 형태인데 모델은 3차 4차 혹은 그 이상의 고차원의 함수 형태를 띄게 되면 이때 Overfitting이 발생했다고 할 수 있는 것이다

 

아래 그림은 참고하면 이해에 도움이 된다

 

최고차항이 4차인 곡선의 모델이 좌측의 곡선들에 비해 복잡한 것이다

 

 

Overfitting이 발생하게 되는 이유는 특정 Train data에 과하게 핏하게 학습되기 때문이다

 

아래는 Overfitting 된 모델의 모습이다

좌측은 linear regression에서 overfitting이 발생한 모습이고 우측의 그림은 분류 모델에서의 overfitting이 발생한 모습이다

 

좌: linear regression에서의 overfitting, 우: 분류 모델에서의 overfitting이 발생한 모습이다

 

아래는 어떤 블로그글을 보고 이렇게 정리하면 한 눈에 보기 좋겠다는 생각을 해서 비슷하게 정리해봤습니다

 

Overfitting 이 발생하는 이유 - 모델의 복잡도가 데이터의 복잡도보다 큰 경우
- 일부 가중치의 크기가 큰 경우
- 데이터가 부족한 경우
- 너무 많은 Epoch로 학습하는 경우
Overfitting을 해결하는 방법 - 데이터의 복잡도를 늘린다 (더 많은 데이터를 확보한다)
- Regularization을 통해 모델을 규제한다 
- Validation set을 이용해 적정 epoch로 조정한다 

 

Early Stopping (적정 Epoch 조정 방법)

Learning curve에서 Validation error가 Train error 보다 커지는 지점을 찾고 그 이전에 학습을 중단한다

 

이 방법을 Early Stopping이라고 한다

 

출처: https://yhyun225.tistory.com/17

 

Underfitting

Overfitting과는 반대되는 개념으로

 

오히려 데이터의 복잡도가 모델의 복잡도 보다 큰 경우에 일어난다

 

이는 모델이 그냥 Train data에 대해 학습이 덜 됐다고 봐도 무방하다

 

Underfitting을 해결하기 위해서는 epoch를 늘려 학습을 더 오래 시킬 수 있다.

 

 

 

좌: linear regression에서의 underfitting, 우: 분류 모델에서의 underfitting

 

Learning curve를 확인하면 underfitting일 때 Train error와 Validation error 모두 높다.

 

 

최근댓글

최근글

skin by © 2024 ttuttak