과적합이란 모델이 훈련 데이터를 너무 잘 외워서 데이터 속 잡음과 우연한 세부 사항까지 함께 기억해 버리는 현상입니다. 연습 문제에서는 점수가 높지만, 본 적 없는 새 데이터에서는 실력이 눈에 띄게 떨어집니다. 모델을 평가할 때는 훈련한 문제에서의 성적이 아니라, 새로운 문제에 규칙을 적용할 수 있는지를 봐야 합니다. 과적합된 모델은 규칙을 배운 것이 아니라 답을 외운 것입니다.
훈련 점수와 실제 실력이 멀어지는 이유
훈련은 본질적으로 데이터에서 규칙을 찾는 과정입니다. 그런데 데이터에는 진짜 규칙과 함께 입력 오류, 우연, 그 데이터 묶음에서만 성립하는 특이점 같은 잡음이 섞여 있습니다. 훈련을 오래 하고 매개변수가 많을수록 모델은 잡음까지 흡수할 수 있습니다. 전형적인 신호는 훈련 집합의 오류는 계속 줄고 검증 집합의 오류는 줄다가 다시 오르는 것입니다. 두 곡선이 갈라지는 지점이 암기가 시작되는 지점입니다.
반대쪽 실패는 과소적합으로, 기본 규칙조차 잡지 못해 옛 문제와 새 문제 모두 못합니다. 잘 훈련된 모델은 그 중간에 있습니다. 또 하나 숨은 원인은 데이터 누수입니다. 시험 때 처음 나타나야 할 정보가 훈련에 새어 들어가면 시험 성적까지 좋아 보여서 일반 과적합보다 알아채기 어렵습니다.
언제 가장 잘 생기는가
데이터가 적고 모델이 강할 때가 첫 번째입니다. 암기력이 뛰어난 학생에게 연습 문제 열 개만 풀게 하면 숫자를 바꿔 내는 순간 막힙니다. 같은 데이터를 반복해서 오래 훈련하면 본 샘플에는 매끄럽지만 조금만 다른 입력에는 뻣뻣해집니다. 잡음이 많고 정리되지 않은 데이터는 잘못 붙은 라벨까지 규칙으로 배워 버립니다. 대규모 모델을 미세 조정할 때도 마찬가지입니다. 적은 양의 업무 예시를 반복하면 예시의 문장은 외워도 과제의 논리는 외우지 못합니다.
과적합에 대한 세 가지 오해
첫째, 훈련 점수가 높을수록 강한 모델이라는 오해입니다. 훈련 점수는 그 데이터에 얼마나 밀착했는지를 보여 줄 뿐이며, 어느 지점을 넘으면 일반화 능력은 오히려 떨어집니다. 그래서 모델 비교는 훈련에 참여하지 않은 테스트 집합으로 합니다.
둘째, 작은 모델만 과적합된다는 오해입니다. 실제로는 반대입니다. 매개변수가 많을수록 암기 용량도 큽니다. 사전 훈련에서는 방대한 데이터가 문제를 희석하지만, 소량 데이터 미세 조정에서는 과적합이 가장 먼저 막아야 할 문제입니다.
셋째, 데이터를 늘리면 해결된다는 오해입니다. 같은 내용을 복사하고 바꿔 쓴 것만 늘리고 중복 제거가 허술하면, 사실상 같은 샘플을 여러 번 더 훈련한 셈입니다. 중요한 것은 파일의 양이 아니라 정보의 양입니다.
암기인지 알아보는 법
문제를 살짝 바꿔 보세요. 숫자, 이름, 순서를 바꾸거나 한 질문을 두 단계로 나눠 묻는 것입니다. 원본에는 유창하다가 작은 변경에 무너지면 추론이 아니라 암송입니다. 훈련한 적 없는 영역에서 억지로 틀을 끼워 맞추지 않고 적절히 불확실함을 보이는지도 기준이 됩니다. 순위표에서는 높은데 일상 사용에서는 자주 실패하는 모델은 테스트와 훈련 데이터의 겹침이 클 가능성이 있습니다.
모델을 고르거나 미세 조정하는 사람에게 대책은 소박하지만 확실합니다. 훈련에 쓰지 않는 데이터를 최종 검사용으로 남기고, 검증 곡선을 보며 제때 멈추고, 데이터 중복 제거와 정리를 철저히 하는 것입니다. 규칙을 배웠는지 답을 외웠는지, 그 경계선이 훈련실을 나간 뒤의 실력을 결정합니다.