콘텐츠로 이동

정규화 이론 (Regularization Theory)

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

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


  • 정규화(Regularization): 모델이 훈련 데이터를 너무 완벽하게 외우지 못하도록 제약을 거는 모든 기법.
  • L2 (Ridge): 가중치 제곱합에 벌점. 모든 가중치를 같은 비율로 작게 만들지만 0으로 만들지는 않는다.
  • L1 (Lasso): 가중치 절댓값 합에 벌점. 일부 가중치를 정확히 0으로 만들어 특성을 자동 선택한다.
  • 드롭아웃(Dropout): 학습 중 뉴런 일부를 무작위로 꺼서, 특정 뉴런에만 의존하지 못하게 하는 기법.
  • 조기 종료(Early Stopping): 검증 성능이 나빠지기 시작하면 학습을 멈추는 것. 가장 간단하면서 효과적인 정규화다.

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

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

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

비유: 정규화는 학생에게 요약 노트만 들고 시험 보게 하는 것이다. 교과서를 통째로 들고 가면 아는 문제는 다 맞히지만, 정작 이해한 것은 없어서 조금만 비틀린 문제가 나오면 무너진다. 한 장짜리 요약만 허용하면 학생은 정말 중요한 것만 추려낼 수밖에 없고, 그 과정에서 원리를 익힌다. L1은 항목을 아예 지워버리는 요약이고, L2는 모든 항목을 조금씩 줄여 쓰는 요약이다.


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

  • 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 적용 후, 각 가중치가 모두 같은 비율(1/(1+λ)0.671/(1+\lambda) \approx 0.67)로 축소된다:

가중치정규화 전L2 적용 후변화
w1w_15.23.47같은 비율로 축소 — 절대 감소폭이 큼 (1.73)
w2w_2-3.8-2.53같은 비율로 축소 (1.27)
w3w_30.10.067같은 비율로 축소 — 절대 감소폭은 작음 (0.03)

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

  • 모든 가중치를 동일한 비율로 축소 (절대 감소폭은 큰 가중치일수록 큼)
  • 작은 가중치를 상대적으로 더 강하게 깎아 0으로 만드는 것은 L1의 성질이다 (soft-thresholding: 절대량 λ\lambda만큼 일정하게 깎음)
  • 어떤 가중치도 정확히 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) 감소. 다만 Santurkar et al.(2018) 이후로는 BN이 ICS를 실제로 줄이지는 않으며, 효과는 손실 곡면을 평활하게 만들어 최적화를 돕는 것에서 온다는 설명이 더 지지받는다
  • 암묵적 정규화 효과: 미니배치에 의한 노이즈가 정규화 역할

하드 레이블 (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 선택이 성능 차이의 핵심이었다.

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


# 필요 패키지: pip install torch
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)

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과 L2 중 희소 해(0이 많은 해)를 만드는 것은?

정답 보기

L1이다. 제약 영역이 마름모라 모서리(축 위, 즉 일부 좌표가 0)에서 최적해가 걸리기 쉽다. L2의 원형 제약에서는 모서리가 없어 0이 잘 안 나온다.

2. 드롭아웃이 정규화 역할을 하는 이유는?

정답 보기

매 스텝 다른 뉴런을 끄므로 특정 뉴런에 의존하지 못하게 만들고, 사실상 수많은 부분 신경망의 앙상블을 학습하는 효과를 낸다.

3. 조기 종료(early stopping)도 정규화인가?

정답 보기

그렇다. 학습을 일찍 멈추면 가중치가 초기값에서 멀리 가지 못하므로 암묵적으로 가중치 크기를 제한하는 효과가 있다. 선형 모델에서는 L2 정규화와 밀접한 관계가 증명되어 있다.



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

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

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

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

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

영어한국어
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”