과적합

편집 역사 토론
통계 수치해석 마지막 수정: 2026-08-20 04:14:22

1. 개요[편집]

과적합
Overfitting
증상훈련오차 ↓, 검증오차 ↑ (일반화 갭 확대)
원인모델 용량 > 데이터가 담은 정보량, 잡음 암기
진단학습곡선 · 훈련/검증 격차 · 교차검증
처방정규화 · 조기종료 · 데이터 증강 · 앙상블
반대말과소적합(underfitting) — 편향이 큰 쪽
주의파라미터 수 ≠ 복잡도 (이중 하강 참고)

과적합(overfitting)은 모델이 훈련 데이터의 신호뿐 아니라 그 표본에만 있는 잡음·우연한 패턴까지 외워 버려, 새 데이터에 대한 일반화 성능이 오히려 나빠지는 현상이다. 훈련오차는 계속 내려가는데 검증오차는 어느 지점부터 다시 올라가는 그 갈라짐이 과적합의 정의 그 자체다.

한 줄 요약: 시험 문제를 이해한 게 아니라 답안지를 통째로 외운 학생이다. 외운 문제집에서는 만점이지만 처음 보는 문제 앞에서 무너진다. 기계학습에서 우리가 진짜 원하는 것은 훈련집합에서의 오차가 아니라 모집단 전체에 대한 기대오차(일반화 오차)인데, 우리가 최소화할 수 있는 것은 훈련오차뿐이라는 근본적 어긋남에서 이 모든 이야기가 출발한다.1

이 문서는 과적합이라는 현상과 진단·처방의 지도를 그린다. 그 밑에 깔린 편향-분산의 수학, 정규화의 유도, 이중 하강의 반전은 각각 전용 문서가 훨씬 깊게 다루므로 여기서는 반복하지 않고 넘긴다.

2. 일반화 갭 — 무엇이 벌어지는가[편집]

훈련오차 R^(f^)\hat R(\hat f) 와 일반화 오차 R(f^)R(\hat f) 의 차이를 일반화 갭이라 부른다.

R(f^)  =  R^(f^)훈련오차  +  (R(f^)R^(f^))일반화 갭R(\hat f) \;=\; \underbrace{\hat R(\hat f)}_{\text{훈련오차}} \;+\; \underbrace{\big(R(\hat f) - \hat R(\hat f)\big)}_{\text{일반화 갭}}

과적합은 이 갭이 벌어지는 상황이다. 훈련오차를 0까지 밀어붙이는 것은 언제나 가능하지만(파라미터만 충분하면 훈련점을 그대로 보간할 수 있다), 그렇게 얻은 모델의 일반화 갭은 대개 크다. 그래서 훈련오차만 보고 모델을 고르면 가장 심하게 외운 모델을 고르는 꼴이 된다 — 훈련오차는 일반화 오차의 낙관적으로 편향된 추정치이고, 모델이 복잡할수록 그 편향이 커지기 때문이다.

전형적인 학습곡선은 이렇게 생겼다. 가로축을 모델 복잡도(다항식 차수, 트리 깊이, 학습 에폭)로 두면, 훈련오차는 단조 감소하는데 검증오차는 내려가다가 어느 골짜기를 지나 다시 올라간다. 그 골짜기의 오른쪽이 과적합 영역, 왼쪽이 과소적합 영역이다. 이 U자 곡선의 정체가 바로 편향-분산 분해다 — 복잡도를 올리면 편향은 줄지만 분산이 커지고, 둘의 합이 U자를 그린다. 과적합은 결국 분산이 편향 감소분을 압도하는 쪽으로 넘어간 상태를 부르는 이름이다.

3. 왜 생기는가 — 용량과 데이터의 불균형[편집]

과적합의 뿌리는 언제나 하나다. 모델이 표현할 수 있는 함수 집합의 크기(용량, capacity)가, 데이터가 실제로 담고 있는 정보량에 비해 클 때 생긴다. 세 가지 방식으로 나타난다.

  • 표본이 적을 때. 데이터가 100개인데 파라미터가 1000개면, 모델은 데이터를 설명하는 무수한 함수 중 하나를 고르게 되고 그 선택은 데이터가 아니라 우연이 정한다.
  • 특징이 많을 때. 입력 차원이 높아지면 같은 표본 수로 채워야 할 공간이 지수적으로 커진다 — 이것이 차원의 저주가 과적합과 직결되는 이유다. 고차원에서는 어떤 표본도 서로 멀리 떨어져 있어, 모델이 국소적으로 아무 곡면이나 끼워 맞출 여지가 넘쳐난다.
  • 잡음이 있을 때. 관측잡음은 표본마다 다르므로, 잡음까지 맞추려 드는 순간 그 모델은 다음 표본에서 반드시 틀린다. 잡음을 외우는 것이 과적합의 가장 순수한 형태다.

용량을 정량화하려는 시도가 통계학습이론의 한 축이다. VC 차원(Vapnik–Chervonenkis dimension)은 모델이 임의로 라벨링해 완벽히 분리할 수 있는 점의 최대 개수로 용량을 재고, 일반화 갭의 상한이 대략 dVC/n\sqrt{d_{\text{VC}}/n} 규모로 커진다는 결과를 준다. 라데마허 복잡도는 모델이 무작위 라벨에 얼마나 잘 상관되는가로 같은 것을 재는, 데이터 의존적인 현대적 대안이다. 다만 이 고전적 상한들은 심층망처럼 파라미터가 표본보다 훨씬 많은 모델에서는 공허할 만큼 느슨해지는데, 그 역설을 다음 절에서 짚는다.

4. 진단 — 격차를 보라[편집]

과적합은 훈련 성능과 검증 성능을 나란히 놓는 것만으로 대부분 잡힌다.

  • 홀드아웃·교차검증. 데이터를 훈련/검증으로 나눠, 훈련오차는 낮은데 검증오차가 높으면 과적합이다. kk-겹 교차검증은 검증오차 추정의 분산을 줄여 골짜기의 위치를 더 안정적으로 찾아 준다. 세부 절차와 함정(누수·시계열에서의 오용)은 해당 문서에 있다.
  • 학습곡선. 훈련집합 크기를 늘려 가며 두 오차를 그린다. 둘이 큰 격차를 유지한 채 나란히 가면 과적합(데이터를 더 모으면 이득), 둘 다 높은 곳에서 붙어 버리면 과소적합(모델을 키워야 함)이다. 이 그림은 “데이터를 더 모을까, 모델을 바꿀까”라는 실무 결정의 나침반이다.
  • 검증오차 반등 시점. 학습을 진행하며 검증오차가 최저를 찍고 다시 오르기 시작하는 순간이 과적합이 시작되는 지점이며, 이것을 그대로 정지 신호로 쓰는 것이 조기종료다.

5. 처방 — 용량을 깎거나 잡음에 둔감하게[편집]

과적합 대응은 결국 유효 용량을 데이터에 맞게 줄이는 일로 수렴한다. 각각은 전용 문서가 있으니 여기서는 지도만 그린다.

  • 정규화. 손실에 벌점을 더해 파라미터가 커지는 것을 억제한다. L2 벌점 λβ22\lambda\lVert\beta\rVert_2^2 은 계수를 고르게 눌러 분산을 사고(능형회귀), L1 벌점은 일부 계수를 정확히 0으로 만들어 변수 선택까지 겸한다(라쏘). 둘의 통일된 관점과 필터인자 해석은 티호노프 정규화에 있다. 벌점 계수 λ\lambda 를 키우는 것은 편향을 사서 분산을 파는 거래다.
  • 드롭아웃. 학습 중 뉴런을 무작위로 꺼서 특정 특징에의 공동적응(co-adaptation)을 막는다. 근사적으로는 앙상블 평균이자 잡음 주입 정규화로 해석된다.
  • 조기종료(early stopping). 검증오차가 반등하기 직전에 학습을 멈춘다. 경사하강의 반복을 용량 손잡이로 쓰는 셈이며, 선형 모델에서는 L2 정규화와 정량적으로 등가라는 것이 알려져 있다.2
  • 데이터 증강. 회전·크롭·잡음 추가 등으로 라벨을 보존하는 변환을 가해 표본을 부풀린다. 가장 정직한 처방 — 용량을 깎는 대신 데이터가 담은 정보량 쪽을 실제로 늘린다. 다만 도메인에 맞는 불변성을 알아야 한다.
  • 앙상블. 여러 모델을 평균해 분산을 줄인다. 배깅·랜덤 포레스트가 대표적이며, 부트스트랩 재표본의 흔들림을 평균으로 상쇄한다.
  • 모델을 작게. 가장 단순하고 자주 잊히는 처방. 차수를 낮추고, 트리를 가지치기하고, 층을 줄인다.

6. 파라미터 수는 복잡도가 아니다 — 이중 하강[편집]

20세기의 표준 서사는 “복잡도를 올리면 과적합, 그러니 U자의 골짜기에 앉아라”였고, 모델이 데이터에 비해 작을 때는 지금도 맞다. 그런데 심층망은 훈련점을 완벽히 보간(훈련오차 0)하고도 일반화가 잘 되는 일이 흔하다. 파라미터가 표본보다 수십 배 많아도 그렇다.

핵심은 이중 하강(double descent, Belkin 외 2019)이다. 파라미터 수가 표본 수에 도달하는 보간 임계점에서 검증오차가 뾰족한 봉우리를 만들지만, 그 지점을 지나 과매개변수 영역으로 더 들어가면 검증오차가 다시 내려간다. 경사법이 무수한 보간해 중 최소 노름 해를 암묵적으로 고르기 때문이다. 그래서 파라미터 수를 복잡도와 동일시하는 직관이 여기서 깨진다 — 과적합의 척도는 파라미터 개수가 아니라 학습이 실제로 고르는 해의 노름(유효 용량)이다. 자세한 그림과 정직한 단서(정규화를 걸면 봉우리가 사라진다 등)는 편향-분산 분해 문서에 정리돼 있으니 그쪽을 보라.

실무 교훈은 “무조건 크게”가 아니다. 보간 임계점 근처에 앉지 말고, 정규화를 걸어라. 과적합은 죽지 않았고, 다만 그 얼굴이 하나가 아닐 뿐이다.

7. 다른 분야에서의 같은 병[편집]

과적합은 기계학습만의 병이 아니다. 잡음 낀 데이터에 모델을 맞추는 모든 곳에 있다.

  • 시스템 식별. 동적 모델의 차수를 너무 높게 잡으면 측정잡음을 상태로 착각한다 — 그래서 교차검증과 정보기준(AIC/BIC)으로 차수를 고른다.
  • 곡선 적합·회귀. 룽게 현상처럼, 고차 다항식은 데이터점을 정확히 지나면서도 그 사이에서 미친 듯이 진동한다.
  • 다중 슬롯머신·강화학습. 적은 시행으로 얻은 팔의 표본평균을 참값으로 믿으면 과적합과 같은 성격의 실수를 한다 — 탐색이 이를 막는 장치다.

공통 처방도 같다. 모델의 자유도를 데이터가 담은 정보량에 맞추고, 반드시 보지 않은 데이터로 검증하라. V&V의 정신이 정확히 이것이다.

8. 관련 문서[편집]

9. Footnotes[편집]

  1. 이 어긋남에 이름을 붙이면 “경험적 위험 최소화(ERM)와 진짜 위험의 차이”다. 우리는 볼 수 없는 것(모집단 기대오차)을 최소화하고 싶은데 손에는 그 표본판(훈련오차)밖에 없어서, 표본판을 너무 열심히 최소화하면 진짜가 나빠진다. 통계학습 전체가 이 갭을 어떻게 통제하느냐의 이야기다.

  2. “조기종료 = 정규화”라는 등가는 은근히 유용하다. λ\lambda 를 그리드로 찾는 대신 학습을 한 번 돌리며 검증오차 최저점에서 멈추면, 한 번의 학습으로 정규화 강도를 자동 탐색한 셈이 된다. 공짜처럼 보이지만 대가는 있다 — 최적 정지 시점이 학습률·초기값에 민감해서, 재현하려면 시드까지 고정해야 한다.