L2 정규화

AI
gemma-4-31b
작성자
익명
작성일
2026.07.31
조회수
6
버전
v3

📋 문서 버전

이 문서는 3개의 버전이 있습니다. 현재 최신 버전을 보고 있습니다.

L2 정규화

개요

L2 정규화(2 Regularization), 또는 리지 정규화(Ridge Regularization), 중치 감소(Weight Decay)는 머신러닝 및 딥러닝 모델에서 과적합(Overfitting)을 방지하기 위해 사용되는 대표적인 정규화 기법 중 하나입니다. 이 방법은 모델의 가중치에 제약을 가하여 복잡성을 줄이고, 학습 데이터에 지나치게 최적화되는 것을 막아 일반화 성능을 향상시킵니다.

L2 정규화는 손실 함수에 가중치의 제곱합을 추가함으로써, 큰 가중치 값이 패널티를 받도록 설계되어 있습니다. 이는 모델이 모든 특성에 너무 의존하지 않고, 보다 균형 잡힌 예측을 하도록 유도합니다.


L2 정규화의 수학적 정의

L2 정규화는 다음과 같은 형태로 손실 함수에 추가됩니다:

$$ \mathcal{L}_{\text{total}} = \mathcal{L}_{\text{original}} + \lambda \sum_{i=1}^{n} w_i^2 $$

여기서: - $\mathcal{L}_{\text{original}}$: 원래의 손실 함수 (예: 평균 제곱 오차, 교차 엔트로피 등) - $w_i$: 모델의 $i$번째 가중치 - $\lambda$: 정규화 강도를 조절하는 하이퍼파라미터 ($\lambda \geq 0$) - $\sum w_i^2$: 가중치 벡터의 L2 노름의 제곱

이 식에서 $\lambda$ 값이 클수록 정규화의 영향이 커져 가중치가 작아지도록 강제하며, $\lambda = 0$일 경우 정규화가 전혀 적용되지 않습니다.


L2 정규화의 작동 원리

1. 가중치 감소 효과

L2 정규화는 손실 함수에 가중치의 제곱합을 더함으로써, 학습 과정 중 경사하강법(Gradient Descent)이 큰 가중치를 감소시키도록 유도합니다. 예를 들어, 가중치 $w$에 대한 손실의 기울기는 다음과 같이 변합니다:

$$ \frac{\partial \mathcal{L}_{\text{total}}}{\partial w} = \frac{\partial \mathcal{L}_{\text{original}}}{\partial w} + 2\lambda w $$

따라서, 가중치 업데이트 식은:

$$ w \leftarrow w - \eta \left( \frac{\partial \mathcal{L}_{\text{original}}}{\partial w} + 2\lambda w \right) $$

이 과정에서 $2\lambda w$ 항이 항상 가중치를 0에 가깝게 끌어당기므로, 가중치 감소(Weight Decay)라는 이름이 붙었습니다.

2. 과적합 방지

복잡한 모델은 학습 데이터의 노이즈까지 학습할 수 있어 테스트 데이터에서 성능이 떨어지는 과적합 현상이 발생합니다. L2 정규화는 가중치의 크기를 제한함으로써 모델의 복잡성을 감소시키고, 특정 입력 특성에 지나치게 의존하지 않도록 합니다. 결과적으로 모델의 일반화 능력(Generalization)이 향상됩니다.


L2 정규화 vs L1 정규화

특성 L2 정규화 L1 정규
패널티 형태 $\lambda \sum w_i^2$ $\lambda \sum |w_i|$
가중치 분포 모든 가중치가 작아짐 (희소하지 않음) 일부 가중치가 정확히 0이 됨
희소성 없음 있음 (특성 선택 가능)
수치적 안정성 높음 상대적으로 낮음
주로 사용되는 경우 다중공선성 문제 해결, 일반적인 과적합 방지 특성 선택이 필요한 경우
  • L1 정규화는 특정 가중치를 0으로 만들어 희소성(Sparsity)을 유도하므로, 중요한 특성만 선택하는 데 유리합니다.
  • L2 정규화는 모든 가중치를 작게 유지하지만 0으로 만들지는 않으므로, 모든 특성이 어느 정도 영향을 미치도록 합니다.

딥러닝에서의 L2 정규화

딥러닝 모델에서도 L2 정규화는 널리 사용됩니다. 특히, 완전 연결층(Fully Connected Layer)이나 컨볼루션층(Convolutional Layer)의 가중치에 적용됩니다. 프레임워크 예시:

PyTorch 예시

import torch.nn as nn
import torch.optim as optim

model = nn.Linear(10, 1)
optimizer = optim.SGD(model.parameters(), lr=0.01, weight_decay=1e-4)  # L2 정규화 적용

TensorFlow/Keras 예시

from tensorflow.keras import regularizers, layers

model = tf.keras.Sequential([
    layers.Dense(64, activation='relu', kernel_regularizer=regularizers.l2(0.01)),
    layers.Dense(10, activation='softmax')
])

weight_decay 또는 l2(λ) 인자를 통해 쉽게 적용할 수 있습니다.


장단점

장점

  • 과적합을 효과적으로 줄일 수 있음
  • 수치적으로 안정적이며, 대부분의 경우 수렴이 잘 됨
  • 다중공선성 문제 완화 (특히 선형 회귀에서 유용)

단점

  • 희소한 모델을 만들지 않음 → 특성 선택 불가
  • 모든 특성에 작은 영향을 주므로, 해석이 어려울 수 있음
  • $\lambda$ 값을 적절히 조정해야 함 (과소정규화/과도정규화 문제)

관련 개념 및 활용

  • 리지 회귀(Ridge Regression): 선형 회귀에 L2 정규화를 적용한 형태
  • 엘라스틱 넷(Elastic Net): L1과 L2 정규화를 동시에 사용하는 기법
  • 배치 정규화(Batch Normalization)와의 조합: 모델 안정성 향상

스트리밍 오류

LLM 서비스에서 응답을 받을 수 없습니다.

용어의 정의: 정규화와 규제

본 문서에서 다루는 L2 정규화(L2 Regularization)는 엄밀한 의미에서 데이터의 스케일을 조정하는 '정규화(Normalization)'가 아니라, 모델의 복잡도를 제어하여 과적합을 방지하는 '규제(Regularization)'의 관점에서 서술되었습니다. 머신러닝 커뮤니티에서는 두 용어가 혼용되어 사용되는 경우가 많으나, 본 문서의 맥락은 손실 함수에 패널티 항을 추가하여 가중치의 크기를 제한하는 규제 기법을 의미합니다.

L1 vs L2 규제의 기하학적 차이

L1과 L2 규제의 가장 큰 차이는 가중치 공간에서 형성하는 제약 영역(Constraint Region)의 모양에 있습니다.

  • L2 규제 (원형 제약): 제약 영역이 $\sum w_i^2 \le C$ 형태의 원(또는 초구) 모양입니다. 손실 함수의 등고선이 이 원과 접할 때, 접점은 축 위에 놓일 확률이 매우 낮습니다. 따라서 가중치들이 전반적으로 작아지지만, 정확히 0이 되는 경우는 드뭅니다.
  • L1 규제 (마름모형 제약): 제약 영역이 $\sum |w_i| \le C$ 형태의 마름모(또는 초정팔면체) 모양입니다. 등고선이 마름모의 '꼭짓점'(축 위)에서 접할 가능성이 매우 높기 때문에, 일부 가중치가 정확히 0으로 수렴하며 희소성(Sparsity)이 발생합니다.

[L1/L2 제약 영역 비교 개념도] - L1: $\diamond$ (Diamond shape) $\rightarrow$ 축에서 접함 $\rightarrow$ Sparse weights - L2: $\bigcirc$ (Circular shape) $\rightarrow$ 곡선에서 접함 $\rightarrow$ Small but non-zero weights

L2 규제의 통계적 관점

베이즈 추론(Bayesian Inference) 관점에서 L2 규제는 가중치 $w$에 대해 가우시안 사전 분포(Gaussian Prior)를 가정하는 최대 사후 확률 추정(MAP, Maximum A Posteriori)과 동일합니다.

가중치 $w$가 평균이 0이고 분산이 $\sigma^2$인 정규분포를 따른다고 가정하면, 사전 분포 $P(w)$는 다음과 같습니다: $$P(w) = \mathcal{N}(0, \sigma^2 I) \propto \exp\left( -\frac{\|w\|^2}{2\sigma^2} \right)$$

사후 확률 $P(w|D)$를 최대화하는 것은 로그 가능도(Log-likelihood)에 로그 사전 분포를 더하는 것과 같으며, 이는 결과적으로 다음과 같은 형태가 됩니다: $$\log P(w|D) = \log P(D|w) - \frac{1}{2\sigma^2} \|w\|^2 + \text{const}$$

여기서 $\lambda = \frac{1}{2\sigma^2}$로 치환하면, 이는 손실 함수에 L2 패널티 항을 추가한 형태와 정확히 일치함을 알 수 있습니다.

L2 규제와 모델 복잡도

L2 규제는 가중치 벡터의 L2 노름(Euclidean norm)을 제한함으로써 모델의 유효 용량(Effective Capacity)을 줄입니다.

  1. 가중치 공간의 제한: 가중치 $w$의 크기가 커질수록 모델은 입력 데이터의 작은 변화에도 민감하게 반응하여 복잡한 결정 경계를 생성합니다. L2 규제는 $\|w\|_2$를 작게 유지하여 결정 경계를 더 부드럽게(Smooth) 만듭니다.
  2. 함수 공간의 제약: 가중치가 작아지면 함수의 립시츠 상수(Lipschitz constant)가 감소하여, 입력 $x$의 미세한 노이즈가 출력 $y$에 미치는 영향이 억제됩니다. 이는 모델이 데이터의 지엽적인 패턴(노이즈)이 아닌 전역적인 패턴을 학습하도록 강제하는 효과를 줍니다.

다중공선성 해결 원리와 실무 활용

다중공선성(Multicollinearity)이란 독립 변수들 사이에 강한 상관관계가 존재하여 회귀 계수 추정치가 불안정해지는 현상입니다. L2 규제는 상관관계가 높은 변수들이 있을 때, 특정 변수에 가중치가 쏠리는 대신 가중치를 서로 비슷하게 분산시키는 효과가 있습니다.

다중공선성 해결 사례 코드 (Python)

import numpy as np
from sklearn.linear_model import LinearRegression, Ridge
from sklearn.metrics import mean_squared_error

# 1. 다중공선성이 심한 데이터 생성 (x1과 x2가 거의 동일)
np.random.seed(42)
x1 = np.random.randn(100)
x2 = x1 + np.random.normal(0, 0.01, 100) # x1과 매우 높은 상관관계
y = 3 * x1 + np.random.randn(100)
X = np.column_stack([x1, x2])

# 2. 일반 선형 회귀 (OLS) - 가중치가 매우 불안정함
ols = LinearRegression().fit(X, y)
print(f"OLS Weights: {ols.coef_}") 
# 결과 예: [15.2, -12.1] 처럼 서로 상쇄되는 큰 값이 나올 수 있음

# 3. L2 규제 적용 (Ridge) - 가중치가 균등하게 분산됨
ridge = Ridge(alpha=1.0).fit(X, y)
print(f"Ridge Weights: {ridge.coef_}") 
# 결과 예: [1.5, 1.5] 처럼 안정적인 값으로 분산됨

위 코드에서 볼 수 있듯이, L2 규제는 가중치의 제곱합을 최소화하려 하므로, $15^2 + (-12)^2$ 보다 $1.5^2 + 1.5^2$ 가 훨씬 작기 때문에 가중치를 균등하게 배분하여 수치적 안정성을 확보합니다.

참고 자료


L2 정규화는 머신러닝 모델의 핵심 기술 중 하나로, 모델의 일반화 능력을 향상시키는 데 매우 효과적입니다. 적절한 하이퍼파라미터 튜닝과 함께 사용하면, 다양한 문제 영역에서 견고한 성능을 보장할 수 있습니다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?