과적합과 과소적합은 머신러닝의 두 대표적 실패 양상입니다.
과적합은 「학습 데이터에 너무 잘 맞춰서 새 데이터에는 약한 상태」, 과소적합은 「학습 데이터에도 잘 맞히지 못하는 상태」를 가리킵니다.
비유로 풀자면 과적합은 「시험 문제집의 답을 통째로 외운 학생」과 같습니다.
푸는 문제는 100점이지만 새로운 문제는 한 문제도 못 풉니다.
과소적합은 「공부를 충분히 안 한 학생」과 같습니다.
풀던 문제도, 새 문제도 모두 못 풉니다.
두 문제는 서로 반대편에 있어 「적당한 중간」을 찾는 일이 모델링의 핵심입니다.
모델을 너무 단순하게 만들면 과소적합, 너무 복잡하게 만들면 과적합이 옵니다.
이 균형점을 「편향-분산 트레이드오프(bias-variance tradeoff)」라 부릅니다.
과적합을 줄이는 대표적 방법은 다음과 같습니다.
첫째, 데이터를 더 모은다.
둘째, 모델을 단순화한다.
셋째, 정규화(regularization, L1·L2)를 적용한다.
넷째, 드롭아웃·조기 종료 같은 신경망 전용 기법을 사용한다.
다섯째, 데이터 증강으로 학습 데이터를 부풀린다.
과적합 여부를 진단하는 가장 쉬운 방법은 「학습 데이터의 정확도와 검증 데이터의 정확도를 비교」하는 것입니다.
두 값의 격차가 크면 과적합, 둘 다 낮으면 과소적합으로 봅니다.
좋은 모델은 두 값이 모두 높고 격차가 작은 모델입니다.
한 줄 요약
과적합은 학습 데이터에만 잘 맞는 「외운 학생」, 과소적합은 둘 다 못 맞히는 「공부 부족 학생」입니다.
둘 사이의 균형을 찾는 것이 모델링의 핵심입니다.
더 알아볼 것
- 편향-분산 트레이드오프
- Early Stopping — 과적합 시작 전에 멈추기
- Cross-validation으로 과적합 진단