일반적으로 지도학습 모델은 학습 데이터로 훈련 뒤 평가 데이터에서도 정확하게 예측하기를 기대한다.
•
훈련된 모델이 처음 보는 데이터에 대해 정확하게 예측한다면 이러한 상태를 일반화 (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
•
학습 과정에서 신경망의 일부를 사용하지 않는 방법
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'!