Sign In

[AI] 일반화, 과소적합, 과대적합

Y
Yerim
  1. ML
  2. DL

일반화, 과대적합, 과소적합

일반화 Generalization

일반적으로 지도학습 모델은 학습 데이터로 훈련 뒤 평가 데이터에서도 정확하게 예측하기를 기대한다.
훈련된 모델이 처음 보는 데이터에 대해 정확하게 예측한다면 이러한 상태를 일반화 (generalization) 되었다고 한다.
모델이 항상 일반화되는 것은 아니다.

과대적합 (Overfitting)

머신러닝 모델을 학습할 때 학습 데이터셋이 지나치게 최적화하여 발생한다.
주어진 훈련 데이터에 비해 복잡한 모델을 사용한다면, 모델은 훈련 데이터에서만 정확한 성능을 보이고, 평가 데이터에서는 낮은 성능을 보인다.
즉, 훈련 데이터는 잘 예측하지만, 일반적인 특징을 학습하지 못해 평가 데이터에서는 낮은 성능을 보이는 상태를 과대적합(Overfitting)이라고 한다.
아래 데이터 셋처럼 데이터를 특정한 조건/구조를 지나치게 반영하면 고양이나 강아지 그림이라고 창의적으로 판단 할 수도 있다.

과소적합(underfitting)

과대 적합의 반대 개념이다.
주어진 훈련 데이터에 비해 너무 간단한 모델을 사용하면, 모델이 데이터에 존재하는 다양한 정보들을 제대로 학습하지 못한다.
이러한 경우 훈련 데이터에서도 나쁜 성능을 보이고 평가 데이터에서도 낮은 성능을 보이는 과소적합(underfitting)되었다고 한다.

모델 복잡도와 데이터셋 크기의 관계

데이터의 다양성이 클수록 더 복잡한 모델을 사용하면 좋은 성능을 얻을 수 있다.
일반적으로 더 큰 데이터셋(데이터 수, 특징 수)일수록 다양성이 높기 때문에 더 복잡한 모델을 사용할 수 있다.
하지만, 같은 데이터를 중복하거나 비슷한 데이터를 모으는 것은 다양성 증가에 도움이 되지 않는다.
데이터를 더 많이 수집하고 적절한 모델을 만들어 사용하면 지도 학습을 사용해 놀라운 결과를 얻을 수 있다.

과대적합, 과소적합 발생 여부 탐지

분산과 편향 기반 탐지

편향과 분산이 작은 경우 데이터가 target 근처에 잘 모여 분포해 있으므로 최적의(optimal) 솔루션이다.
편향
데이터가 target으로부터 떨어져 있는 정도
편향이 크면 과대 적합 박생
분산
데이터셋 내 데이터가 얼마나 퍼져 있는가
분산이 크면 과소적합 발생

산점도 그래프 기반 구분

결정 경계선(decision boundary)) 근처에 새로운 데이터가 주어지면 오분류의 가능성이 높아지게 되는 과대 적합이 발생

모델 복잡도 및 손실함수 기반 탐지

error은 모델 학습에서 궁극적인 목푯값인 손실함수를 의미한다.
x축은 모델의 복잡도, 단순히 epoch 수가 아니다.
과소적합 발생 구간
모델이 지나치게 단순, 학습 데이터의 특성 반영X → train loss높게
일정 수준까지는 모델이 점차 복잡해질수록 train loss, validation loss 감소
모델의 성능에 도달하기 전까지는 과소적합이 발생했다고 한다.
과대적합 발생 구간
모델이 점차 복잡해지면 trian dataset에 따라 Gradien Descent 기법을 중심으로 모델이 학습 → train loss 꾸준히 감소
모델 복잡도가 일정 수준을 넘어가 모델이 training dataset에 overfitting되면 오히려 validation loss가 증가 → validation loss가 감소 후 증가하는 구간에서 과대적합 발생
최적의 모델 적합 포인트
validation loss가 감소하다 증가하기 시작하기 직전의 포인트가 모델의 성능이 가낭 우수할 가능성(i.e. best fit)이 높다.

과대 적합 방지 방법

데이터 양 늘리기

데이터의 양이 적을 경우 해당 데이터의 특징 패턴이나 노이즈까지 학습 → 과적합 확률↑
데이터 증식 또는 증강 Data Augmentation: 데이터가 적을 경우 기존의 데이터를 변형하고 추가하여 데이터의 양을 늘릴 수도 있음
역번역 Back Translation: 데이터를 번역 후 재번역을 통해 새로운 데이터를 만들어냄

모델의 복잡도 줄이기

인공 신경망에서 복잡도는 은닉층의 수나 매개변수의 수 등으로 결정
인공신경망의 복잡도를 줄여 과적합 현상을 해결할 수 있다

학습 조기종료 Early stopping

Epoch 내 validation loss가 감소하지 않으면 과대적합이 발생했다고 간주하고 학습을 종료
validation loss가 가장 낮은 지점인 최적(optimal) epoch에서 모델을 저장해 주는 기법
ecpoch는 하이퍼파라미터(hyperparameter, 초매개변수)로서 한 두번의 epoch에서는 validatino loss가 감소하지 않는 경우가 종종 발생하기 떄문에 3 이상의 값으로 설정해야 한다.

가중치 규제 Regularization

모델을 좀 더 간단하게 만드는 방법
L1 규제: 가중치 w들의 절대값 합계를 비용 함수에 추가
L2 규제: 모든 가중치 w들의 제곱합을 비용함수에 추가

드롭아웃 Dropout

학습 과정에서 신경망의 일부를 사용하지 않는 방법
Yerim-DevNote
Subscribe to 'Yerim-DevNote'
Subscribe to my site to be the first to receive notifications and emails about the latest updates, including new posts.
Join Slashpage and subscribe to 'Yerim-DevNote'!
Subscribe
👍