확률적 경사 하강법(SGD)와 Momentum, Adam 최적화 알고리즘 이해하기

Bean·2025년 5월 15일
0

인공지능

목록 보기
28/123

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

기본 아이디어:
모든 데이터를 한 번에 사용하지 않고, **무작위로 뽑은 데이터 일부(미니배치)**를 사용해 가중치를 업데이트함.

θ=θηθJ(θ)\theta = \theta - \eta \cdot \nabla_\theta J(\theta)
  • θ: 파라미터 (가중치)
  • η: 학습률 (learning rate)
  • ∇J(θ): 손실 함수의 파라미터에 대한 그래디언트

장점: 계산 속도 빠름
단점: 진동이 심하고 최솟값에 도달하기 어려울 수 있음


2. Momentum (모멘텀)

기본 아이디어:
이전 단계의 기울기 방향을 일정 부분 기억해서, 더 빠르고 안정적으로 수렴하게 만듦.
일종의 “관성”을 부여하는 개념입니다.

vt=γvt1+ηθJ(θ)v_t = \gamma \cdot v_{t-1} + \eta \cdot \nabla_\theta J(\theta)
θ=θvt\theta = \theta - v_t
  • γ: 모멘텀 계수 (일반적으로 0.9 정도)
  • v: 속도(velocity), 기울기의 이동 평균

이점:

  • 경사면이 가파르거나 좁은 지역에서 진동을 줄여줌
  • 최적점에 더 빠르게 접근 가능

3. Adam (Adaptive Moment Estimation)

기본 아이디어:
SGD + Momentum + 학습률 자동 조정.
모멘텀처럼 기울기의 이동 평균을 기억하면서도, 각 파라미터마다 학습률을 자동 조절함.

Adam은 다음 두 가지를 계산합니다:

  • 1차 모멘트(기울기 평균):
mt=β1mt1+(1β1)θJ(θ)m_t = \beta_1 \cdot m_{t-1} + (1 - \beta_1) \cdot \nabla_\theta J(\theta)
  • 2차 모멘트(기울기 제곱의 평균):
vt=β2vt1+(1β2)(θJ(θ))2v_t = \beta_2 \cdot v_{t-1} + (1 - \beta_2) \cdot (\nabla_\theta J(\theta))^2
  • 이후 바이어스 보정, 학습률 반영:
θ=θηm^tv^t+ϵ\theta = \theta - \eta \cdot \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}
  • β₁, β₂: 모멘텀 계수 (보통 0.9, 0.999)
  • ε: 작은 수 (0으로 나누는 걸 방지)

장점:

  • 하이퍼파라미터 튜닝에 덜 민감
  • 빠르게 수렴
  • 널리 사용됨 (딥러닝에서 사실상 기본 설정)

Momentum은 왜 중요할까?

  • 단순한 SGD는 **"지그재그"**로 움직이다가 학습이 느려질 수 있어요.
  • Momentum을 주면 부드럽게 더 빠르게 최솟값에 접근합니다.
  • Adam은 Momentum의 아이디어를 포함하므로, 대부분의 경우 Adam만 써도 충분합니다.

4. 요약 비교

알고리즘특징장점단점
SGD단순한 경사하강계산 단순, 빠름진동 심함
Momentum관성 개념 추가진동 억제, 빠른 수렴하이퍼파라미터 튜닝 필요
AdamMomentum + 학습률 조정자동화, 빠른 수렴복잡함, 일부 상황에서 일반화 성능 떨어질 수 있음
profile
AI developer

0개의 댓글