Hello COCOBALL!

[DL] Overfitting, Underfitting 본문

Deep Learning

[DL] Overfitting, Underfitting

coco_ball 2024. 6. 21. 20:28

Onverfitting, Underfitting 예시

Overfitting

모델이 학습 데이터에 너무 맞추어져서 새로운 데이터에 대해 일반화되지 않는 현상을 의미한다. 모델이 학습 데이터의 노이즈와 세부 사항까지 학습하여 복잡하고 불필요한 패턴을 인식하게 되는데, 이는 학습 데이터에 대한 성능은 높지만 테스트 데이터나 실제 데이터에 대한 성능은 낮아지는 결과를 초래한다.

학습 데이터가 부족하거나, 데이터의 특성에 비해 모델이 너무 복잡한 경우에 발생한다.(학습 데이터보다 모델의 파라미터 개수가 더 많은 경우)

Train dataset에 대한 loss는 계속 떨어지는 반면 test dataset에 대한 loss는 감소하다가 다시 증가하는 추세를 보인다.

 

원인

모델이 너무 복잡하여 많은 매개변수를 가지고 있을 때(Model Capacity : 파라미터의 개수, 모델이 더 복잡한 형상을 나타낼 수 있는 정도), train dataset의 세부적인 패턴과 노이즈까지 학습하게 된다.
Train dataset으로 Model Capacity가 매우 높은 모델을 학습할 경우, 모델이 train dataset을 외워버리는 것으로 학습될 수 있다. 모델이 train dataset을 외웠기 때문에, 다른 데이터가 들어오면 올바른 결과를 출력하지 못한다.

학습 데이터가 충분하지 않을 경우, 모델이 데이터의 일반적인 패턴을 학습하기보다 특이한 세부 사항을 학습할 가능성이 높다.

모델 학습 과정에서 적절한 정규화 기법이 적용되지 않을 경우, overfitting이 발생하기 쉽다.

 

해결책

1. 더 많은 데이터 사용

학습 데이터의 양을 늘리면 모델이 더 일반적인 패턴을 학습할 수 있게 되어 overfitting을 줄일 수 있다.

데이터 증강(data augmentation): 데이터 증강 기법을 사용하여 학습 데이터를 인위적으로 늘린다.

더 많은 데이터 수집: 가능한 경우, 추가적인 데이터 수집을 통해 학습 데이터를 늘릴 수 있다.

2. 모델 단순화

작은 모델 사용: 뉴런, 레이어, 매개변수의 수를 줄여 모델을 단순화한다.

특징 선택: 중요한 특징만 선택하여 모델의 입력 차원을 줄일 수 있다.

3. 정규화 기법 적용

L1/L2 정규화: 손실 함수에 패널티를 추가

드롭아웃(dropout): 학습 과정에서 일부 뉴런을 무작위로 비활성화하여 과적합을 줄인다.

4. 교차 검증 사용

K-겹 교차 검증: 데이터를 k개의 부분으로 나누어 각 부분을 검증 세트로 사용하여 모델을 평가한다.

5. 조기 종료(Early stopping)

학습 과정에서 검증 데이터에 대한 성능이 더 이상 향상되지 않을 때 학습을 중단한다.

UnderFitting

모델이 train dataset도 학습을 제대로 하지 못하여 train dataset과 test dataset 모두에 대해 잘 맞지 않는 현상을 의미한다. 모델이 너무 단순하여 데이터의 패턴을 제대로 학습하지 못하는 경우 발생하고, 이는 모델이 데이터의 기본적인 구조조차 학습하지 못해 예측 성능이 낮아지는 결과를 초래한다.


원인

모델이 너무 단순하여 데이터의 복잡한 패턴을 학습하지 못한다. 예를 들어, 선형 모델을 비선형 데이터에 적용하면 underfitting이 발생한다.

충분한 데이터를 제공받지 못한 모델은 데이터의 패턴을 제대로 학습하지 못하여 underfitting이 발생할 수 있다.

학습이 충분히 이루어지지 않은 경우, 모델이 데이터의 패턴을 학습하기 전에 학습이 중단되어 underfitting이 발생할 수 있다.

 

해결책

1. 모델 복잡도 증가

더 복잡한 모델을 사용하여 데이터의 패턴을 더 잘 학습할 수 있게 한다.

더 많은 레이어와 뉴런을 포함한 신경망을 사용한다.

비선형 모델(결정 트리, 랜덤 포레스트, SVM 등)을 사용한다.

2. 데이터 증가

더 많은 데이터를 수집하거나 데이터 증강 기법을 사용하여 학습 데이터를 증가시킨다.

3. 충분한 학습 시간 확보

핛브을 충분히 수행하여 모델이 데이터의 패턴을 학습할 수 있게 한다.

학습 에포크 수를 증가시켜 모델이 충분히 학습될 수 있게 한다.

조기 종료를 사용하여 최적의 학습 시점을 찾는다.