L1 정규화
📋 문서 버전
이 문서는 2개의 버전이 있습니다. 현재 최신 버전을 보고 있습니다.
L1 정규화
개요/소개
L1 정규화(L1 Regularization)는 머신러닝 모델의 과적합(overfitting)을 방지하기 위해 사용되는 중요한 기법 중 하나입니다. 이 방법은 모델의 파라미터(계수)에 절대값을 기반으로 페널티를 추가하여, 불필요한 특성(feature)을 제거하고 모델의 단순성을 유지합니다. L1 정규화는 특히 스파시(Sparse) 모델을 생성하는 데 효과적이며, 고차원 데이터에서 유용하게 활용됩니다. 본 문서에서는 L1 정규화의 개념, 수학적 표현, L2 정규화와의 차이점, 응용 분야 및 장단점을 상세히 설명합니다.
1. L1 정규화의 정의 및 수학적 표현
1.1 L1 정규화란?
L1 정규화는 모델의 파라미터에 절대값 합을 추가하는 방식으로, 과적합을 억제합니다. 이 기법은 특성 선택(Feature Selection)에 강점을 가지며, 일부 계수를 0으로 만들 수 있어 모델의 해석성을 높입니다. 예를 들어, 주어진 데이터에서 중요한 특성만 남기고 불필요한 특성을 제거하는 데 효과적입니다.
1.2 수학적 표현
L1 정규화는 일반적인 비용 함수에 다음과 같은 페널티 항을 추가합니다:
$$ \text{Cost} = \text{Original Cost} + \lambda \sum_{i=1}^{n} |w_i| $$
- $ w_i $: 모델의 파라미터(계수)
- $ \lambda $: 정규화 강도(hyperparameter), 값이 클수록 페널티가 커집니다.
이 방식은 계수 중 일부를 정확히 0으로 만들 수 있어, 모델의 복잡성을 줄이고 해석성을 개선합니다.
2. L1 정규화와 L2 정규화의 비교
2.1 주요 차이점
| 특징 | L1 정규화 | L2 정규화 |
|---|---|---|
| 페널티 형태 | 절대값 합 $ \sum |w_i| $ | 제곱합 $ \sum w_i^2 $ |
| 계수 분포 | 일부 계수를 0으로 만듦 (스파시) | 모든 계수를 작게 유지 |
| 특성 선택 | 가능 | 불가능 |
| 안정성 | 고차원 데이터에서 불안정할 수 있음 | 일반적으로 더 안정적 |
2.2 사용 사례
- L1 정규화: 특성 선택이 중요한 경우 (예: 유전자 데이터, 텍스트 분류)
- L2 정규화: 모든 계수를 작게 유지하고 모델의 안정성을 높이는 경우
3. 응용 분야 및 예시
3.1 특성 선택
L1 정규화는 고차원 데이터에서 중요한 특성만 남기고 불필요한 특성을 제거하는 데 유리합니다. 예를 들어, 텍스트 분류 모델에서는 단어의 빈도가 낮은 특성을 자동으로 제거할 수 있습니다.
3.2 고차원 데이터 처리
- 예시: 유전자 데이터에서 수만 개의 유전자가 존재하는 경우, L1 정규화를 통해 실제 영향을 미치는 유전자만 선택합니다.
- 장점: 모델의 계산 비용을 줄이고 해석성을 높입니다.
4. 장단점
4.1 장점
- 스파시 모델 생성: 불필요한 특성을 자동으로 제거하여 모델이 간결해집니다.
- 해석성 향상: 선택된 특성만을 기반으로 예측 결과를 해석하기 쉬워집니다.
- 고차원 데이터 적합: 수많은 특성이 있는 경우 유용합니다.
4.2 단점
- 불안정성: 고차원 데이터에서 일부 계수가 0이 되는 경향이 있어, 모델의 예측 안정성이 떨어질 수 있습니다.
- 비선형 관계 처리 어려움: 상호작용 효과나 비선형 관계를 잘 반영하지 못할 수 있습니다.
결론
L1 정규화는 과적합 방지와 특성 선택에 강점을 가진 중요한 기법입니다. 특히 고차원 데이터에서 모델의 해석성을 높이고 계산 효율을 개선하는 데 유용합니다. 그러나 L2 정규화와 비교해 안정성이 약할 수 있으므로, 데이터 특성과 문제 상황에 따라 적절한 방법을 선택해야 합니다.
L1 정규화의 기하학적 해석
L1 정규화가 계수를 0으로 만드는 이유는 비용 함수의 등고선과 제약 조건의 형태가 만나는 지점의 기하학적 특성 때문입니다.
- 제약 조건의 형태: L1 정규화의 제약 조건인 $\sum |w_i| \le C$는 좌표평면에서 마름모(Diamond) 형태의 영역을 형성합니다.
- 최적점의 발생: 비용 함수의 등고선(Ellipse)이 확장되다가 이 마름모 영역과 처음 접하는 지점에서 최적의 계수가 결정됩니다. 이때 마름모의 모서리(축 위)에서 접점이 발생할 확률이 매우 높으며, 축 위에서 접한다는 것은 특정 계수 값이 정확히 0이 됨을 의미합니다.
- 시각적 도식:
(그림: L1의 마름모 형태 제약 조건이 축 위에서 비용 함수와 접하며 스파시티를 유도하는 모습)
Lasso 회귀와의 관계
L1 정규화를 선형 회귀 모델에 적용한 알고리즘을 Lasso(Least Absolute Shrinkage and Selection Operator) 회귀라고 합니다.
- 정의: 최소제곱법(OLS)의 비용 함수에 L1 페널티 항을 추가하여, 계수의 절대값 합을 최소화하는 회귀 분석 기법입니다.
- 통계적 배경: Lasso는 단순한 과적합 방지를 넘어, 통계적으로 변수 선택(Variable Selection) 기능을 수행합니다. 이는 수많은 독립 변수 중 종속 변수에 유의미한 영향을 주는 변수만을 남기고 나머지를 제거함으로써 모델의 복잡도를 획기적으로 낮춥니다.
Lasso 회귀의 파이썬 구현
<a href="/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4/scikit-learn" class="wiki-link">scikit-learn</a> 라이브러리를 사용하여 Lasso 회귀를 구현하는 예시 코드입니다.
from sklearn.linear_model import Lasso
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import numpy as np
# 데이터 생성
X = np.random.randn(100, 10) # 10개의 특성
y = 3 * X[:, 0] + 2 * X[:, 1] + np.random.randn(100) # 0, 1번 특성만 유의미함
# 데이터 분할 및 스케일링 (정규화 전 스케일링 필수)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# Lasso 모델 생성 및 학습 (alpha가 lambda에 해당)
lasso = Lasso(alpha=0.1)
lasso.fit(X_train_scaled, y_train)
# 계수 확인 (많은 계수가 0으로 수렴함을 확인 가능)
print("Lasso Coefficients:\n", lasso.coef_)
정규화 강도와 모델 복잡도
하이퍼파라미터 $\lambda$(또는 $\alpha$)의 값은 모델의 일반화 성능에 결정적인 영향을 미칩니다.
- $\lambda$ 값에 따른 변화:
- $\lambda \to 0$: 정규화 효과가 사라져 일반적인 최소제곱법과 같아지며, 과적합(Overfitting) 위험이 증가합니다.
- $\lambda$ 증가: 더 많은 계수가 0이 되며 모델이 단순해집니다. 하지만 너무 크면 중요한 특성까지 제거되어 과소적합(Underfitting)이 발생합니다.
- 최적의 $\lambda$ 탐색: 데이터셋을 여러 부분으로 나누어 학습과 검증을 반복하는 교차 검증(Cross-validation)을 통해, 검증 오차가 최소가 되는 최적의 $\lambda$ 값을 결정합니다.
L1 정규화의 한계: 그룹 선택 문제
L1 정규화는 강력한 특성 선택 기능을 제공하지만, 특성 간의 상관관계가 높을 때 다음과 같은 한계가 발생합니다.
- 그룹 선택 문제(Group Selection Problem): 서로 강한 상관관계를 가진 여러 특성(Collinear features)들이 존재할 때, L1 정규화는 이들 중 임의로 하나만 선택하고 나머지는 모두 0으로 만드는 경향이 있습니다.
- 영향: 이는 통계적으로 유의미한 다른 변수들이 누락될 수 있음을 의미하며, 모델의 해석 시 특정 변수가 과대평가되거나 중요한 변수가 무시되는 결과를 초래할 수 있습니다. 이를 보완하기 위해 L1과 L2를 결합한 Elastic Net 정규화가 대안으로 사용됩니다.
참고 자료
- L1 Regularization on Wikipedia
- L2 Regularization vs. L1 Regularization
- 관련 문서: L2 정규화, Elastic Net, 스팸 필터링 기법
이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.