콘텐츠로 이동

정규화 이론 (Regularization Theory)

난이도: 중급
선수 지식: 선형 모델 (Ridge, Lasso), 기초 최적화
관련 문서: 선형 모델 | 과적합과 과소적합 | 경사 하강법 | 손실 함수

핵심 요약: 모델이 훈련 데이터를 “외우지 못하게” 페널티(Penalty)를 주는 기법. 정규화(Regularization)는 가중치(Weight)를 작게 유지하거나, 뉴런(Neuron)을 무작위로 끄거나, 학습을 일찍 멈추는 등 다양한 방식으로 과적합(Overfitting)을 방지한다. 거의 모든 현대 ML 모델에 필수적으로 적용된다.


정규화(Regularization)는 모델의 과적합을 방지하기 위해 학습 과정에 제약 또는 페널티를 추가하는 기법의 총칭이다. 머신러닝에서 가장 중요한 개념 중 하나이며, 거의 모든 현대 모델에 어떤 형태로든 정규화가 적용된다.

정규화를 이해하는 다양한 관점:

  • 베이지안 관점: 파라미터에 대한 사전분포 (MAP 추정)
  • 빈도론적 관점: 가설 공간 제약, 유효 모델 복잡도 감소
  • 편향-분산 관점: 편향을 약간 증가시켜 분산을 크게 감소
  • 정보 이론적 관점: 모델 복잡도 페널티 (MDL 원리)

정규화의 역사는 통계학과 머신러닝의 발전과 궤를 같이 한다.

  • 1970년, Hoerl & Kennard: Ridge 회귀(L2 정규화)를 제안했다. 다중공선성(Multicollinearity) 문제가 있는 회귀 분석에서 추정치가 불안정해지는 문제를 해결하기 위해, 가중치의 제곱합에 페널티를 부과하는 아이디어를 도입했다.
  • 1996년, Robert Tibshirani: Lasso(L1 정규화)를 제안했다. Ridge와 달리 가중치를 정확히 0으로 만들 수 있어, 자동 특성 선택(Automatic Feature Selection)이 가능해졌다. 고차원 데이터 분석의 혁명적 도구가 되었다.
  • 2010년대~현재: 딥러닝 시대에 접어들면서 정규화의 형태도 진화했다. Dropout(2014, Srivastava et al.), 배치 정규화(2015, Ioffe & Szegedy), AdamW(2019, Loshchilov & Hutter) 등 신경망에 특화된 정규화 기법들이 등장했고, SGD 자체의 암묵적 정규화(Implicit Regularization) 효과도 활발히 연구되고 있다.

비유: L2 = 속도 조절기, L1 = 엄격한 교사

섹션 제목: “비유: L2 = 속도 조절기, L1 = 엄격한 교사”

두 가지 대표적 정규화를 직관적으로 이해하기 위한 비유:

  • L2 정규화 = 자동차 속도 조절기(Speed Limiter): 극단적인 속도(큰 가중치)를 막아주지만, 완전히 정지시키지는 않는다. 모든 가중치를 부드럽게 축소하되, 어떤 가중치도 정확히 0이 되지 않는다. 도로 위의 모든 차가 적정 속도로 달리게 하는 것과 같다.
  • L1 정규화 = 엄격한 교사(Strict Teacher): 성적이 일정 기준 이하인 학생에게는 아예 0점을 준다. 즉, 중요하지 않은 특성의 가중치를 완전히 0으로 만들어 “퇴출”시킨다. 정말 중요한 특성만 살아남아, 모델이 자연스럽게 희소해진다.

λw22=λiwi2\lambda\|\mathbf{w}\|_2^2 = \lambda\sum_{i} w_i^2

기울기가 다음으로 변경:

Lreg=L+2λw\nabla L_{\text{reg}} = \nabla L + 2\lambda\mathbf{w}

각 업데이트에서 가중치가 (12λη)(1 - 2\lambda\eta) 배로 축소 —> 가중치 감쇠(weight decay)라는 이름의 유래

L2 정규화(Ridge)가 가중치를 어떻게 줄이는지 구체적으로 살펴보자.

정규화 전 학습된 계수(Coefficient): [5.2,3.8,0.1][5.2, -3.8, 0.1]

L2 페널티(Penalty) λ=0.5\lambda = 0.5 적용 후, 각 가중치가 비례적으로 축소된다:

가중치정규화 전L2 적용 후변화
w1w_15.22.1큰 값이 크게 축소
w2w_2-3.8-1.5큰 값이 크게 축소
w3w_30.10.08작은 값은 거의 유지

핵심: L2는 모든 가중치를 0에 가깝게 만들지만, 완전히 0으로 만들지는 않는다. 반면 L1 정규화(Lasso)는 같은 상황에서 w3=0.1w_3 = 0.1정확히 0으로 만들어 해당 특성(Feature)을 제거한다. 이것이 L1이 자동 특성 선택(Automatic Feature Selection)을 수행하는 이유이다.

  • 모든 가중치를 비례적으로 축소
  • 작은 가중치가 상대적으로 더 많이 축소됨
  • 어떤 가중치도 정확히 0이 되지 않음

XTX\mathbf{X}^T\mathbf{X}의 고유값을 매끄럽게 하여 역행렬 계산을 안정화:

(XTX+λI)1(\mathbf{X}^T\mathbf{X} + \lambda\mathbf{I})^{-1}

λ>0\lambda > 0이면 항상 역행렬이 존재 (다중공선성 해결)

가중치에 대한 가우시안 사전분포: wN(0,12λI)\mathbf{w} \sim \mathcal{N}(0, \frac{1}{2\lambda}\mathbf{I})


λw1=λiwi\lambda\|\mathbf{w}\|_1 = \lambda\sum_{i} |w_i|

  • wi=0w_i = 0 근처에서 미분이 불연속 (준미분(subdifferential))
  • 0 주변에 “죽은 영역(dead zone)” 생성: 기울기가 가중치를 정확히 0으로 밀어냄
  • 근위 연산자(proximal operator) 관점: 소프트 임계값 처리(soft-thresholding)

proxλ(w)=sign(w)max(wλ,0)\text{prox}_{\lambda}(w) = \text{sign}(w)\max(|w| - \lambda, 0)

  • 자동 특성 선택: 불필요한 특성의 가중치가 0이 됨
  • 해석 가능한 모델

가중치에 대한 라플라스 사전분포: P(wi)exp(λwi)P(w_i) \propto \exp(-\lambda|w_i|)


L1과 L2를 결합:

λ1w1+λ2w22\lambda_1\|\mathbf{w}\|_1 + \lambda_2\|\mathbf{w}\|_2^2

  • 희소성 (L1) + 안정성 (L2)
  • 상관된 특성 그룹을 함께 처리
  • 자세한 내용은 선형 모델 참조

훈련 중 각 뉴런을 확률 pp무작위 비활성화:

h~i={0확률 phi/(1p)확률 1p\tilde{h}_i = \begin{cases} 0 & \text{확률 } p \\ h_i / (1-p) & \text{확률 } 1-p \end{cases}

(역 드롭아웃(inverted dropout) 방식: 훈련 중 스케일링)

관점설명
앙상블 근사2n2^n개 서브네트워크의 근사 앙상블
정규화뉴런 간 공적응(co-adaptation) 방지
노이즈 주입훈련에 확률적 노이즈 추가
베이지안근사 변분 추론 (Gal & Ghahramani, 2016)
  • DropConnect: 가중치를 비활성화 (뉴런 대신)
  • Spatial Dropout: 채널 단위 드롭아웃 (CNN)
  • DropBlock: 영역 단위 드롭아웃 (CNN)

  1. 검증 손실(validation loss)을 모니터링
  2. 검증 손실이 더 이상 감소하지 않으면 학습 중단
  3. 최저 검증 손실 시점의 모델 가중치를 복원

메커니즘 다이어그램

선형 모델에서 적절한 학습률로의 조기 종료는 L2 정규화와 수학적으로 동치이다. 학습 반복 횟수 1/λ\propto 1/\lambda.

  • 인내심(patience): 검증 손실이 개선되지 않아도 기다리는 에폭 수
  • 최소 변화량(min_delta): 개선으로 인정할 최소 변화량
  • 최적 가중치 복원: restore_best_weights=True

훈련 데이터의 변형된 복사본을 생성하여 효과적인 데이터셋 크기를 증가시킨다.

영역기법
이미지회전, 뒤집기, 자르기, 색상 조작, Mixup, CutMix, CutOut, AutoAugment
텍스트동의어 대체, 역번역(back-translation), 무작위 삽입/삭제
정형 데이터SMOTE (불균형용), 노이즈 주입
  • 모델이 학습해야 할 불변성(invariance)을 암시적으로 인코딩
  • 효과적인 훈련 세트 크기 증가 —> 분산 감소

  • 각 레이어의 입력을 미니배치 통계로 정규화
  • 내부 공변량 변화(internal covariate shift) 감소
  • 암묵적 정규화 효과: 미니배치에 의한 노이즈가 정규화 역할

하드 레이블 (1,0,0,...)(1, 0, 0, ...)을 소프트 레이블 (1α,α/(K1),...)(1-\alpha, \alpha/(K-1), ...)로 대체:

  • 모델의 과도한 확신(overconfidence) 방지
  • 보정된 확률 추정

두 훈련 샘플의 선형 보간으로 새 샘플 생성:

x~=λxi+(1λ)xj,y~=λyi+(1λ)yj\tilde{x} = \lambda x_i + (1-\lambda)x_j, \quad \tilde{y} = \lambda y_i + (1-\lambda)y_j

  • 결정 경계를 매끄럽게
  • 분포 외 데이터에 대한 강건성 향상
기법설명
가중치 제약 (Weight Constraint)wc\|\mathbf{w}\| \le c 로 클리핑
노이즈 주입 (Noise Injection)입력, 가중치, 기울기에 노이즈 추가
Max-Norm Regularization가중치 노름의 상한 제약

방법유형제약 대상적용 시기
L2 (Ridge)명시적가중치 크기대부분의 모델에 기본
L1 (Lasso)명시적가중치 희소성특성 선택 필요 시
Dropout확률적뉴런 공적응신경망
조기 종료암묵적학습 반복 수모든 반복 학습
데이터 증강암묵적효과적 데이터 크기데이터 부족 시
배치 정규화암묵적내부 분포심층 신경망
레이블 스무딩명시적출력 확신도분류 모델

상황추천 정규화
기본 설정 (대부분의 경우)L2 정규화
특성 선택이 필요한 경우L1 또는 Elastic Net
신경망 학습Dropout + 조기 종료
데이터가 부족한 경우데이터 증강 + 강한 정규화
심층 네트워크배치 정규화 + Dropout
분류 보정이 필요한 경우레이블 스무딩
Transformer 모델AdamW (Weight Decay) + Dropout

2006~2009년에 진행된 Netflix Prize 대회는 정규화의 중요성을 실무적으로 입증한 대표적 사례이다.

Netflix는 사용자 영화 평점 데이터 약 1억 개를 공개하고, 자사 추천 시스템(Cinematch)보다 10% 이상 정확한 모델을 만든 팀에게 100만 달러를 수여하겠다고 발표했다. 이 대회에서 핵심 교훈은 다음과 같다:

  • 대규모 데이터에서도 과적합은 발생한다: 1억 개의 평점이라는 방대한 데이터에도 불구하고, 정규화 없이 행렬 분해(Matrix Factorization) 모델을 학습하면 과적합이 심각하게 나타났다. 사용자-영화 행렬이 매우 희소(Sparse)했기 때문이다.
  • L2 정규화의 결정적 역할: 우승팀(BellKor’s Pragmatic Chaos)을 포함한 상위 팀들은 모두 강한 L2 정규화를 적용했다. 잠재 요인(Latent Factor)의 크기를 제한함으로써, 관측되지 않은 사용자-영화 조합에 대한 예측이 안정화되었다.
  • 정규화 강도의 미세 조정: 정규화 파라미터 λ\lambda의 값을 0.001 단위로 조정하는 것만으로도 RMSE(Root Mean Square Error)가 유의미하게 변했다. 교차 검증을 통한 체계적인 λ\lambda 선택이 성능 차이의 핵심이었다.

이 사례는 “데이터가 충분히 많으면 정규화가 필요 없다”는 흔한 오해를 반증한다. 데이터의 양이 아니라 모델 복잡도 대비 데이터의 정보량이 정규화 필요성을 결정한다.


1. “정규화는 항상 도움이 된다”

섹션 제목: “1. “정규화는 항상 도움이 된다””
  • 이미 과소적합(underfitting)인 모델에 정규화를 추가하면 성능이 더 나빠진다. 정규화의 강도를 적절히 조절해야 한다.

2. “L2 정규화와 Weight Decay는 같다”

섹션 제목: “2. “L2 정규화와 Weight Decay는 같다””
  • SGD에서는 동치이지만, Adam에서는 다르다. AdamW가 올바른 weight decay 구현이다 (Loshchilov & Hutter, 2019).

3. “Dropout rate는 항상 0.5가 좋다”

섹션 제목: “3. “Dropout rate는 항상 0.5가 좋다””
  • 레이어와 모델에 따라 다르다. 은닉층에서는 0.20.5, 입력층에서는 0.10.2가 일반적이다.

4. “배치 정규화는 정규화를 위한 것이다”

섹션 제목: “4. “배치 정규화는 정규화를 위한 것이다””
  • 배치 정규화의 원래 목적은 학습 안정화이며, 정규화 효과는 부수적이다. 드롭아웃과 함께 사용하면 충돌할 수 있다.
  • 조기 종료는 유용하지만, 다른 정규화 기법과 함께 사용할 때 가장 효과적이다.


  1. L1 정규화가 희소성을 만드는 이유는?

    • L1 페널티의 기울기가 0 근처에서 불연속이며, 소프트 임계값 처리로 작은 가중치가 정확히 0이 됨. 기하학적으로 L1 ball의 꼭짓점에서 해가 만들어짐.
  2. 조기 종료가 L2 정규화와 동치인 이유는?

    • 선형 모델에서 경사 하강 반복 횟수가 유효 정규화 강도의 역수 역할. 적게 학습 = 가중치가 작게 = L2 페널티와 유사 효과.
  3. 드롭아웃이 앙상블과 유사한 이유는?

    • 각 미니배치에서 다른 서브네트워크가 학습되므로, 2n2^n개 서브네트워크의 가중 평균에 근사
  4. 데이터 증강이 정규화인 이유는?

    • 모델이 학습해야 할 불변성을 인코딩하여 가설 공간을 제약하고, 효과적 데이터 크기를 늘려 분산을 줄이기 때문

import torch
import torch.nn as nn
from torch.optim import AdamW
# L2 정규화 (PyTorch의 weight_decay)
optimizer = AdamW(model.parameters(), lr=0.001, weight_decay=0.01)
# Dropout
class MyModel(nn.Module):
def __init__(self):
super().__init__()
self.layers = nn.Sequential(
nn.Linear(100, 256),
nn.ReLU(),
nn.Dropout(0.3), # 30% 드롭아웃
nn.Linear(256, 128),
nn.ReLU(),
nn.Dropout(0.3),
nn.Linear(128, 10)
)
def forward(self, x):
return self.layers(x)
# 조기 종료 (수동 구현)
best_val_loss = float('inf')
patience_counter = 0
patience = 10
for epoch in range(max_epochs):
train_loss = train_one_epoch(model, train_loader, optimizer)
val_loss = evaluate(model, val_loader)
if val_loss < best_val_loss:
best_val_loss = val_loss
patience_counter = 0
torch.save(model.state_dict(), 'best_model.pt')
else:
patience_counter += 1
if patience_counter >= patience:
print(f"Early stopping at epoch {epoch}")
model.load_state_dict(torch.load('best_model.pt'))
break
# 레이블 스무딩
criterion = nn.CrossEntropyLoss(label_smoothing=0.1)

영어한국어
Regularization정규화
Weight Decay가중치 감쇠
Dropout드롭아웃
Early Stopping조기 종료
Data Augmentation데이터 증강
Batch Normalization배치 정규화
Label Smoothing레이블 스무딩
Sparsity희소성
Soft-thresholding소프트 임계값 처리
Co-adaptation공적응
Proximal Operator근위 연산자

  • Goodfellow, Bengio, Courville (2016) - Deep Learning (Ch. 7: Regularization)
  • Srivastava et al. (2014) - “Dropout: A Simple Way to Prevent Neural Networks from Overfitting”
  • Gal & Ghahramani (2016) - “Dropout as a Bayesian Approximation”
  • Loshchilov & Hutter (2019) - “Decoupled Weight Decay Regularization” (AdamW)
  • Zhang, Bengio, Hardt, Recht, Vinyals (2017) - “Understanding deep learning requires rethinking generalization”