seegongsik
내 단어장
인공지능

외우기와 진짜 이해, 과적합

시험 전날 문제집의 답을 통째로 외운 친구가 있어요. 똑같은 문제가 나오면 다 맞혀요. 그런데 숫자만 살짝 바뀐 새 문제가 나오면 와르르 무너져요. 외우기만 했지 원리를 이해한 게 아니거든요. 기계 학습에도 똑같은 함정이 있어요. 모델이 훈련 데이터를 통째로 외우면 본 문제는 100점인데 새 문제는 틀려요. 이걸 과적합이라고 해요. 그럼 진짜 실력은 어떻게 잴까요?

01

통째로 외우면 훈련 점수는 만점

여기 점들이 흩어져 있어요.
모델의 일은 이 점들을 설명하는
매끈한 곡선을 찾는 거예요.
그런데 욕심을 부려서
점 하나하나를 빠짐없이 지나도록
구불구불 곡선을 휘게 할 수도 있어요.
그러면 훈련 점들은 전부 곡선 위에 있죠.
훈련 점수는 그야말로 100점이에요.
완벽해 보이지만, 사실 외운 거예요.

매끈한 추세 곡선: 점을 외우지 않아요
훈련 정확도: ~70%

버튼을 눌러 점들을 통째로 외우는 구불구불한 곡선을 켜봐요. 모든 점을 지나서 훈련 정확도는 100퍼센트가 돼요.

곡선이 모든 점을 정확히 지났죠.
훈련 점수가 100점이 됐어요.
기분은 좋지만 여기서 멈추면 안 돼요.
이 곡선은 점들의 위치를
그냥 외워버린 것에 가까워요.
흩어진 점 사이로 흐르는
진짜 패턴을 잡은 게 아니에요.
외운 게 왜 문제인지
새 문제를 던져보면 바로 드러나요.

02

새 데이터가 오면 와르르

외운 곡선의 진짜 시험은
한 번도 본 적 없는 새 점이에요.
새 점은 훈련 점들과 같은 패턴에서 왔어요.
그러니 매끈한 곡선이라면
새 점도 대충 맞혀야 정상이에요.
그런데 외운 곡선은
훈련 점 사이에서 마구 출렁여서,
새 점 근처에선 엉뚱한 높이를 가리켜요.
본 문제는 100점, 새 문제는 빵점인 거죠.

훈련 점새 점
빈 동그라미를 눌러 새 점을 넣어봐요
0 / 6

빈 자리를 눌러 새 점을 넣어봐요. 외운 곡선은 그 자리에서 크게 빗나가, 안 본 데이터에선 약하다는 게 드러나요.

새 점에서 곡선이 한참 빗나갔죠.
훈련 점에선 그렇게 완벽하더니
안 본 점 앞에선 맥을 못 춰요.
이게 과적합의 정체예요.
시험지의 답만 외운 친구가
숫자 바뀐 문제에 무너지는 것과 똑같아요.
그래서 우리가 정말 알고 싶은 건
훈련 점수가 아니라
안 본 데이터에서의 점수예요.

03

훈련, 검증, 테스트로 나눠요

안 본 데이터로 실력을 재려면
데이터 일부를 미리 숨겨둬야 해요.
그래서 가진 데이터를 셋으로 나눠요.
훈련 데이터로는 모델을 배우게 하고,
검증 데이터로는 배우는 중간에
잘 가고 있나 점검해요.
테스트 데이터는 끝까지 손도 안 대고
맨 마지막에 딱 한 번만 봐요.
이렇게 해야 진짜 새 문제를
흉내 낸 채점이 가능해요.

훈련0
검증0
테스트0
점을 눌러 세 통으로 나눠봐요

점을 눌러 훈련, 검증, 테스트로 나눠봐요. 세 칸이 골고루 차면, 안 본 테스트 데이터로 평가할 준비가 끝나요.

데이터를 세 무리로 나눴죠.
핵심은 테스트 데이터를
학습 동안 절대 보여주지 않는 거예요.
시험 문제를 미리 풀어보면
그건 더 이상 시험이 아니니까요.
훈련으로 배우고,
검증으로 중간에 방향을 잡고,
마지막에 테스트로 진짜 점수를 매겨요.
이 점수가 모델의 진짜 실력이에요.

04

너무 단순도 너무 복잡도 아닌, 딱 맞게

이제 모델을 세 가지로 비교해봐요.
너무 단순한 모델은
곧은 직선 하나로 끝내려 해서
점들이 그리는 곡선을 따라가지 못해요.
이건 과소적합, 아예 덜 배운 거예요.
너무 복잡한 모델은
점을 다 외워서 새 데이터에 약하죠.
그 사이 딱 맞는 모델은
점 하나하나가 아니라
전체에 흐르는 패턴을 부드럽게 잡아요.

세 모델을 눌러 비교해봐요

세 모델을 차례로 눌러 비교해봐요. 과소는 직선으로 덜 맞고, 과적합은 외워서 출렁이고, 딱 맞는 모델만 새 데이터에서도 잘해요.

세 모델의 차이가 한눈에 보였죠.
너무 단순하면 패턴을 놓치고,
너무 복잡하면 외워서 흔들려요.
딱 맞는 모델만이
훈련에서도 안 본 데이터에서도
고르게 잘했어요.
좋은 학습이란 점수를 100점으로
끌어올리는 게 아니라,
안 본 데이터에서 안정적으로 잘하는 거예요.

05

정리해볼까요

한 줄로 모으면 이래요.
점을 다 외운 구불구불한 곡선은
훈련 점수만 100점이고 새 점엔 약해요.
이게 과적합이에요.
진짜 이해는 전체에 흐르는 패턴을 잡는 거예요.
그래서 데이터를 훈련, 검증, 테스트로 나눠
안 본 데이터로 실력을 재요.
너무 단순도 너무 복잡도 아닌
딱 맞는 정도가 가장 잘 일반화해요.

핵심을 차례로 눌러 되짚어봐요

핵심을 차례로 눌러 되짚어봐요. (통째로 외우면 훈련만 100점 -> 새 데이터엔 실패 -> 훈련/검증/테스트로 나눔 -> 안 본 데이터로 진짜 실력을 잼)

이제 외우기와 진짜 이해의 차이를 알게 됐어요.
훈련 점수가 높다고 좋은 게 아니에요.
중요한 건 한 번도 본 적 없는
새 데이터 앞에서도 흔들리지 않는 거예요.
그래서 우리는 데이터를 나누고,
안 본 데이터로 정직하게 채점해요.
외우지 말고 패턴을 잡기,
이 한 가지가 똑똑한 기계를 만드는
가장 중요한 마음가짐이에요.

한 줄 정리과적합은 모델이 훈련 데이터를 외워버려서 새 데이터엔 약해지는 거예요. 점을 빠짐없이 다 지나는 구불구불한 곡선은 훈련 점수는 100점이지만, 새 점이 오면 엉뚱하게 빗나가요. 진짜 이해는 점 하나하나가 아니라 전체에 흐르는 일반적인 패턴을 잡는 거예요. 그래서 데이터를 셋으로 나눠요. 훈련 데이터로 배우고, 검증 데이터로 중간 점검을 하고, 테스트 데이터는 끝까지 숨겨뒀다가 마지막에 딱 한 번 봐요. 안 본 데이터에서 잘하는지가 진짜 실력이거든요. 모델은 너무 단순하면 패턴을 못 잡고(과소), 너무 복잡하면 외워버려요(과적합). 그 사이 딱 맞는 정도가 가장 잘 일반화해요. 정리하면, 외우지 말고 패턴을 잡게 하고, 안 본 데이터로 실력을 재는 게 핵심이에요.
인공지능
이 페이지가 도움 됐다면 후원하기