- 훈련 데이터와 테스트 데이터를 나누어 학습·평가하는 이유를 설명할 수 있다.
- 과적합과 과소적합의 의미를 이해하고 구분할 수 있다.
- 정확도·정밀도·재현율 등 성능 지표로 모델을 평가할 수 있다.
생각 열기 — 답을 외운 학생 vs 이해한 학생
두 학생이 있어요. 한 명은 문제집의 답을 통째로 외웠고, 다른 한 명은 원리를 이해했어요. 똑같은 문제집(연습 문제)을 다시 풀면 둘 다 100점이에요. 그런데 처음 보는 새 문제(시험)를 내면? 외운 학생은 무너지고, 이해한 학생만 잘 풀죠.
기계학습도 똑같아요. 학습에 쓴 데이터로만 평가하면 '외운 AI'와 '이해한 AI'를 구별할 수 없어요. 그래서 데이터를 훈련용(연습 문제)과 테스트용(시험 문제)으로 나눠서, 본 적 없는 데이터로 진짜 실력을 재야 합니다. 오늘은 이 '시험'의 기술을 배웁니다.
만약 어떤 AI가 훈련 데이터에서는 99% 정확한데 새 데이터에서는 60%밖에 못 맞힌다면, 이 AI는 '이해'한 걸까요 '외운' 걸까요? 이런 AI를 실제 서비스에 쓰면 어떤 일이 벌어질까요?
연습 문제와 시험 문제를 나눠라
훈련 데이터 · 테스트 데이터
모은 데이터를 보통 이렇게 나눠요. 훈련 데이터(약 70~80%)로 모델을 학습시키고, 따로 떼어 둔 테스트 데이터(약 20~30%)로 성능을 평가합니다. 핵심은 테스트 데이터는 학습에 절대 쓰지 않는 것 — 시험 문제를 미리 보면 안 되니까요!
학습에 쓴 데이터로 평가하면 AI는 '본 적 있는 문제'를 푸는 셈이라 성능이 부풀려져요. 실제 세상에서 만날 데이터는 모두 '처음 보는' 데이터죠. 테스트 데이터는 그 '실전'을 미리 흉내 내는 거예요. 2차시에서 본 '데이터 누수'(시험 답 미리 보기)를 막는 장치이기도 합니다.
외우기의 함정 — 과적합
너무 열심히 배우면 오히려 못한다?
모델을 너무 복잡하게 만들거나 너무 오래 학습시키면, 훈련 데이터의 사소한 특징·잡음까지 통째로 외워 버려요. 그러면 훈련 점수는 높은데 새 데이터에서는 형편없죠. 이것이 과적합(overfitting)이에요. 반대로 너무 단순해서 훈련조차 제대로 못 배운 상태는 과소적합(underfitting)이고요. 직접 실험해 봅시다.
슬라이더로 모델 복잡도(또는 학습 정도)를 조절하세요. 보라색은 훈련 데이터 정확도, 노란색은 테스트(시험) 정확도예요. 복잡도를 높일수록 무슨 일이 벌어지나요?
훈련 정확도는 복잡도를 높일수록 계속 올라가지만, 테스트 정확도는 어느 지점에서 정점을 찍고 다시 떨어져요. 그 정점이 바로 '딱 좋은' 모델이에요 — 너무 단순하지도(과소적합), 너무 외우지도(과적합) 않은 상태. 그래서 "훈련 점수 100점"에 속으면 안 돼요. 진짜 실력은 시험(테스트) 점수로 판단합니다. 과적합을 막는 방법으로는 데이터를 더 모으기, 모델을 단순하게 하기, 학습을 적당할 때 멈추기 등이 있어요.
제대로 채점하기 — 성능 지표
정확도만으로는 부족하다
모델을 평가할 때 가장 먼저 떠오르는 건 정확도(accuracy) — 전체 중 맞힌 비율이죠. 그런데 정확도만으로는 속을 수 있어요. 정보 4단원에서 봤듯, 환자 1,000명 중 환자가 10명뿐이면 전부 '정상'이라고만 찍어도 정확도 99%가 나오니까요(정작 환자는 한 명도 못 찾았는데!). 그래서 정밀도와 재현율을 함께 봐야 해요. 스팸 필터로 직접 확인해 봅시다.
메일 100통 중 실제 스팸은 30통이에요. 슬라이더로 스팸 필터의 '엄격함'을 조절하면, 네 칸(혼동 행렬)의 숫자와 세 지표가 어떻게 변하는지 보세요. 정밀도와 재현율은 함께 올리기 어려워요!
스팸
정상
(전체 중 맞힘)
(스팸이라 한 것 중 진짜)
(진짜 스팸 중 잡은 것)
정밀도(precision)는 "스팸이라고 한 것 중 진짜 스팸 비율", 재현율(recall)은 "진짜 스팸 중 잡아낸 비율"이에요. 둘은 보통 한쪽을 올리면 다른 쪽이 내려가는 줄다리기 관계죠. 무엇이 더 중요한지는 문제에 달렸어요. 암 진단은 놓치면 큰일이니 재현율(다 잡기)이 중요하고, 스팸 필터는 중요한 메일을 스팸함에 보내면 곤란하니 정밀도(억울한 차단 줄이기)가 더 중요할 수 있어요. 그래서 좋은 평가는 "정확도 몇 %"가 아니라 "이 문제에서 무엇을 중요하게 볼 것인가"를 함께 묻습니다.
확인 문제
바로바로 채점!
4차시 확인 문제
4문항 · 즉시 채점
1테스트 데이터에 대한 설명으로 옳은 것은?
2훈련 정확도는 99%인데 테스트 정확도는 60%라면, 이 모델은?
31,000명 중 환자가 10명뿐인데 AI가 전부 '정상'이라 답했다. 정확도는 99%지만 무엇이 문제일까?
4[OX] 정밀도와 재현율은 보통 한쪽을 높이면 다른 쪽이 낮아지는 관계다.
더 알아보기
교과서 너머의 이야기 — 클릭해서 펼쳐 보세요
심화한 번 더 나누기 — 검증 데이터와 교차 검증
사실 데이터를 훈련/테스트 둘로만 나누면 문제가 생겨요. 모델을 이리저리 조정하면서 자꾸 테스트 점수를 보면, 나도 모르게 테스트 데이터에 맞춰 조정하게 되거든요(테스트 데이터를 '엿본' 셈). 그래서 보통은 셋으로 나눠요 — 훈련 / 검증(validation) / 테스트. 모델을 조정할 땐 검증 데이터로 확인하고, 테스트 데이터는 맨 마지막에 딱 한 번만 써요. 데이터가 적을 때는 교차 검증(cross-validation)도 써요 — 데이터를 여러 조각으로 나눠 번갈아 가며 한 조각씩 테스트로 쓰고 나머지로 학습하는 걸 반복해, 평균 성능을 보는 방법이죠. 운 좋게(나쁘게) 나뉜 한 번의 결과에 속지 않으려는 똑똑한 장치예요.
심화정밀도와 재현율을 하나로 — F1 점수
정밀도와 재현율이 줄다리기 관계라면, 둘을 한 숫자로 합쳐 비교하고 싶을 때가 있어요. 그때 쓰는 게 F1 점수예요. 그냥 평균이 아니라 조화평균을 써요 — 둘 중 하나라도 낮으면 F1도 확 낮아지게요. 예를 들어 정밀도 90%·재현율 10%라면, 산술평균은 50%로 그럴듯해 보이지만 F1은 약 18%로 뚝 떨어져요(한쪽이 심하게 낮으니까!). 덕분에 "한쪽만 잘하고 다른 쪽은 엉망인" 모델을 걸러낼 수 있죠. 정밀도와 재현율 중 어느 하나도 포기하기 어려운 문제에서 F1 점수가 좋은 종합 점수가 됩니다. 평가 지표 하나에도 이렇게 깊은 고민이 담겨 있어요!
사례과적합은 사람도 한다 — '시험 잘 보는 법'의 함정
과적합은 사실 우리 주변에도 있어요. 기출문제의 답만 통째로 외운 학생은 똑같은 문제엔 강하지만 살짝 바꾼 문제엔 무너지죠 — 전형적인 과적합이에요. 운동선수가 연습 상대의 버릇에만 맞춰 훈련하면 실전의 낯선 상대에게 약하고, 어떤 맛집 비결이 그 가게 단골 입맛에만 최적화되면 새 손님은 못 잡죠. '일반화(generalization)' — 즉 본 적 없는 상황에서도 잘하는 능력이 진짜 실력이라는 점은 AI나 사람이나 똑같아요. 그래서 공부할 때도 답을 외우기보다 원리를 이해하는 게 '새 문제(시험)'에 강한 비결이랍니다. AI를 배우다 보니 공부법까지 배우게 되네요!