과적합
Overfitting
과적합이란?
- 학습 데이터를 '너무 외워' 새것에 약함
- 시험 문제만 달달 외운 학생
- 일반화 실패
과적합이라는 개념을 알고 나면 실제로 바뀌는 것은 모델의 성능이 아니라 성적표를 읽는 순서입니다. 학습 데이터에서 나온 정확도 99%는 성과가 아니라 아직 검증되지 않은 주장으로 취급하게 되고, 회의에서 던지는 첫 질문도 '몇 퍼센트 나왔습니까'에서 '그 숫자를 어떤 데이터에서 뽑았습니까'로 옮겨갑니다. 즉 판단의 무게가 점수 자체에서 점수가 나온 데이터의 출처로 이동합니다.
실무에서는 보유 데이터를 학습·검증·테스트로 대략 6:2:2로 나누고, 학습 성능과 검증 성능의 차이를 봅니다. 두 값의 격차가 5~10%포인트 이상 벌어지면 과적합을 의심하는 것이 통상적인 기준입니다. 데이터가 적으면 5겹 교차검증처럼 나누는 방식을 바꿔가며 여러 번 재고, 변수 개수를 줄이거나 규제를 걸거나 검증 점수가 더 오르지 않는 시점에 학습을 끊는 조기 종료를 씁니다. 다만 학습 성능과 검증 성능이 둘 다 낮은 경우라면 이것은 과적합이 아니라 과소적합이라, 모델을 더 단순하게 만드는 처방은 오히려 상황을 악화시킵니다.
현장에서 가장 자주 어긋나는 지점은 테스트 데이터를 성능 측정용이 아니라 튜닝 재료로 쓰는 경우입니다. 테스트 점수를 보고 설정을 고치는 일을 열 번, 스무 번 반복하면 결국 그 테스트 데이터에도 사람이 과적합되어 숫자만 예쁜 모델이 남습니다. 또 하나는 시계열 데이터를 무작위로 섞어 나누는 것으로, 미래 시점 기록이 학습에 섞여 들어가 점수가 부풀려지고 운영에 올리는 순간 무너집니다. '정확도 96%'라는 한 줄만 보고 도입을 결재하면 오경보에 지친 현장이 반년 만에 알림을 꺼버리는 결말로 이어지므로, 보고서에는 어떤 데이터로 언제 잰 숫자인지 한 줄을 반드시 붙여야 합니다.
통계학·머신러닝의 근본 개념으로, 모델이 데이터의 신호가 아닌 잡음까지 학습하는 문제를 가리키며 일반화 성능의 핵심 주제입니다.
가상의 사례로 살펴보겠습니다. 임직원 240명, 연매출 800억 원 규모의 자동차 부품 제조사 A사는 프레스 라인 설비 고장으로 연간 30회 넘게 생산이 멈추는 문제를 안고 있었습니다. 경영진은 3개월 안에 이상 징후 예측 모델을 붙이라고 지시했고, 생산기술팀과 데이터분석 담당이 공동으로 붙었습니다.
- 생산기술팀 김 차장은 6개월치 센서 로그 42만 건으로 만든 예측 모델이 학습 정확도 98.4%를 찍자 '이 정도면 다음 주에 바로 라인에 걸자'고 보고했습니다.
- 데이터분석 담당 이 과장이 모델이 한 번도 보지 않은 최근 2개월 로그로 다시 돌려보니 적중률이 61%로 주저앉았고, 오경보가 하루 평균 14건씩 떴습니다.
- 로그를 뜯어보니 설비 번호와 측정 시각이 그대로 변수로 들어가 있어, 모델이 고장의 전조가 아니라 '3호기 야간 시간대'라는 꼬리표를 외우고 있었습니다.
- 이 과장은 변수를 37개에서 12개로 줄이고 시간 순서대로 학습 4개월·검증 1개월·테스트 1개월로 잘라 5회 반복 검증했으며, 그 결과 학습 정확도는 89%로 내려갔습니다.
- 대신 실제 라인 투입 두 달간 적중률이 84%를 유지했고 오경보는 하루 3건으로 줄어, 계획에 없던 설비 정지가 월 11회에서 4회로 감소했습니다.