# Overfitting (AI) Overfitting은 모델이 학습 데이터에 지나치게 맞춰져서 새로운 데이터에 대한 일반화 성능이 떨어지는 현상을 말한다. 학습 데이터의 노이즈나 특이성까지 학습해버려 테스트 데이터나 실서비스 데이터에서의 성능이 저하되는 것이 특징이다. 이는 모델이 데이터의 진짜 패턴이 아닌 우연한 상관관계까지 학습하기 때문이며, 다양한 분야의 머신러닝 및 딥러닝에서 공통적으로 나타나는 문제다. ## 정의 및 개념 차원 - 일반화(generalization): 학습 데이터가 보이지 않아도 새로운 데이터에 대해 올바르게 예측하는 능력. - 학습 오차(training error): 모델이 학습 데이터에서 얻은 오차. - 검증 오차(validation error): 학습 과정에서 사용되는 독립적인 데이터셋에서의 오차. - 테스트 오차(test error): 최종 모델의 실제 운영 시점에 평가하는 데이터에서의 오차. - Overfitting은 학습 오차가 낮더라도 검증/테스트 오차가 높아지는 현상을 지칭한다. ## 원인 - 모델 복잡도 과다: 파라미터 수가 데이터 포인트 수에 비해 많으면 학습 데이터의 노이즈까지 학습될 가능성이 커진다. - 데이터 양 대비 파라미터 과다: 데이터가 충분하지 않거나 다양성이 부족한 상황에서 복잡한 모델을 사용하면 일반화가 떨어진다. - 데이터 분할의 누수나 비절차적 샘플링: 훈련 데이터에 테스트/검증 데이터의 정보가 누출되면 실제 일반화 성능이 과대평가될 수 있다. - 비적절한 특징(feature) 설계: 불필요하게 많은 특징이나 노이즈가 포함되면 모델이 무의미한 패턴까지 학습한다. - 학습 데이터의 편향/bias: 학습 데이터가 특정 분포를 과도하게 대표하면 그 분포에 맞춘 예측이 늘어난다. - 모델 평가의 잘못된 설정: 검증 곡선이 충분히 수렴할 때까지 학습을 계속하면 오히려 과적합이 심화될 수 있다. ## 증상 및 징후 - 학습 데이터에서의 성능이 점점 좋아지지만 검증 데이터의 성능은 개선되지 않거나 악화된다. - 학습 곡선(training curve)이 검증 곡선보다 낮은 위치에서 차이가 커진다. - 테스트 데이터에서의 예측이 불안정하고 불일치가 발생한다. - 특정 샘플이나 구간에서 비정상적으로 높은 예측 정확도가 나타나며 일반성이 떨어진다. ## 수식적 이해: 바이어스-편향-분산 트레이드오프 - 평균 제곱 오차의 기대값은 다음과 같이 분해된다. $ \\mathbb{E}\\left[(\\hat f(x) - f(x))^2\\right] = \\mathrm{Bias}^2[\\hat f(x)] + \\mathrm{Var}[\\hat f(x)] + \\sigma^2 $ 여기서: - $\\mathrm{Bias}[\\hat f(x)]$는 모델이 목표 함수 $f(x)$를 얼마나 편향되게 근사하는지의 정도, - $\\mathrm{Var}[\\hat f(x)]$는 데이터 샘플의 변경에 따른 모델 출력의 분산, - $\\sigma^2$는 데이터 노이즈로 인한 불가피한 오차를 나타낸다. - Overfitting은 주로 높은 분산(Variances)이 원인이다. 모델이 지나치게 복잡해져 학습 데이터의 작은 변화에도 예측이 크게 달라진다. - Regularization 등을 통해 분산을 줄이고 바이어스 증가를 허용하는 것이 일반화 성능을 개선하는 방향이다. ## 진단 방법 - 학습/검증 곡선 확인: 학습 데이터에 대한 오차와 검증 데이터에 대한 오차가 서로 다르게 움직이는지 확인한다. - 교차 검증(Cross-Validation): 데이터 분할을 다수의 폴드에 대해 반복해서 일반화 성능을 측정한다. - 학습 데이터 절대 양의 변화에 따른 성능 추이 관찰: 더 많은 데이터를 확보했을 때 성능이 개선되는지 확인한다. - 테스트 세트 독립성 유지 여부 확인: 데이터 누수가 없는지 점검한다. ## 방지 및 완화 방법 - 데이터 분할의 적절성 확보 - Train/Validation/Test의 명확한 구분 - 데이터 샘플링 편향 제거 - Cross-Validation의 활용 - K-폴드 교차 검증 등으로 일반화 성능을 보다 안정적으로 추정 - Regularization - L1/L2 규제: 파라미터 값의 크기를 제한하여 과적합을 억제한다. - 예: $J(\\theta) = \\text{Loss}(\\theta) + \\lambda_1 \\sum_i |\\theta_i|$ (L1), $J(\\theta) = \\text{Loss}(\\theta) + \\lambda_2 \\sum_i \\theta_i^2$ (L2) - Early Stopping - 학습 중 검증 오차가 더 이상 개선되지 않으면 학습을 중단하여 과적합을 방지한다. - 데이터 증강(Data Augmentation) - 입력 데이터에 변환을 적용해 데이터 다양성을 확보하고 일반화 성능을 높인다. 예: 이미지 데이터에서의 회전, 잘라내기, 색상 변화 등. - 모델 단순화 - 파라미터 수를 줄이거나 네트워크 깊이/폭을 감소시켜 모델 복잡도를 낮춘다. - 드롭아웃(Dropout) 및 정규화 기법 - 신경망에서 학습 시 특정 뉴런의 활성화를 무작위로 제거해 공통 특성을 학습하게 한다. - 앙상블 방법 - 여러 모델의 예측을 합산하거나 투표하는 방식으로 일반화 성능을 향상시킨다. - 특징 선택(Feature Selection) - 중요하지 않거나 노이즈가 큰 특징을 제거하여 학습을 단순화한다. - 데이터 누수 방지 - 프리프로세싱에서의 누수 방지, 시계열 데이터의 시간 의존성 고려 등으로 실제 일반화 성능을 왜곡하지 않도록 한다. ## 딥러닝에서의 특수성 - 파라미터 수가 매우 커도 대량의 데이터와 정교한 규제/일관된 학습 스케줄이 있으면 일반화 성능이 개선될 수 있다. - 학습 데이터의 품질이 일반화 성능에 큰 영향을 준다. 데이터 편향, 라벨 노이즈, 라벨링 오류는 심각한 과적합의 원인이 된다. - Dropout, Batch Normalization, 데이터 증강, pretrained 모델 활용 등 현대 딥러닝의 일반화 전략이 광범위하게 사용된다. ## 사례 연구 및 예시 - 전형적 회귀 문제에서 고차 다항식 피팅 - 데이터가 실제로 한정된 간격에서만 나타나고 노이즈가 존재할 경우, 차수가 높은 다항식은 학습 데이터에 잘 맞지만 테스트 데이터에서의 예측은 크게 흔들릴 수 있다. - 수식 예시: $y = \\sin(2x) + \\varepsilon$, 여기서 $\\varepsilon$은 노이즈. 차수가 높은 다항식으로 근사하면 train에서 오차가 작아지나 test에서의 오차가 증가하는 현상을 관찰할 수 있다. - 딥러닝의 과적합 예시 - 충분한 데이터 없이 대규모 네트워크를 학습시키면 학습 데이터에 과도하게 적합해 검증 성능이 악화될 수 있다. 이때 데이터 증강, Early Stopping, Regularization, Dropout 등의 기법이 효과적으로 작동한다. ## 일반적 지침 - 목표는 학습 오차를 최소화하는 것뿐 아니라 검증/테스트 오차를 최소화하는 것임을 명심한다. - 문제의 성격에 맞는 일반화 전략을 사전에 계획하고, 모델 설계 단계에서부터 과적합 가능성을 낮추도록 한다. - 데이터의 품질(노이즈, 편향, 라벨링 정확성)을 꾸준히 점검한다. ## 용어 정리 (Glossary) - Overfitting: 학습 데이터에 과도하게 맞춰져 일반화가 떨어지는 현상. - Underfitting: 모델이 학습 데이터의 패턴을 충분히 학습하지 못하는 현상. - Cross-Validation: 데이터 분할을 여러 번 반복하여 일반화 성능을 추정하는 평가 방법. - Regularization: 모델 파라미터의 크기 또는 복잡도를 제한해 일반화 성능을 높이는 기법. - Early Stopping: 학습 중 검증 성능이 더 이상 개선되지 않으면 학습을 중단하는 기법. - Data Augmentation: 원본 데이터를 변형하여 학습 데이터의 다양성을 늘리는 기법. - Bias-Variance Tradeoff: 편향과 분산 사이의 균형을 맞추는 이론적 프레임워크. - Dropout: 신경망 학습 시 일부 뉴런을 무작위로 사용하지 않아 과적합을 방지하는 정규화 기법. - Feature Selection: 모델 학습에 사용될 특징의 수를 줄이는 방법. --- 관련 문서: [[Underfitting]], [[Cross-Validation]], [[Regularization]], [[Data Leakage]], [[Bias-Variance Tradeoff]]