콘텐츠로 이동

훈련 데이터에 아주 잘 맞는다고 해서 좋은 모델은 아닙니다. 진짜 목표는 아직 보지 못한 새로운 데이터에서도 잘 작동하는 모델을 만드는 것입니다. 일반화, 정규화, bias-variance는 이 목표를 이해하는 핵심 언어입니다. 셋은 따로 떨어진 개념이 아니라, "모델이 얼마나 잘 배우고 얼마나 흔들리는가"를 서로 다른 각도에서 설명하는 같은 문제입니다.

먼저 알아둘 말

  • 일반화: 학습하지 않은 새로운 데이터에서도 성능이 유지되는 성질이다.
  • 과적합: 훈련 데이터에는 너무 잘 맞지만 새로운 데이터에서는 성능이 떨어지는 현상이다.
  • 과소적합: 모델이 너무 단순해서 훈련 데이터조차 충분히 설명하지 못하는 현상이다.
  • 정규화: 모델이 지나치게 복잡해지지 않도록 벌점이나 제약을 추가하는 방법이다.
  • bias: 모델이 너무 단순해서 생기는 체계적인 오차다.
  • variance: 학습 데이터가 조금만 바뀌어도 예측이 크게 흔들리는 불안정성이다.

이 강의에서 답할 질문

  • 왜 훈련 성능이 높다고 해서 일반화 성능도 좋다고 말할 수 없을까?
  • 정규화는 모델을 어떻게 덜 흔들리게 만들까?
  • bias와 variance는 왜 동시에 줄이기 어려운가?

먼저 떠올릴 장면

  • 시험문제를 통째로 외운 학생은 비슷한 문제만 풀 수 있다.
  • 너무 복잡한 곡선은 주어진 점은 모두 지나가지만 전체 경향은 놓칠 수 있다.
  • 너무 단순한 직선은 큰 흐름만 따라가다가 중요한 구조를 설명하지 못할 수 있다.

즉 좋은 학습은 단순히 "외우는 것"도 아니고, 단순히 "대충 맞추는 것"도 아닙니다. 새로운 데이터에도 통하는 구조를 배우는 것이 핵심입니다.

생각의 순서

  • 먼저 일반화와 과적합의 차이를 본다.
  • 그다음 모델 복잡도가 왜 문제를 만들 수 있는지 본다.
  • 이어서 정규화가 어떤 방식으로 복잡도를 누르는지 본다.
  • 마지막으로 bias-variance 균형이 왜 생기는지 정리한다.

본문

1. 우리가 진짜 원하는 것은 훈련 성능이 아니라 일반화다

모델은 보통 훈련 데이터에서 손실을 줄이도록 학습됩니다. 그래서 학습이 잘되면 훈련 손실은 계속 낮아집니다.

하지만 실제 목표는 훈련 데이터를 잘 맞추는 것이 아니라, 새로운 데이터에서도 잘 작동하는 것입니다. 이것이 일반화입니다.

즉 질문은 이렇게 바뀌어야 합니다.

  • 훈련 데이터에서 얼마나 잘 맞는가?
  • 보지 못한 데이터에서도 그 실력이 유지되는가?

좋은 모델은 두 번째 질문에도 잘 답해야 합니다.

2. 과적합은 외워 버리는 문제다

과적합은 모델이 데이터의 일반적인 구조뿐 아니라 우연한 노이즈까지 함께 외워 버릴 때 생깁니다.

이 경우 보통 다음 현상이 나타납니다.

  • 훈련 손실은 매우 낮다.
  • 검증 데이터나 테스트 데이터 성능은 나빠진다.

왜 이런 일이 생길까요? 훈련 데이터에는 본질적인 패턴과 우연한 흔들림이 함께 들어 있기 때문입니다. 모델이 너무 유연하면 그 흔들림까지 모두 설명하려고 듭니다. 그러면 훈련 데이터에는 완벽해 보여도, 새로운 데이터에서는 그 외운 흔들림이 도움이 되지 않습니다.

즉 과적합은 "학습을 너무 많이 했다"기보다 "잘못된 방식으로 너무 자세히 외웠다"는 문제에 가깝습니다.

3. 과소적합은 반대로 너무 단순한 문제다

반대로 모델이 너무 단순하면 데이터의 중요한 구조를 잡아내지 못합니다. 이 경우 훈련 데이터에서도 성능이 충분히 올라가지 않습니다. 이것이 과소적합입니다.

예를 들어 실제 관계가 곡선인데, 항상 직선만 쓰겠다고 고집하면 큰 흐름조차 잘 못 맞출 수 있습니다.

따라서 좋은 모델은 복잡할수록 좋은 것도 아니고, 단순할수록 좋은 것도 아닙니다. 문제에 맞는 적절한 복잡도가 필요합니다.

4. 정규화는 복잡도를 억제하는 장치다

정규화는 모델이 지나치게 복잡한 해를 선택하지 않도록 제어하는 방법입니다. 가장 대표적인 예가 L2 정규화입니다.

$$ L_{\mathrm{total}} = L_{\mathrm{data}} + \lambda |w|^2 $$

여기서

$$ L_{\mathrm{data}} $$

는 데이터를 잘 맞추는 손실이고,

$$ \lambda |w|^2 $$

는 가중치가 너무 커지는 것을 억제하는 벌점입니다.

이 식은 모델에게 이렇게 말하는 셈입니다.

  • 데이터는 잘 맞춰라.
  • 하지만 지나치게 큰 가중치를 써서 복잡하게 푸는 것은 피하라.

즉 정규화는 "얼마나 잘 맞출 것인가"와 "얼마나 단순하게 유지할 것인가" 사이의 균형을 강제합니다.

5. 정규화가 왜 일반화에 도움이 될까

큰 가중치와 지나치게 복잡한 결정 경계는 훈련 데이터의 세세한 흔들림까지 따라가기 쉽습니다. 정규화는 이런 과도한 민감성을 줄여 모델이 좀 더 매끄럽고 안정적인 규칙을 배우게 만듭니다.

그래서 정규화는 단지 식에 벌점을 하나 더하는 기술이 아니라, 모델이 데이터의 우연한 노이즈보다 더 일반적인 구조를 선호하도록 만드는 장치입니다.

드롭아웃, 조기 종료, 데이터 증강 같은 방법도 넓은 의미에서는 일반화를 돕는 정규화 전략으로 볼 수 있습니다.

6. bias와 variance는 같은 문제를 두 방향에서 본다

bias와 variance는 일반화 문제를 더 구조적으로 이해하게 해 주는 개념입니다.

bias가 크다는 것은 모델이 너무 단순해서 평균적으로도 정답 구조를 잘 따라가지 못한다는 뜻입니다. 즉 체계적으로 틀리는 경향이 있습니다.

variance가 크다는 것은 훈련 데이터가 조금만 바뀌어도 모델 결과가 크게 흔들린다는 뜻입니다. 즉 현재 표본에 지나치게 민감합니다.

간단히 정리하면 다음과 같습니다.

  • 단순한 모델은 bias가 크고 variance가 작은 경향이 있다.
  • 복잡한 모델은 bias가 작고 variance가 큰 경향이 있다.

그래서 복잡도를 계속 높이면 항상 좋아지는 것이 아니라, 어느 지점부터는 variance가 커져 일반화가 오히려 나빠질 수 있습니다.

7. bias-variance 균형이 왜 중요한가

좋은 모델은 bias와 variance 둘 다 적당한 수준으로 유지해야 합니다.

모델이 너무 단순하면 중요한 구조를 놓칩니다. 반대로 너무 복잡하면 지금 가진 표본에만 지나치게 맞춰집니다.

이것이 bias-variance trade-off입니다. 두 값을 동시에 무한정 줄이기는 어렵고, 문제와 데이터 양에 맞는 균형점을 찾아야 합니다.

정규화는 바로 이 균형을 조절하는 대표 수단입니다. 정규화를 강하게 하면 variance를 낮추는 대신 bias가 커질 수 있고, 정규화를 너무 약하게 하면 bias는 낮아질 수 있지만 variance가 커질 수 있습니다.

8. AI에서는 왜 핵심 문제인가

AI 시스템에서 일반화는 가장 실전적인 질문입니다. 훈련 데이터에서 성능이 아무리 높아도, 실제 사용자 데이터에서 무너지면 모델은 쓸모가 없습니다.

그래서 실제 학습에서는 다음을 함께 봅니다.

  • 훈련 성능과 검증 성능의 차이
  • 모델의 복잡도
  • 정규화 세기
  • 데이터 양과 품질

결국 좋은 모델은 훈련셋을 가장 잘 외운 모델이 아니라, 새로운 상황에서도 가장 안정적으로 통하는 모델입니다.

예제

  1. 과적합의 의미 설명하기 문제: 왜 훈련 손실이 매우 낮아도 테스트 성능이 나쁠 수 있는가? 풀이: 모델이 데이터의 일반 구조뿐 아니라 우연한 노이즈까지 외워 버렸기 때문이다. 해설: 훈련 성능과 일반화 성능은 서로 다른 문제다.

  2. 정규화의 역할 읽기 문제: L2 정규화가 모델에 어떤 압력을 주는가? 풀이: 큰 가중치를 쓰는 복잡한 해보다, 더 작은 가중치로 설명되는 단순한 해를 선호하게 만든다.

$$ L_{\mathrm{total}} = L_{\mathrm{data}} + \lambda |w|^2 $$

해설: 정규화는 데이터 적합도와 모델 복잡도 사이의 균형을 만든다.

  1. bias-variance 직관 설명하기 문제: 매우 복잡한 모델이 가지기 쉬운 위험은 무엇인가? 풀이: 현재 표본에 너무 민감해져 variance가 커지고, 데이터가 조금만 바뀌어도 예측이 크게 흔들릴 수 있다. 해설: 표현력이 크다는 것과 일반화가 좋다는 것은 같은 말이 아니다.

스스로 점검

연습 문제

  1. 일반화와 훈련 성능의 차이를 설명하라.
  2. 과적합과 과소적합의 차이를 설명하라.
  3. 정규화가 왜 일반화에 도움이 되는지 설명하라.
  4. bias와 variance가 왜 trade-off 관계를 가지는지 설명하라.

복습 질문

  1. 우리가 진짜 최적화하고 싶은 성능은 무엇인가?
  2. 정규화는 어떤 균형을 조절하는가?
  3. 복잡한 모델은 왜 variance가 커지기 쉬운가?

체크포인트

  1. 일반화의 뜻을 설명할 수 있다.
  2. 과적합, 과소적합을 구분할 수 있다.
  3. 정규화의 역할을 설명할 수 있다.
  4. bias-variance 균형을 말할 수 있다.