📌 정규화 (L1 & L2 Regularization)
머신러닝 모델의 과적합을 방지하고 일반화 성능을 향상시키기 위해 정규화(Regularization) 기법이 사용됩니다.
이 중 L1 정규화와 L2 정규화는 대표적인 두 가지 방식입니다.
✅ 정규화(Regularization)란?
- 정규화는 모델이 훈련 데이터에 과적합(overfitting) 되지 않도록
- 모델의 복잡도를 줄이고, 일반화 성능을 높이는 기법입니다.
이때, 정규화는 비용 함수(Loss Function)에 가중치의 크기에 대한 패널티 항을 추가하는 방식으로 구현됩니다.
✅ L1 정규화 (Lasso Regularization)
정의:
가중치들의 절댓값 합을 패널티 항으로 추가합니다.
LossL1=Original Loss+λj=1∑n∣wj∣
특징:
- 일부 가중치가 0이 되므로 희소성(sparsity) 유도
- 자동으로 특성 선택(feature selection) 효과
- 모델 해석이 쉬움
대표 알고리즘: Lasso Regression
✅ L2 정규화 (Ridge Regularization)
정의:
가중치들의 제곱합을 패널티 항으로 추가합니다.
LossL2=Original Loss+λj=1∑nwj2
특징:
- 모든 가중치를 0에 가깝게 만들지만 정확히 0은 아님
- 계산이 안정적이고 유일한 해를 갖기 쉬움
- 다중공선성(multicollinearity) 문제 완화
대표 알고리즘: Ridge Regression
✅ L1 vs L2 정규화 비교
| 항목 | L1 정규화 (Lasso) | L2 정규화 (Ridge) |
|---|
| 효과 | 희소성 유도, 특성 선택 가능 | 모든 가중치 축소 |
| 가중치 0 여부 | 일부 가중치가 정확히 0이 됨 | 0에 가까워지지만 0은 아님 |
| 해석 가능성 | 높음 | 낮음 |
| 계산 안정성 | 다소 불안정 | 안정적 |
| 적용 예시 | Lasso Regression | Ridge Regression |
대규모 데이터셋에서의 머신러닝 최적화 기법
(Batch, Stochastic, Mini-Batch Gradient Descent)
1. Batch Gradient Descent (배치 경사 하강법)
✅ 개념
전체 훈련 데이터를 한 번에 모두 사용하여 한 번의 파라미터 업데이트를 수행합니다.
📌 수식
θ:=θ−η⋅∇θJ(θ)
- θ: 모델의 파라미터
- η: 학습률 (learning rate)
- J(θ): 전체 데이터에 대한 손실 함수 (cost function)
장점
- 전체 손실을 기반으로 계산하므로 수렴 경로가 매끄럽고 안정적
단점
- 데이터가 클수록 메모리 사용량이 급증
- 계산이 느리고 실시간 학습에 부적합
2. Stochastic Gradient Descent (SGD, 확률적 경사 하강법)
✅ 개념
1개의 훈련 샘플만으로 파라미터를 업데이트합니다.
📌 수식
θ:=θ−η⋅∇θJ(θ;x(i),y(i))
- x(i),y(i): i번째 학습 샘플
장점
- 업데이트가 매우 빠름
- 데이터가 도착하는 대로 학습하는 온라인 학습에 적합
- 노이즈로 인해 지역 최소값을 빠져나올 가능성 있음
단점
- 손실 함수가 매 반복마다 진동
- 수렴이 불안정할 수 있음
3. Mini-Batch Gradient Descent (미니배치 경사 하강법)
✅ 개념
데이터셋을 일정한 크기의 배치로 나누어 각 배치마다 파라미터를 업데이트합니다.
📌 수식
θ:=θ−η⋅∇θJ(θ;x(i:i+n),y(i:i+n))
- 일반적인 mini-batch 크기: 16, 32, 64, 128 등
장점
- 속도와 정확도 간 균형
- GPU 벡터 연산에 적합해 연산 효율이 높음
- 대부분의 딥러닝 모델 학습에 사용됨
단점
- mini-batch 크기 설정이 성능에 직접적인 영향
📋 비교 요약표
| 방법 | 사용 데이터 | 속도 | 수렴 안정성 | 메모리 효율 |
|---|
| Batch | 전체 | ❌ 느림 | ✅ 매우 안정 | ❌ 낮음 |
| SGD | 1개 샘플 | ✅ 빠름 | ❌ 불안정 | ✅ 매우 좋음 |
| Mini-Batch | 일부 샘플 | ✅ 빠름 | ✅ 비교적 안정 | ✅ 좋음 |