728x90
과대적합(overfitting)
모델이 훈련 세트에 과하게 적합한 상태가 되었을 때 발생하는 문제를 말한다.
모델을 지나치게 복잡하게 학습하여 훈련 데이터 셋에서는 모델 성능이 높지만 다른 데이터가 주어졌을 때에는 정확한 예측/분류를 못한다는 것이다.
예를 들어, 중간고사 시험을 위해 중간고사에 대한 답지를 모델에게 학습 시켰을 때 중간고사 시험에 대한 테스트 점수는 높겠지만 기말고사 시험 문제를 주었을 때에는 점수가 낮게 나오는 것으로 비유할 수 있다.
발생 원인
- 데이터 세트 내 데이터가 충분하지 못한 경우
- 데이터 세트 내 분산이 크거나 노이즈가 큰 경우
- 모델의 복잡도가 큰 경우
- 과도하게 큰 epoch로 학습한 경우
해결 방법
- 데이터 양 늘리기
- 데이터 양이 적어서 해당 데이터의 특징 패턴, 노이즈까지 학습해버리기 때문에 데이터 양을 늘려야 모델은 일반적인 패턴을 학습하여 과대적합을 방지할 수 있다.
- 모델의 복잡도 줄이기
- Dropout 사용하기
Dropout은 학습 과정에서 신경망의 일부를 사용하지 않는 방법이다. 예를 들어서 Dropout의 비율을 0.5로 한다면 아래 그림처럼 학습 과정마다 랜덤으로 절반의 뉴런을 사용하지 않고 절반만 사용하게 된다.
Dropout은 신경망 학습 시에만 사용하고, 예측 시에는 사용하지 않는 것이 일반적이다. 학습 시에 인공 신경망이 특정 뉴런 또는 특정 조합에 너무 의존적이게 되는 것을 방지해주고, 매번 랜덤 선택으로 뉴런들을 사용하지 않으므로 서로 다른 신경망들을 앙상블하여 사용하는 것 같은 효과를 내어 과적합을 방지한다.
4. 출력층 직전 은닉층의 노드 수 줄이기
- 쓸데 없는 변수들을 제거해서 입력 변수의 수를 줄인다. 의미있는 설명 변수들을 남기기 위해 출력 직전 노드를 줄이는 것이다.
5. 학습 데이터의 noise 줄이기(이상치 제거, 오류 데이터 수정)
과소적합(underfitting)
과대적합의 반대로 머신러닝 모델이 학습이 제대로 수행되지 않아 학습 데이터의 구조/패턴을 정확히 반영하지 못하는 문제이다.
발생 원인
- 충분한 샘플들이 주어지지 않았을 때
- 데이터의 양이 적을 때
해결 방법
- 파라미터가 더 많은 복잡한 모델을 선택한다.
- 더 좋은 특성들을 제공한다(Feature Engineering)
- 규제 하이퍼파라미터를 감소시키는 등의 방법으로 모델의 제약을 줄인다.
출처:
'데이터분석 > ML 이론' 카테고리의 다른 글
경사 하강법(Gradient descent) (2) | 2023.01.09 |
---|