Project NEUROVERSE
목차

기초 이론 편 · 2부 AI는 어떻게 학습하는데? — 2.5

과적합 — 기출문제만 외운 학생

연습 문제를 완벽하게 맞히는 모델이 새 문제에서는 오히려 더 틀릴 수 있습니다.

앞 장에서 뉴런을 늘리고 층을 쌓으면 더 복잡한 모양도 그릴 수 있다고 했습니다. 그럼 무조건 크고 복잡하게 만들면 좋을까요?

시험 공부를 생각해보세요. 기출문제를 이해하지 않고 답만 외운 학생은 기출문제를 다시 풀면 100점입니다. 그런데 숫자만 살짝 바뀐 새 문제가 나오면 못 풉니다. 머신러닝 모델도 똑같은 실수를 합니다.

●은 연습 문제, ○는 처음 보는 새 문제예요. 모델은 ●만 보고 곡선을 그려요. 곡선이 얼마나 구불구불해질 수 있는지 바꿔보세요.

연습 문제(●) 오차

새 문제(○) 오차

해보면 보이는 것

구불구불함 1: 곡선이 너무 단순해서 연습 문제(●)도 새 문제(○)도 잘 못 맞힙니다. 덜 배운 상태입니다.

구불구불함 3: 곡선이 점들의 흐름을 잘 따라갑니다. 연습 문제 오차는 0.13으로 완벽하지 않지만, 새 문제 오차가 0.05로 가장 작습니다.

구불구불함 7: 곡선이 연습 문제 8개를 전부 정확히 지나갑니다. 연습 문제 오차는 0입니다. 그런데 점과 점 사이에서 곡선이 크게 출렁이고, 새 문제 오차는 0.36으로 가장 큽니다.

연습 문제에는 원래 약간의 잡음(측정 오차 같은 것)이 섞여 있습니다. 구불구불함 7은 그 잡음까지 그대로 외워버린 것입니다. 이걸 과적합(overfitting) 이라고 부릅니다. 반대로 1처럼 너무 단순해서 흐름도 못 잡는 건 과소적합(underfitting) 입니다.

그래서 문제를 나눠서 씁니다

여기서 중요한 교훈은 연습 문제 점수만 보고는 모델이 잘 배웠는지 알 수 없다는 것입니다. 구불구불함 7의 연습 점수는 만점이니까요.

그래서 머신러닝에서는 예시를 처음부터 나눠둡니다. 학습에 쓰는 학습용 데이터, 그리고 학습에 절대 안 쓰고 따로 숨겨뒀다가 마지막에 점수를 재는 평가용(시험용) 데이터. 시험 문제를 미리 보여주면 안 되는 것과 같은 이유입니다.

이 원칙은 6부에서 다시 중요해집니다. AI 모델의 “시험 점수”가 사실 시험 문제를 미리 본 결과일 수 있다는 이야기를 하겠습니다.

더 깊게 · 과적합을 막는 방법들
  • 데이터를 더 모으기: 점이 많으면 곡선이 점 사이에서 마음대로 출렁이기 어렵습니다.
  • 모델을 적당한 크기로: 문제에 비해 너무 복잡하지 않게.
  • 일찍 멈추기: 학습하면서 평가용 점수를 계속 보다가, 평가용 점수가 나빠지기 시작하면 멈춥니다.
  • 규제(regularization): 가중치가 너무 커지지 않게 벌점을 주는 방법입니다. 곡선이 과하게 출렁이려면 보통 큰 숫자가 필요해서, 그걸 억제하는 것입니다.

정리

  • 과적합은 연습 문제를 외워서 새 문제를 못 푸는 상태입니다.
  • 연습 점수가 좋다고 잘 배운 게 아닙니다. 처음 보는 문제로 따로 시험해야 알 수 있습니다.
  • 그래서 데이터를 학습용과 평가용으로 나눕니다.

여기까지가 “AI는 어떻게 학습하는데?”입니다. 다음 3부에서는 이 원리가 ChatGPT 같은 LLM에서 실제로 어떻게 쓰이는지 보겠습니다.

이 장을 복사합니다. ChatGPT나 Claude 같은 AI에 붙여넣고 그대로 보내면 AI가 다 읽었다고 답합니다. 그다음 궁금한 걸 물어보세요.