모델이 학습 데이터의 패턴조차 제대로 잡아내지 못하는 상태다. 학습 데이터에서의 오차도 크고, 새로운 데이터에서의 오차도 크다.
반대는 overfitting 으로, 학습 데이터는 거의 완벽하게 맞히지만 새로운 데이터에서 오차가 커지는 상태다. 두 오차를 함께 보면 어느 쪽인지 구분된다.
| 학습 오차 | 검증 오차 | |
|---|---|---|
| underfitting | 크다 | 크다 |
| 적절 | 작다 | 작다 |
| overfitting | 아주 작다 | 크다 |
bias 와의 관계
underfitting 은 high bias 상태다. bias 는 모델이 표현할 수 있는 함수들의 평균이 참값에서 얼마나 떨어져 있는지를 말하는데, 모델이 애초에 데이터의 구조를 담을 만큼 유연하지 않으면 데이터를 아무리 많이 줘도 이 거리가 좁혀지지 않는다.
휘어진 관계를 직선으로 맞추려는 경우가 전형적이다. 데이터를 늘리거나 학습을 더 오래 시켜도 직선이라는 형태가 담을 수 없는 부분은 그대로 남는다.
무엇을 바꿔야 하나
원인이 모델의 표현력 부족이므로, 데이터를 늘리는 것은 도움이 되지 않는다.
- 모델을 키운다 — 층·유닛 수를 늘리거나 더 유연한 모델로 바꾼다
- 특징을 추가한다 — 다항 항, 상호작용 항, 도메인 지식으로 만든 변수
- regularization 을 줄인다 — ridge regression 의 처럼 계수를 억누르는 값이 너무 크면 인위적으로 underfitting 을 만든다
- 더 오래 학습한다 — 아직 수렴하지 않은 것과 표현력이 부족한 것은 다르므로, 학습 곡선이 아직 내려가는 중인지 먼저 확인한다