개요
머신러닝 모델은 복잡도가 증가함에 따라 훈련 데이터에 과도하게 적합(overfitting)되어 신규 데이터에 대한 일반화 성능이 저하될 수 있습니다.
이를 해결하기 위해 모델 학습 시 가중치에 패널티를 부여하거나 학습 과정을 제어하는 정규화(Regularization) 기법을 적용합니다.
본 글에서는 다음을 중심으로 정리합니다:
1. 수식 표기 일관성 (½ 계수 포함)
2. 선형 모델 규제: L1, L2, ElasticNet
3. 딥러닝 특화 규제: Dropout, Early Stopping
4. Bayesian Regularization 해석
5. 확장 기법: Group Lasso, L₀ 정규화, Batch Normalization
6. 실전 적용 팁 및 코드 예제
7. 결론
1. 수식 표기 일관성
1.1 L2 규제 (Ridge)
J(β)=21i=1∑n(yi−xi⊤β)2+λ∥β∥22
1.2 L1 규제 (Lasso)
J(β)=21i=1∑n(yi−xi⊤β)2+λ∥β∥1
1.3 ElasticNet
2n1∥y−Xw∥22+αl1_ratio∥w∥1+21α(1−l1_ratio)∥w∥22
2. 주요 규제 기법 개요
2.1 L1 규제 (Lasso)
- 정의: 절댓값 합 패널티로 희소성 유도
- 장점: 자동 변수 선택 기능
- 단점: 상관 변수 중 임의 선택 가능성
2.2 L2 규제 (Ridge)
- 정의: 제곱합 패널티로 계수 축소
- 장점: 다중공선성 완화, 계산 안정성
- 단점: 희소 해 제공 불가
2.3 ElasticNet
- 정의: L1과 L2 규제를 혼합
- 장점: 고차원/저샘플 환경에서 효과적
- 하이퍼파라미터:
alpha, l1_ratio 필요
3. 딥러닝 특화 규제 기법
3.1 Dropout
- 원리: 학습 시 일부 뉴런을 무작위로 제거
- 효과: 모델 앙상블 효과, 과적합 방지
3.2 Early Stopping
- 원리: 검증 손실이 개선되지 않으면 조기 종료
- 효과: 불필요한 학습 방지, 일반화 성능 향상
4. Bayesian Regularization
-
Gaussian prior:
p(β)∝exp(−2σ2β2)
→ L2 정규화와 동일
-
Laplace prior:
p(β)∝exp(−b∣β∣)
→ L1 정규화와 동일
- 장점: 불확실성 정량화 및 사전 지식 반영 가능
5. 확장 기법
5.1 Group Lasso
- 정의: 변수 그룹 단위로 규제 적용
- 응용: 유전체, 이미지 패치 등 구조적 데이터
5.2 L₀ 정규화
- 정의: 비영 파라미터 수에 직접 패널티
- 특징: NP-hard → 근사 기법 필요
5.3 Batch Normalization
- 정의: 배치 단위로 정규화 수행
- 효과: 학습 안정화, 과적합 억제
6. 실전 적용 팁 및 코드 예제
from sklearn.linear_model import ElasticNet
from sklearn.model_selection import GridSearchCV
param_grid = {
'alpha': [0.1, 1.0, 10.0],
'l1_ratio': [0.1, 0.5, 0.9]
}
grid = GridSearchCV(ElasticNet(), param_grid, cv=5)
grid.fit(X_train, y_train)
print("Best params:", grid.best_params_)
7. 결론
이 글에서는 머신러닝에서 과적합을 방지하기 위한 주요 정규화 기법들을 수식, 개념, 코드 예제 중심으로 정리했습니다.
- L1/L2/ElasticNet은 선형 모델의 기본기를 다지는 데 적합하며,
- Dropout, Early Stopping은 딥러닝에서 매우 효과적인 규제 방식입니다.
- Bayesian 관점에서는 사전분포를 통한 규제 해석이 가능하고,
- Group Lasso, L₀ 정규화는 희소성 제어의 고급 기법입니다.
모델에 따라 알맞은 규제 기법을 선택하고, 하이퍼파라미터를 신중히 조절한다면 일반화 성능을 높이며 오버피팅을 효과적으로 제어할 수 있습니다.
감사합니다.
AI에 대해서 좀 더 알아가고 있는 코딩 입문자 드림