과적합 막는 법 | Regularization, LASSO, Ridge
모델이 데이터를 외워버리는 과적합(Overfitting)을 막기 위한 핵심 원리 — Regularization, LASSO, Ridge를 정리
sol-commits Oct 21, 2025
요약
- 과적합
- 훈련 데이터는 기가 막히게 맞히지만 새 데이터에서 성능이 떨어지는 현상
- 원인
- 모델이 너무 복잡하거나, 데이터가 부족하거나
- 학습을 너무 오래 시키거나, 검증 절차가 허술할 때
- 해결 핵심
- 데이터 쪽을 튼튼히, 모델을 단순하게
- 규제(Regularization)로 복잡도를 벌주기, 검증 절차로 과적합을 조기에 포착
과적합
- 학생 A: 기출문제 정답만 외워서 시험 봄 → 기출은 만점, 새 문제는 망
- 모델: 훈련셋에선 낮은 오차, 검증/테스트셋에선 높은 오차
증상 체크
- Train Loss ⬇️⬇️⬇️ 인데 Val/Test Loss ⬆️
- 일반화 갭(Train 성능 - Val 성능)이 크게 벌어짐
- 학습 epoch이 늘수록 검증 성능이 다시 나빠짐(뒤집히는 지점 탄생)
원인
- 모델이 너무 복잡: 파라미터가 데이터보다 훨씬 많음
- 데이터 부족/잡음 많음: 외워버리기 쉬운 환경
- 검증 절차 부실: 데이터 누수(leakage), 편향된 분할
- 학습 오래/무규제: 끝까지 우겨 맞추다 noise까지 학습
Bias-Variance 트레이드오프
테스트 오차 ≈ 노이즈 + 바이어스² + 분산Bias = 평균적으로 얼마나 중심(정답)에서 벗어나는가
Variance = 훈련 데이터가 달라질 때 예측이 얼마나 흔들리는가
| ㅤ | 설명 | 의미 |
| Low Bias Low Variance | 예측이 정답에 가까움 | 이상적인 모델 평균적으로 정답과 가깝고 데이터가 바뀌어도 안정적 |
| Low Bias High Variance | 점들이 중심 근처지만 흩어짐 | 데이터에 따라 결과가 출렁 → 과적합 경향 |
| High Bias Low Variance | 중심에서 먼 곳에 있음 | 일관되게 틀림 → 단순 모델(underfitting) |
| High Bias High Variance | 중심에서 먼 곳에 있고 흩어짐 | 일관되게 틀리고, 불안정하기까지 함 |
과적합 진단
데이터 분할: Train / Validation / Test
교차검증(k-fold): 데이터를 k개 폴드로 나눠 번갈아 검증
학습곡선/Learning Curve: epoch에 따른 Train/Val 오차 추이
검증 곡선/Validation Curve: 하이퍼파라미터에 따른 Train/Val 성능 비교
데이터 누수 방지: 스케일링/특징추출은 Train에 맞춰 학습
과적합 방지 기법
A. 데이터 측면 강화
- 데이터 더 모으기
- 데이터 증강
- 이미지: 회전/좌우반전/크롭/색상변환
- 텍스트/오디오: 동의어 치환, 시간 스트레치 등
- 노이즈 주입: 입력 x에 작은 잡음 추가 → 과민반응 완화
- 라벨 스무딩
- 다중분류에서 정답 1.0을 1−ε, 나머지 클래스를 ε/(K−1) 로 분산
정답 확률을 100%로 못 박지 말고 아주 살짝 퍼뜨려 모델이 덜 확신하게 하기
B. 모델 구조를 간단하게
파라미터 축소: 작은 모델, shallow network, 낮은 차수의 다항식
특징선택/차원축소: LASSO, PCA 등으로 불필요한 변수 제거
트리 모델: 최대 깊이 제한, 리프 최소 샘플 수 설정, 가지치기(pruning)
KNN: K를 너무 작게 두면 과적합
C. Regularization
잘 맞추되 복잡하면 벌금을 냄: 벌금 세기(크면 단순해짐, 너무 크면 과소적합)
- Ridge(L2) - 부드럽게 줄이기
- 상관된 feature가 많을 때 안정적
- 베이지안 시각: 가우시안 사전(Gaussian prior)에 해당
- LASSO(L1) - 필요 없는 건 0으로
- 어떤 계수는 정확히 0 → 변수 선택(희소성)
- 변수가 많고 중요한 것만 고르고 싶을 때
- 베이지안 시각: 라플라스 사전(Laplace prior)에 해당
- Elastic Net - 둘 다 섞자
- LASSO의 선택성 + Ridge의 안정성
D. 학습 과정에서의 규제
- Early Stopping
- 검증 손실(Val loss)이 개선 멈추면 조기 종료
- 지나친 외우기 방지(L2)와 비슷한 효과를 보이기도 함
- Dropout
- 학습 중 확률 p로 일부 노드(또는 가중치 연결)를 무작위로 0
- 많은 작은 모델을 앙상블한 효과 → 과적합 감소
- BatchNorm/Weight Decay(=L2)
- BatchNorm 자체가 정규화는 아니지만 학습 안정화로 과적합이 줄어드는 경우 많음
- 매 미니배치마다 조금씩 다른 평균, 분산 값이 들어감 → 입력에 노이즈를 주는 효과와 같음
- Weight Decay: 딥러닝에서 L2와 동일 개념
E. 앙상블
- Bagging: 다른 부트스트랩 샘플로 여러 모델 → 평균
- 랜덤 포레스트가 대표적(트리의 앙상블)
- Boosting: 이전 모델이 틀린 샘플을 점점 더 잘 맞추도록 가중
- XGBoost, LightGBM, CatBoost 등
- Stacking: 여러 모델의 출력 → 다른 모델이 종합
F. 모델 선택 기준
- 데이터 적합도(로그우도)와 모델 크기(파라미터 수 k)를 함께 고려