과적합Overfitting

연습 문제 답만 외워 새 문제는 못 푸는 상태

핵심 정리
  • 과적합은 AI가 연습 데이터의 정답을 통째로 외워 처음 보는 데이터 앞에서 무너지는 상태예요.
  • 그래서 데이터를 셋으로 나눠요. 배우는 문제집이 훈련 데이터, 중간 쪽지시험이 검증 데이터, 마지막 시험지가 테스트 데이터예요.
  • 훈련 손실은 계속 내려가는데 검증 손실이 다시 올라가는 지점이 외우기가 시작됐다는 신호예요.
  • 모델이 데이터에 비해 너무 복잡하거나, 데이터가 적거나, 같은 데이터를 너무 오래 반복할 때 생겨요.
  • 조기 종료·정규화·드롭아웃·데이터 증강으로 막아요. 목표는 훈련 점수가 아니라 처음 보는 데이터에서도 잘하는 일반화예요.
목차

1비유로 이해하기

기출문제집을 답까지 통째로 외운 경우를 떠올려 보세요. 문제집 안에서는 번호만 봐도 답이 나와요. 3번은 2번, 7번은 4번. 회차를 거듭할수록 틀린 개수는 0에 가까워지고 자신감도 같이 올라가요. 그런데 시험장에서 조건 하나만 바뀐 문제를 만나면 손도 못 대요. 문제를 푸는 원리 대신 문제와 답의 짝을 외웠기 때문이에요. 외운 것과 아는 것은 문제집 안에서는 구별되지 않아요. 문제집을 덮고 처음 보는 문제를 내밀어야 비로소 갈리죠. AI의 과적합이 딱 이 상태예요. 연습에 쓴 데이터에서는 거의 만점인데, 처음 보는 데이터 앞에서 점수가 뚝 떨어져요.

2자세히 알아보기

문제집, 쪽지시험, 시험지

AI를 학습시킬 때 가진 데이터를 한 덩어리로 쓰지 않아요. 대략 8 대 1 대 1 비율로 셋으로 갈라요. 훈련 데이터는 모델이 실제로 보고 배우는 문제집이에요. 검증 데이터는 학습 도중에 치르는 쪽지시험이고요. 언제 멈출지, 층을 몇 개 쌓을지 같은 결정을 이 점수를 보고 내려요. 테스트 데이터는 다 끝난 뒤 딱 한 번 꺼내는 시험지예요.

왜 굳이 이렇게 나눌까요. 훈련 데이터로 채점하는 건 답안지를 펴 놓고 채점하는 것과 같기 때문이에요. 외운 모델도 만점이 나와요. 그런데 검증 데이터만 두고 설정을 수십 번 고치다 보면, 이번에는 개발자가 검증 데이터에 맞춰 모델을 외우게 돼요. 그래서 끝까지 한 번도 보지 않은 시험지를 따로 남겨 둬요.

점수가 갈라지는 순간

학습이 진행되는 동안 훈련 손실과 검증 손실을 나란히 그려 보면 과적합이 눈에 보여요. 손실은 틀린 정도예요. 처음에는 둘 다 사이좋게 내려가요. 모델이 진짜 규칙을 배우고 있다는 뜻이에요.

그러다 어느 지점에서 갈라져요. 훈련 손실은 계속 바닥을 향해 내려가는데 검증 손실만 슬그머니 방향을 틀어 올라가요. 여기서부터 모델은 규칙이 아니라 훈련 데이터에만 있는 우연한 특징을 배우고 있어요. 두 선이 벌어지기 시작한 폭이 곧 과적합의 크기예요.

왜 외우는 쪽으로 기울까요

첫째는 모델이 데이터에 비해 너무 복잡할 때예요. 조절할 수 있는 값이 수백만 개인데 예시가 수백 장뿐이면, 공통 규칙을 찾는 것보다 예시를 하나씩 담아 두는 편이 손실을 줄이는 더 빠른 길이 돼요.

둘째는 데이터가 적거나 한쪽으로 치우쳤을 때예요. 학습에 쓴 고양이 사진이 모두 소파 위에서 찍혔다면, 모델은 소파 무늬까지 고양이의 조건으로 기억해요. 잔디밭에 앉은 고양이를 만나면 자신 없어 하죠.

셋째는 같은 데이터를 너무 오래 반복해서 볼 때예요. 처음 몇 바퀴는 실력이 쑥쑥 늘어요. 그 뒤로는 사진에 섞인 얼룩이나 조명 같은 잡음까지 규칙으로 받아들이기 시작해요.

외우지 못하게 막는 네 가지

조기 종료는 검증 점수가 더 나아지지 않으면 학습을 그 자리에서 멈추는 방법이에요. 두 선이 갈라지는 지점이 정확히 멈출 자리예요. 정규화는 특정 값이 지나치게 커지면 벌점을 주어, 모델이 한 가지 단서에만 크게 기대지 못하게 눌러요.

드롭아웃은 학습할 때마다 뉴런 일부를 무작위로 꺼 버려요. 어느 뉴런이 빠질지 모르니 특정 뉴런 하나에 답을 몰아서 기억해 둘 수가 없어요. 데이터 증강은 사진을 뒤집고 돌리고 밝기를 바꿔 문제집 자체를 늘려요. 물론 가장 확실한 방법은 새 데이터를 더 모으는 거예요.

반대쪽 실수와 진짜 목표

반대 방향으로 넘어질 수도 있어요. 모델이 너무 단순해서 훈련 데이터조차 못 맞히는 상태를 과소적합이라고 해요. 이때는 훈련 점수부터 낮아서 구별하기 쉬워요. 더 크게 만들거나 더 오래 학습시키면 돼요.

좋은 모델은 이 둘 사이 어딘가에 있어요. 훈련 점수와 검증 점수가 나란히 높은 지점이요. 우리가 원하는 건 문제집을 잘 푸는 능력이 아니라 처음 보는 문제를 푸는 능력이에요. 그 능력을 일반화라고 불러요.

3조금 더 정확하게

과적합(Overfitting)은 모델이 훈련 데이터의 잡음까지 학습해, 훈련 오차는 낮은데 처음 보는 데이터의 오차는 높아진 상태예요. 이 둘의 차이를 일반화 격차라고 불러요. 훈련 점수가 높은 것 자체는 흠이 아니고, 격차가 벌어지는 것이 문제예요. 그래서 이 격차를 재려면 학습에 한 번도 쓰지 않은 데이터가 반드시 필요해요.

비유가 어긋나는 지점도 있어요. 학생은 외우기로 마음먹지만 모델에는 그런 의도가 없어요. 손실을 낮추라는 지시만 따르는데, 주어진 조건에서 외우기가 손실을 낮추는 가장 빠른 길이라 그쪽으로 흘러갈 뿐이에요. 또 하나, 아주 큰 모델에서는 파라미터를 계속 늘렸을 때 검증 성능이 나빠졌다가 다시 좋아지는 이중 하강 현상이 관찰되기도 해요. 과적합은 모델이 크면 무조건 생기는 저주가 아니라, 모델 크기와 데이터 양과 학습 시간 사이의 균형 문제예요.

4직접 해보기

5흔한 오해

  • 훈련 정확도가 높을수록 좋은 모델이라고 생각하기 쉽지만, 실제로는 훈련 점수와 검증 점수의 간격이 클수록 과적합을 의심해야 해요.

  • 오래 학습시킬수록 똑똑해진다고 여기기 쉽지만, 실제로는 어느 지점을 넘기면 잡음까지 외워서 처음 보는 데이터의 성능이 도로 떨어져요.

  • 데이터를 더 모으면 무조건 해결된다고 믿기 쉽지만, 실제로는 새로 모은 데이터가 기존 데이터와 비슷하기만 하면 소용이 없어요. 양과 함께 다양성이 늘어야 해요.

7한 줄 요약

그러니까과적합은 AI가 연습 문제의 답을 외워 버린 상태이고, 처음 보는 문제로 중간중간 시험을 보며 멈출 때를 아는 것이 해결책이에요.

잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02