머신러닝 규제(Regularization) 완전 정복

발라·2025년 5월 21일

AI 이해의 첫걸음

목록 보기
6/21
post-thumbnail

개요

머신러닝 모델은 복잡도가 증가함에 따라 훈련 데이터에 과도하게 적합(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(β)=12i=1n(yixiβ)2+λβ22J(\boldsymbol\beta) = \frac{1}{2} \sum_{i=1}^n (y_i - \mathbf{x}_i^\top \boldsymbol\beta)^2 + \lambda \|\boldsymbol\beta\|_2^2

1.2 L1 규제 (Lasso)

J(β)=12i=1n(yixiβ)2+λβ1J(\boldsymbol\beta) = \frac{1}{2} \sum_{i=1}^n (y_i - \mathbf{x}_i^\top \boldsymbol\beta)^2 + \lambda \|\boldsymbol\beta\|_1

1.3 ElasticNet

12nyXw22+αl1_ratiow1+12α(1l1_ratio)w22\frac{1}{2n} \|y - Xw\|_2^2 + \alpha\,\text{l1\_ratio} \|w\|_1 + \frac{1}{2}\alpha (1 - \text{l1\_ratio}) \|w\|_2^2

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(β22σ2)p(\beta) \propto \exp\left(-\frac{\beta^2}{2\sigma^2}\right)

    → L2 정규화와 동일

  • Laplace prior:

    p(β)exp(βb)p(\beta) \propto \exp\left(-\frac{|\beta|}{b}\right)

    → 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에 대해서 좀 더 알아가고 있는 코딩 입문자 드림

profile
능숙한 바이브코딩을 할 수 있게 됨을 꿈꾸며

0개의 댓글