33일차 머신러닝6

차지예·2025년 7월 1일

생성AI

목록 보기
27/56
post-thumbnail

📌 정규화 (L1 & L2 Regularization)

머신러닝 모델의 과적합을 방지하고 일반화 성능을 향상시키기 위해 정규화(Regularization) 기법이 사용됩니다.
이 중 L1 정규화와 L2 정규화는 대표적인 두 가지 방식입니다.

✅ 정규화(Regularization)란?

  • 정규화는 모델이 훈련 데이터에 과적합(overfitting) 되지 않도록
  • 모델의 복잡도를 줄이고, 일반화 성능을 높이는 기법입니다.

이때, 정규화는 비용 함수(Loss Function)에 가중치의 크기에 대한 패널티 항을 추가하는 방식으로 구현됩니다.


✅ L1 정규화 (Lasso Regularization)

정의:

가중치들의 절댓값 합을 패널티 항으로 추가합니다.

LossL1=Original Loss+λj=1nwj\text{Loss}_{L1} = \text{Original Loss} + \lambda \sum_{j=1}^{n} |w_j|

특징:

  • 일부 가중치가 0이 되므로 희소성(sparsity) 유도
  • 자동으로 특성 선택(feature selection) 효과
  • 모델 해석이 쉬움

대표 알고리즘: Lasso Regression


✅ L2 정규화 (Ridge Regularization)

정의:

가중치들의 제곱합을 패널티 항으로 추가합니다.

LossL2=Original Loss+λj=1nwj2\text{Loss}_{L2} = \text{Original Loss} + \lambda \sum_{j=1}^{n} w_j^2

특징:

  • 모든 가중치를 0에 가깝게 만들지만 정확히 0은 아님
  • 계산이 안정적이고 유일한 해를 갖기 쉬움
  • 다중공선성(multicollinearity) 문제 완화

대표 알고리즘: Ridge Regression


✅ L1 vs L2 정규화 비교

항목L1 정규화 (Lasso)L2 정규화 (Ridge)
효과희소성 유도, 특성 선택 가능모든 가중치 축소
가중치 0 여부일부 가중치가 정확히 0이 됨0에 가까워지지만 0은 아님
해석 가능성높음낮음
계산 안정성다소 불안정안정적
적용 예시Lasso RegressionRidge Regression

대규모 데이터셋에서의 머신러닝 최적화 기법

(Batch, Stochastic, Mini-Batch Gradient Descent)


1. Batch Gradient Descent (배치 경사 하강법)

✅ 개념

전체 훈련 데이터를 한 번에 모두 사용하여 한 번의 파라미터 업데이트를 수행합니다.

📌 수식

θ:=θηθJ(θ)\theta := \theta - \eta \cdot \nabla_\theta J(\theta)
  • θ\theta: 모델의 파라미터
  • η\eta: 학습률 (learning rate)
  • J(θ)J(\theta): 전체 데이터에 대한 손실 함수 (cost function)

장점

  • 전체 손실을 기반으로 계산하므로 수렴 경로가 매끄럽고 안정적

단점

  • 데이터가 클수록 메모리 사용량이 급증
  • 계산이 느리고 실시간 학습에 부적합

2. Stochastic Gradient Descent (SGD, 확률적 경사 하강법)

✅ 개념

1개의 훈련 샘플만으로 파라미터를 업데이트합니다.

📌 수식

θ:=θηθJ(θ;x(i),y(i))\theta := \theta - \eta \cdot \nabla_\theta J(\theta; x^{(i)}, y^{(i)})
  • x(i),y(i)x^{(i)}, y^{(i)}: i번째 학습 샘플

장점

  • 업데이트가 매우 빠름
  • 데이터가 도착하는 대로 학습하는 온라인 학습에 적합
  • 노이즈로 인해 지역 최소값을 빠져나올 가능성 있음

단점

  • 손실 함수가 매 반복마다 진동
  • 수렴이 불안정할 수 있음

3. Mini-Batch Gradient Descent (미니배치 경사 하강법)

✅ 개념

데이터셋을 일정한 크기의 배치로 나누어 각 배치마다 파라미터를 업데이트합니다.

📌 수식

θ:=θηθJ(θ;x(i:i+n),y(i:i+n))\theta := \theta - \eta \cdot \nabla_\theta J(\theta; x^{(i:i+n)}, y^{(i:i+n)})
  • 일반적인 mini-batch 크기: 16, 32, 64, 128 등

장점

  • 속도와 정확도 간 균형
  • GPU 벡터 연산에 적합해 연산 효율이 높음
  • 대부분의 딥러닝 모델 학습에 사용됨

단점

  • mini-batch 크기 설정이 성능에 직접적인 영향

📋 비교 요약표

방법사용 데이터속도수렴 안정성메모리 효율
Batch전체❌ 느림✅ 매우 안정❌ 낮음
SGD1개 샘플✅ 빠름❌ 불안정✅ 매우 좋음
Mini-Batch일부 샘플✅ 빠름✅ 비교적 안정✅ 좋음

0개의 댓글