[kakao x goorm] 생성 AI 응용 서비스 개발자 양성 과정/회고록

[kakao x goorm] 모델 성능평가와 일반화 오류 완전 정리

Hoonia 2025. 4. 23. 13:42

오늘은 머신러닝 모델을 어떻게 평가하고, 학습 데이터에 너무 맞추거나(과적합) 또는 충분히 학습하지 못하는(과소적합) 문제를 어떻게 이해하고 다뤄야 하는지에 대해 배웠다.
이론적으로도 중요하지만, 실무에서는 이 개념들을 제대로 알고 있어야 성능 좋은 모델을 만들 수 있기 때문에 개념부터 실제 적용 방법까지 하나씩 정리해봤다.

1. 데이터 셋 구성의 기본

머신러닝 모델을 개발할 때 가장 먼저 해야 할 일 중 하나가 데이터셋을 적절히 나누는 작업이다.
이 구성이 제대로 되어야 모델이 학습을 잘하고, 과적합 없이 일반화된 성능을 보여줄 수 있다.

Training Set (학습 세트)

  • 모델이 패턴을 학습할 수 있도록 제공되는 데이터셋
  • 전체 데이터의 약 60~80%를 사용
  • 이 데이터를 기반으로 모델의 파라미터가 조정된다

Validation Set (검증 세트)

  • 학습 중 모델의 성능을 확인하고, 과적합 여부를 판단하는 데 사용된다
  • 하이퍼파라미터 튜닝과 조기 종료(Early Stopping) 판단 등에 활용된다
  • 학습 데이터에는 포함되지만 모델 파라미터 학습에는 사용되지 않는다

Test Set (테스트 세트)

  • 학습이 완료된 모델을 실제로 평가하기 위해 사용하는 최종 데이터셋
  • 학습 및 검증 과정에서는 절대 사용되지 않아야 함
  • 실제 서비스 환경에서의 모델 성능을 유추하는 데 쓰인다

2. 검증 방법의 종류

단순히 데이터를 나누는 것만으로는 충분하지 않다.
모델이 얼마나 일반화 성능을 갖고 있는지 확인하기 위해 다양한 검증 전략이 사용된다.

검증 방식 설명 장점 단점
Holdout 데이터를 학습용/테스트용으로 나누어 한 번만 사용 빠르고 간단 결과의 신뢰도가 낮을 수 있음
K-Fold Cross Validation 전체 데이터를 k개로 나눈 후, 모든 조합을 번갈아 학습/검증 모든 데이터를 학습/검증에 활용 연산량이 많아짐
Stratified Sampling 클래스 비율을 유지하며 데이터를 나눔 불균형 데이터셋에 효과적 다중 레이블일 때 구현이 복잡
Bootstrap 데이터에서 중복을 허용한 채 여러 번 샘플링하여 평가 적은 데이터로도 성능 추정 가능 과적합 가능성 있음

3. 모델 성능 평가 지표

모델의 성능을 평가할 때는 단순히 정확도(Accuracy)만을 보는 것이 아니라, 여러 지표들을 상황에 맞게 함께 고려해야 한다.

Confusion Matrix (혼동 행렬)

예측값과 실제값을 조합한 표로, 대부분의 지표들이 이 행렬을 기반으로 계산된다.  

실제 / 예측 Positive Negative
Positive TP (True Positive) FN (False Negative)
Negative FP (False Positive) TN (True Negative)

주요 지표 요약

지표 의미 계산식
Accuracy 전체 예측 중 맞춘 비율 (TP + TN) / 전체
Precision 양성으로 예측한 것 중 실제 양성의 비율 TP / (TP + FP)
Recall 실제 양성 중 모델이 맞춘 비율 TP / (TP + FN)
F1 Score Precision과 Recall의 조화 평균 2 * (P * R) / (P + R)
AUC / ROC 민감도와 위양성률 간의 관계를 그래프로 표현 ROC 아래 면적(AUC)이 클수록 좋은 모델

4. 과적합과 과소적합

모델이 학습 데이터에만 치우쳐 성능이 실제 데이터에서 떨어지거나, 반대로 너무 단순해서 기본적인 패턴도 잡지 못하는 상황이 자주 발생한다.

과적합 (Overfitting)

  • 학습 데이터에 너무 잘 맞아서 일반화 성능이 떨어지는 경우
  • 복잡한 모델, 적은 학습 데이터, 정규화 부족 등이 원인
  • 학습 데이터 정확도는 높지만 테스트 데이터 정확도는 낮아짐

해결 방법

  • 모델 복잡도 줄이기
  • 정규화 (L1, L2)
  • 드롭아웃, 조기 종료(Early Stopping)
  • 더 많은 학습 데이터 확보

과소적합 (Underfitting)

  • 모델이 너무 단순해서 학습 데이터조차 제대로 학습하지 못하는 경우
  • 전체적으로 정확도가 낮고, 학습/테스트 모두 성능이 좋지 않다

해결 방법

  • 더 복잡한 모델 구조 사용
  • 더 많은 특성(feature) 추가
  • 학습을 더 오래 진행

5. Bias-Variance Trade-off

모델의 오류는 크게 편향(Bias)과 분산(Variance)으로 나뉜다.
이 둘은 상반되는 개념이며, 항상 균형을 고려해 모델을 구성해야 한다.

  • Bias가 높을 때: 모델이 너무 단순해서 패턴을 제대로 학습하지 못함 (Underfitting)
  • Variance가 높을 때: 모델이 너무 복잡해서 학습 데이터의 노이즈까지 학습함 (Overfitting)

현실에서는 이 둘 사이에서 일반화 성능이 가장 좋은 지점을 찾는 것이 중요하다.
모델 복잡도를 조절하거나, 규제 기법을 적용하여 이 균형을 조정할 수 있다.

오늘의 회고

지금까지는 모델의 정확도가 높으면 좋은 모델이라고만 생각했지만, 오늘 배운 내용을 통해 정확도 하나만으로는 모델을 평가하기에 부족하다는 걸 확실히 느꼈다.
데이터가 불균형할 때 정확도는 오히려 잘못된 판단을 유도할 수 있다는 점, 그리고 Precision과 Recall의 균형이 중요한 이유도 체감할 수 있었다.

또한 과적합과 과소적합의 개념을 정확히 이해하면서, 실전에서 어떤 증상이 나타났을 때 어떤 문제가 원인인지, 어떤 방향으로 개선해야 할지를 판단할 수 있는 기준이 생긴 것 같다.

다음 회차에서는 하이퍼파라미터 튜닝을 통해 이론을 실제 모델에 적용해보는 과정을 다룰 예정인데, 오늘 배운 개념들이 튼튼한 기초가 되어줄 것 같다.
단순한 이론 암기를 넘어서, 실질적인 문제 해결 능력을 기를 수 있는 기반이 마련된 날이었다.