Overfitting & Underfitting — 교과서 정의를 넘어 (Part 5)
Source: Dev.to
Part 5 of The Hidden Failure Point of ML Models series
대부분의 ML 초보자는 과적합(overfitting)과 과소적합(underfitting)을 이해하고 있다고 생각합니다. 실제 프로덕션 시스템에서는 과적합이 단순히 “고분산(high variance)”이라거나 과소적합이 “고편향(high bias)”이라기만은 합니다. 데이터가 변하거나 파이프라인이 바뀌거나 피처가 오작동할 때, 이들은 시스템 수준의 실패로 모델 성능을 조용히 파괴합니다. 이 글은 교과서적인 정의를 넘어 실제 엔지니어링 관점에서 이 문제들의 의미를 설명합니다.
Overfitting vs. Underfitting (textbook)
- Overfitting – 모델이 학습 데이터에서는 잘 동작하지만 보지 못한 데이터에서는 성능이 떨어짐.
- Underfitting – 모델이 학습 데이터와 테스트 데이터 모두에서 성능이 좋지 않음.
이 정의들은 맞지만 지나치게 단순합니다.
Operational Overfitting
과적합은 단순히 “암기”가 아닙니다. 다음과 같은 상황에서 발생합니다:
- 진짜 패턴 대신 잡음(noise)을 학습함
- 불안정한 피처에 의존함
- 프로덕션에서는 존재하지 않을 상관관계에 의존함
- 학습 조건 ≠ 실제 환경 조건 때문에 실패함
Example (real ML case)
A churn‑prediction model learns:
if last_3_days_support_tickets > 0 → user will churn
하지만 이 피처는:
- 추론 시 사용할 수 없음
- 자주 누락됨
- 월마다 동작이 다름
결과적으로 모델은 프로덕션에서 붕괴합니다.
Operational overfitting = 환경이 바뀔 때 깨지는 피처/패턴에 의존하는 것.
Operational Underfitting
과소적합은 단순히 “너무 단순한 모델”이 아닙니다. 실제 과소적합은 다음과 같은 경우에 발생합니다:
- 데이터 품질이 낮음
- 피처가 실제 신호를 제대로 표현하지 못함
- 잘못된 샘플링으로 진짜 패턴이 가려짐
- 도메인 이해가 부족함
- 피처 간 상호작용을 무시함
Example
A fraud model predicts fraud = 0 almost always because:
- Training data was mostly clean
- The model never saw rare fraud patterns
- Sampling wasn’t stratified
이 경우는 데이터 과소적합이며, 알고리즘 자체의 실패는 아닙니다.
Specific Overfitting Scenarios
- Feature Leakage Overfitting – 모델이 미래 변수나 숨겨진 변수를 사용함.
- Pipeline Overfitting – 학습 파이프라인과 프로덕션 파이프라인이 다름.
- Temporal Overfitting – 특정 기간에만 존재했던 패턴을 학습함.
- Segment Overfitting – 특정 사용자 그룹이나 지역에만 과적합함.
원인으로는 약하거나 잡음이 많은 피처, 잘못된 전처리, 부적절한 손실 함수, 소수 클래스의 과소표현, 낮은 모델 용량, 도메인 인코딩 부족 등이 있습니다.
How to Detect Overfitting
- 큰 train–validation 성능 차이
- 배포 후 급격한 성능 저하
- 시간에 따른 성능 감소
- 몇 개의 불안정한 피처에 과도하게 의존
- 빈번한 드리프트 감지 알림
How to Detect Underfitting
- 모든 데이터셋에서 낮은 지표
- 데이터를 더 늘려도 개선되지 않음
- 높은 편향(체계적 오류)
- 평탄한 학습 곡선
How to Fix Overfitting
- 잡음이 있거나 불안정한 피처 제거
- 누수(leakage) 문제 해결
- 정규화 추가(예: L2, dropout)
- dropout 등 견고한 기법 사용
- 시간 기반 검증 분할 적용
- 학습 파이프라인과 프로덕션 파이프라인 정렬
How to Fix Underfitting
- 도메인 기반의 풍부한 피처 추가
- 모델 용량 확대(레이어 추가, 더 넓은 트리 등)
- 희소 클래스 오버샘플링 또는 클래스 가중치 적용
- 하이퍼파라미터를 더 적극적으로 튜닝
- 필요 시 더 표현력이 높은 모델군으로 전환
Key Takeaways
| Insight | Meaning |
|---|---|
| Overfitting ≠ memorization | 불안정한 의존성 때문에 발생하는 운영상의 취약성입니다. |
| Underfitting ≠ small model | 데이터나 피처 문제로 신호가 부족한 상황을 의미합니다. |
| Pipeline alignment matters | 대부분의 실패는 학습과 프로덕션 사이의 불일치에서 비롯됩니다. |
| Evaluation must be real‑world aware | 시간 분할, 세그먼트 분할 등 현실적인 검증 전략을 사용해야 합니다. |
| Monitoring is essential | 모델은 시간이 지나면서 성능이 감소하므로 지속적인 모니터링이 필요합니다. |