훈련 데이터에 아주 잘 맞는다고 해서 좋은 모델은 아닙니다. 진짜 목표는 아직 보지 못한 새로운 데이터에서도 잘 작동하는 모델을 만드는 것입니다. 일반화, 정규화, bias-variance는 이 목표를 이해하는 핵심 언어입니다. 셋은 따로 떨어진 개념이 아니라, "모델이 얼마나 잘 배우고 얼마나 흔들리는가"를 서로 다른 각도에서 설명하는 같은 문제입니다.
즉 좋은 학습은 단순히 "외우는 것"도 아니고, 단순히 "대충 맞추는 것"도 아닙니다. 새로운 데이터에도 통하는 구조를 배우는 것이 핵심입니다.
모델은 보통 훈련 데이터에서 손실을 줄이도록 학습됩니다. 그래서 학습이 잘되면 훈련 손실은 계속 낮아집니다.
하지만 실제 목표는 훈련 데이터를 잘 맞추는 것이 아니라, 새로운 데이터에서도 잘 작동하는 것입니다. 이것이 일반화입니다.
즉 질문은 이렇게 바뀌어야 합니다.
좋은 모델은 두 번째 질문에도 잘 답해야 합니다.
과적합은 모델이 데이터의 일반적인 구조뿐 아니라 우연한 노이즈까지 함께 외워 버릴 때 생깁니다.
이 경우 보통 다음 현상이 나타납니다.
왜 이런 일이 생길까요? 훈련 데이터에는 본질적인 패턴과 우연한 흔들림이 함께 들어 있기 때문입니다. 모델이 너무 유연하면 그 흔들림까지 모두 설명하려고 듭니다. 그러면 훈련 데이터에는 완벽해 보여도, 새로운 데이터에서는 그 외운 흔들림이 도움이 되지 않습니다.
즉 과적합은 "학습을 너무 많이 했다"기보다 "잘못된 방식으로 너무 자세히 외웠다"는 문제에 가깝습니다.
반대로 모델이 너무 단순하면 데이터의 중요한 구조를 잡아내지 못합니다. 이 경우 훈련 데이터에서도 성능이 충분히 올라가지 않습니다. 이것이 과소적합입니다.
예를 들어 실제 관계가 곡선인데, 항상 직선만 쓰겠다고 고집하면 큰 흐름조차 잘 못 맞출 수 있습니다.
따라서 좋은 모델은 복잡할수록 좋은 것도 아니고, 단순할수록 좋은 것도 아닙니다. 문제에 맞는 적절한 복잡도가 필요합니다.
정규화는 모델이 지나치게 복잡한 해를 선택하지 않도록 제어하는 방법입니다. 가장 대표적인 예가 L2 정규화입니다.
여기서
는 데이터를 잘 맞추는 손실이고,
는 가중치가 너무 커지는 것을 억제하는 벌점입니다.
이 식은 모델에게 이렇게 말하는 셈입니다.
즉 정규화는 "얼마나 잘 맞출 것인가"와 "얼마나 단순하게 유지할 것인가" 사이의 균형을 강제합니다.
큰 가중치와 지나치게 복잡한 결정 경계는 훈련 데이터의 세세한 흔들림까지 따라가기 쉽습니다. 정규화는 이런 과도한 민감성을 줄여 모델이 좀 더 매끄럽고 안정적인 규칙을 배우게 만듭니다.
그래서 정규화는 단지 식에 벌점을 하나 더하는 기술이 아니라, 모델이 데이터의 우연한 노이즈보다 더 일반적인 구조를 선호하도록 만드는 장치입니다.
드롭아웃, 조기 종료, 데이터 증강 같은 방법도 넓은 의미에서는 일반화를 돕는 정규화 전략으로 볼 수 있습니다.
bias와 variance는 일반화 문제를 더 구조적으로 이해하게 해 주는 개념입니다.
bias가 크다는 것은 모델이 너무 단순해서 평균적으로도 정답 구조를 잘 따라가지 못한다는 뜻입니다. 즉 체계적으로 틀리는 경향이 있습니다.
variance가 크다는 것은 훈련 데이터가 조금만 바뀌어도 모델 결과가 크게 흔들린다는 뜻입니다. 즉 현재 표본에 지나치게 민감합니다.
간단히 정리하면 다음과 같습니다.
그래서 복잡도를 계속 높이면 항상 좋아지는 것이 아니라, 어느 지점부터는 variance가 커져 일반화가 오히려 나빠질 수 있습니다.
좋은 모델은 bias와 variance 둘 다 적당한 수준으로 유지해야 합니다.
모델이 너무 단순하면 중요한 구조를 놓칩니다. 반대로 너무 복잡하면 지금 가진 표본에만 지나치게 맞춰집니다.
이것이 bias-variance trade-off입니다. 두 값을 동시에 무한정 줄이기는 어렵고, 문제와 데이터 양에 맞는 균형점을 찾아야 합니다.
정규화는 바로 이 균형을 조절하는 대표 수단입니다. 정규화를 강하게 하면 variance를 낮추는 대신 bias가 커질 수 있고, 정규화를 너무 약하게 하면 bias는 낮아질 수 있지만 variance가 커질 수 있습니다.
AI 시스템에서 일반화는 가장 실전적인 질문입니다. 훈련 데이터에서 성능이 아무리 높아도, 실제 사용자 데이터에서 무너지면 모델은 쓸모가 없습니다.
그래서 실제 학습에서는 다음을 함께 봅니다.
결국 좋은 모델은 훈련셋을 가장 잘 외운 모델이 아니라, 새로운 상황에서도 가장 안정적으로 통하는 모델입니다.
과적합의 의미 설명하기
문제: 왜 훈련 손실이 매우 낮아도 테스트 성능이 나쁠 수 있는가?
풀이: 모델이 데이터의 일반 구조뿐 아니라 우연한 노이즈까지 외워 버렸기 때문이다.
해설: 훈련 성능과 일반화 성능은 서로 다른 문제다.
정규화의 역할 읽기
문제: L2 정규화가 모델에 어떤 압력을 주는가?
풀이: 큰 가중치를 쓰는 복잡한 해보다, 더 작은 가중치로 설명되는 단순한 해를 선호하게 만든다.
해설: 정규화는 데이터 적합도와 모델 복잡도 사이의 균형을 만든다.