Pytorch
Overfitting, Underfitting
술임
2025. 5. 9. 17:48
Overfitting
• 모델이 학습 데이터(Training data)에 과하게(over) 맞춰진(fitted) 상황
• 모델이 문제를 해결하는데 있어서 범용성(Generality)이 떨어지는 문제
원인
데이터
• 학습 데이터가 다양한 특징을 반영하지 못하고 편향되어 있는 경우
• 데이터 자체가 부족한 경우
• 데이터의 특징이 너무 다양해서 결정 경계를 만들기 어려운 경우
학습 알고리즘
• Loss 함수에 의해 오차 자체가 너무 데이터에 fit하게 모델이 학습하는 경우
모델
• 데이터에 비해 너무 복잡한 모델을 활용하는 경우 -> hidden layers
-> 히든 유닛이 많으면 결정 경계를 더 고차원으로 만들 수 있음
• 모델에 너무 많은 정보를 담으려고 하는 경우 -> layer 깊이
• 모델을 필요 이상으로 학습을 진행하는 경우 -> epoch
해결방안 - 데이터
데이터 증가
• 모델이 더 다양한 분포의 데이터를 학습 가능하도록 유도 해야함
• 효과가 크지 않고 많은 비용이 발생하여 비효율적임
Data augmentation
• 제한된 데이터 내에서 다양성을 부여하여 일반적 특징을 학습시키기 위한 방법
• 데이터를 Rotate, Cut, Flip 등을 하여 변형 시킴
Feature selection
• 제한된 데이터 내에서 데이터를 일반화 시키기 위한 방법
• 딥러닝에서는 잘 활용되지 않지만, 데이터를 더 늘릴 수 없는 경우 효과적
Cross-validation
• 학습 데이터와 테스트 데이터를 K 그룹으로 분리하여, 각 epoch마다 validation 데이터를 교차 적용하는 법
• validation 데이터를 모두 학습에 사용
• 역시 딥러닝에서는 잘 활용되지 않지만 데이터가 적은 경우에는 활용 할 수 있음
• 딥러닝에서는 잘 활용되지 않음
해결방안 – Regularization
Regularization
• Loss 함수 결과값에 너무 fit해서 학습하는 것을 방지
• Error 값에 대한 패널티를 부여하는 것
• L=Error(y, y ̂ )+λ regularization
Balancing the error between regularization term
• Regularization term이 포함된 loss가 가장 저점이 되는 지점은 두 point가 맞닿는 부분
• 맞닿는 지점을 만들기 위해서는 두 값 중 하나는 증가해야 함. 증가 없이는 교차점을 만들 수 없음
• L1 regularization은 Sparsity 부여 가능
Loss 값과 Regularization 값이 교차하는 지점이 Axis인 경우
• L2 regularization은 모양의 한계 때문에 Axis위에서 교차점을 찾기 어려움
해결방안 – 모델
Remove Hidden units or Layers
• 데이터에 비해 모델이 너무 복잡한 경우, 모델을 간소화 시킬 수 있음
• 모델은 간소화 시킨다는 것은 모델의 크기(깊이 또는 넓이)를 줄이는 것을 의미
Dropout
• Dropout은 학습하는 단계에서 몇 개의 neuron은 비활성화 상태로 만들고,
Test 단계에서 모두 활성화 하는 방법
Test 단계에서 모두 활성화 하는 방법
• Hidden Unit을 줄이는 효과와 비슷함
Early stopping
• 모델 학습에서 Validation set의 오류가 증가하는 현상에서 학습을 중지하는 방법
• Overfitting을 예방하는 가장 쉬운 방법이나, 아직 학습이 덜 되었을 가능성에서 좋은 방법은 아님
Underfitting
• 모델이 학습 데이터(Training data)에서 입력 데이터와 출력 결과에서 관계를 잘 못 찾아 내는 현상
• 학습 데이터와 테스트 데이터 모두에서 정확도가 낮게 측정될 때 underfitting 현상이 발생하고 있음을 추정
• 데이터에 비해 모델이 너무 간단하거나, 학습 시간이 짧거나, learning rate가 적합하지 않을 때 발생
해결방안
Decrease regularization
• 정규화는 overfitting에서 확인했듯, 모델의 복잡도를 낮추기 위해 사용
• 이를 반대로 적용하여, regularization을 낮추는 것이 underfitting에서 도움이 될 수 있음
Increase the duration of training
• 학습이 아직 되고 있지 않은 시점일 수 있음
• 따라서 epoch을 더 늘리거나, learning rate를 조절하는 것이 도움이 됨
Feature selection
• 모델에 비해 데이터가 너무 복잡 하면서 발생 가능 할 수 있음
• 데이터의 양이 적고, feature가 많은 경우 불필요한 정보를 삭제하는 것이 도움 됨