개발로그필름
[ML] 과소적합 vs 과대적합 본문
728x90
반응형
SMALL
과소적합(Underfitting)과 과대적합(Overfitting)은 머신러닝 모델 성능을 평가할 때 아주 중요한 개념
쉽게 말하면, 모델이 너무 단순하거나 너무 복잡해서 문제를 잘 풀지 못하는 상태
반응형
1. 과소적합 (Underfitting)
모델이 너무 단순해서 훈련 데이터도 제대로 학습하지 못한 상태
특징
- 훈련 데이터 정확도 낮음
- 테스트 데이터 성능 낮음
- 데이터의 패턴 잘 포착하지 못함
예시
- 선형 모델이 복잡한 곡선 형태의 데이터를 학습하려 할 때
- 결정트리의 최대 깊이를 너무 작게 설정했을 때
해결 방법
- 더 복잡한 모델 사용 (예: 선형 → 결정트리, 신경망 등)
- 더 많은 피처 사용
- 학습을 더 오래 시킴
2. 과대적합 (Overfitting)
모델이 너무 복잡해서 훈련 데이터에만 지나치게 맞춘 상태
그래서 새로운 데이터(테스트셋) 에는 성능이 떨어짐
특징
- 훈련 데이터 정확도 매우 높음
- 테스트 데이터 성능 낮음
- 노이즈까지 학습
예시
- 결정트리의 깊이가 너무 깊어서 훈련 데이터를 모두 외워버림
- 신경망이 너무 많은 파라미터를 가지고 있을 때
해결 방법
- 모델 단순화 (복잡도 감소)
- 정규화 (Regularization) 사용
- 조기 종료 (Early Stopping)
- 데이터 양 늘리기
- 교차 검증 사용
3. 예시
과소적합 (Underfitting)
상황
- 학생이 공부를 너무 적게 했다
- 기초적인 개념조차 제대로 이해하지 못한 상태로 시험을 본다면,
- 기출문제(훈련 데이터) 도 못 풀고
- 실전문제(테스트 데이터) 도 못 푼다
머신러닝 관점
- 모델이 너무 단순해서 학습 데이터의 패턴을 제대로 파악하지 못함
- 예: 선형 모델이 복잡한 곡선 형태 데이터를 학습하려고 할 때
- 특징: 학습 성능도 낮고, 새로운 데이터 성능도 낮음
해결 방법
- 더 복잡한 모델 사용하기 (예: 선형 모델 → 비선형 모델)
- 학습 더 시키기 (에포크 수 증가 등)
- 피처(변수) 추가하기
과대적합 (Overfitting)
상황
- 학생이 기출문제만 달달 외워버린 상황
- 기출문제는 100점 맞지만, 시험에서는 살짝 응용된 문제가 나온다
- 그러면 외운 내용이 그대로 안 나오니까 틀림
- 기출문제(훈련 데이터) 는 완벽하게 맞추지만
- 실제 시험문제(테스트 데이터) 에는 성적이 떨어지는 상황
머신러닝 관점
- 모델이 너무 복잡해서 학습 데이터에만 최적화됨
- 심지어 데이터 속 노이즈(우연한 잡음) 까지도 외워버림
- 특징: 학습 정확도는 높지만, 테스트 정확도는 낮음
해결 방법
- 모델 단순화 (예: 깊은 신경망 → 얕은 구조로)
- 정규화 기법 사용 (L1/L2 등)
- 데이터를 더 많이 수집해서 일반화 향상
- 조기 종료(Early Stopping): 과하게 외우기 전에 멈추기
왜 이 둘이 중요할까?
- 머신러닝의 목표는 “새로운 데이터에도 잘 작동하는 모델” 을 만드는 것
- 그래서 훈련 데이터에 너무 적게, 혹은 너무 많이 맞추는 것 모두 문제
- 적절하게 학습된(일반화된) 모델을 만들어야 한다
- 즉, 학습 데이터와 테스트 데이터 모두에서 균형 잡힌 성능을 보여야 한다
4. 요약 정리
구분 | 정의 | 특징 | 해결 방법 |
과소적합 | 모델이 너무 단순해서 학습 부족 | 훈련/테스트 모두 정확도 낮음 | 모델 복잡도 증가 |
과대적합 | 모델이 너무 복잡해서 과도한 학습 | 훈련은 정확, 테스트 성능 낮음 | 정규화, 단순화 등 |
반응형
LIST
'ML' 카테고리의 다른 글
[ML] 앙상블이란? (0) | 2025.05.25 |
---|---|
[ML] 결정트리회귀란? (0) | 2025.05.24 |
[ML] 결정나무의 주요 특징 (0) | 2025.05.24 |
[ML] 원 핫 인코딩 (One-Hot Encoding) (0) | 2025.05.22 |
[ML] 결정나무란? (0) | 2025.05.21 |
Comments