Foundations · ICLR 2015

Adam: A Method for Stochastic Optimization

모멘텀 + RMSProp을 합친 적응형 옵티마이저. LLM 학습의 사실상 표준.

Diederik P. Kingma, Jimmy Ba · University of Amsterdam / University of Toronto

optimizeradamtrainingadaptive

1. 핵심 요약

구현이 단순하고 메모리도 비교적 가볍습니다. 지금은 LLM에서 AdamW(가중치 감쇠를 분리)가 더 흔하지만, 뼈대는 그대로 Adam입니다.

2. 배경: 옵티마이저의 진화

옵티마이저 계보

SGD → Momentum → AdaGrad → RMSProp → Adam. 단계를 눌러 보세요.

Adam

Momentum의 m + RMSProp의 v + 편향 보정. 적응형 + 관성.

SGD → Momentum → AdaGrad → RMSProp → Adam. 각 단계가 무엇을 더하는지 클릭하세요.

확률적 경사하강법 (SGD)

모든 파라미터에 동일한 학습률 α → 스케일이 다른 좌표에는 비효율적.

θt+1=θtαgt\theta_{t+1} = \theta_t - \alpha \, g_t
SGD — 전역 학습률
SGD 업데이트수식 상세
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명

모멘텀 (Momentum)

이전 기울기 방향을 관성으로 기억 → 진동↓·수렴↑. 단, 여전히 전역 α.

vt=βvt1+gt,θt+1=θtαvtv_t = \beta v_{t-1} + g_t,\quad \theta_{t+1} = \theta_t - \alpha\, v_t
모멘텀 — 속도 v에 기울기 누적
모멘텀 업데이트수식 상세
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명

AdaGrad

자주 업데이트된 파라미터는 학습률 감소. 단점: G가 단조 증가 → 학습이 너무 일찍 멈출 수 있음.

θt+1=θtαGt+ϵgt\theta_{t+1} = \theta_t - \frac{\alpha}{\sqrt{G_t + \epsilon}}\, g_t
AdaGrad — 누적 제곱합 G로 적응
AdaGrad 업데이트수식 상세
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명

RMSProp

AdaGrad의 단조 감소 문제를 지수 이동 평균으로 해결.

vt=β2vt1+(1β2)gt2,θt+1=θtαvt+ϵgtv_t = \beta_2 v_{t-1} + (1-\beta_2) g_t^2,\quad \theta_{t+1} = \theta_t - \frac{\alpha}{\sqrt{v_t + \epsilon}}\, g_t
RMSProp — EMA 기반 적응형 학습률
RMSProp 업데이트수식 상세
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명

3. Adam 알고리즘

Adam은 모멘텀(1차)RMSProp(2차)을 통합하고, 초반 편향을 보정합니다.

Adam 한 스텝 (시뮬)

데모: 스칼라 θ, 고정 기울기 g로 t스텝까지 굴려 봅니다.

g1.200
m / v0.120 / 0.0014
m̂ / v̂1.200 / 1.4400
Δθ / θ-0.001 / -0.0010
1. 기울기 g

미니배치로 ∇L을 계산합니다.

α=0.001, β₁=0.9, β₂=0.999
한 스텝: g → m,v → 편향 보정 → θ 업데이트를 단계로 따라가세요.
mt=β1mt1+(1β1)gt,vt=β2vt1+(1β2)gt2m_t = \beta_1 m_{t-1} + (1-\beta_1) g_t,\quad v_t = \beta_2 v_{t-1} + (1-\beta_2) g_t^2
1차 모멘트 m (평균 방향) · 2차 모멘트 v (변동 크기)
Adam 1·2차 모멘트수식 상세
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명
m^t=mt1β1t,v^t=vt1β2t\hat{m}_t = \frac{m_t}{1-\beta_1^t},\quad \hat{v}_t = \frac{v_t}{1-\beta_2^t}
편향 보정 — 초반 m,v가 0으로 치우친 것을 보정
Adam 편향 보정수식 상세
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명
θt=θt1αm^tv^t+ϵ\theta_t = \theta_{t-1} - \alpha \frac{\hat{m}_t}{\sqrt{\hat{v}_t}+\epsilon}
파라미터 업데이트 (권장 α=0.001, β₁=0.9, β₂=0.999, ε=1e-8)
Adam 파라미터 업데이트수식 상세
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명
m0, v0 = 0, 0
for t = 1, 2, ...:
  g  = grad(θ)
  m  = β1*m + (1-β1)*g
  v  = β2*v + (1-β2)*g²
  m̂ = m / (1 - β1^t)
  v̂ = v / (1 - β2^t)
  θ  = θ - α * m̂ / (√v̂ + ε)

4. 핵심 개념

편향 보정: m vs m̂

초반 m은 작고, m̂=m/(1−β₁ᵗ)로 끌어올립니다. t가 커지면 둘은 거의 같아집니다.

t →
m (raw)m̂ (corrected)
t=20 · 1−β₁ᵗ=0.878

m=0.878 · m̂=1.000 · target g=1.00

초반 스텝에서 m과 m̂이 얼마나 다른지 보세요.

편향 보정이 필요한 이유

m₀=v₀=0으로 시작하므로 초반 추정은 0 쪽으로 치우칩니다.

예: β₁=0.9, t=1 → m₁=0.1 g₁. 보정하면 m̂₁=g₁.

적응형 학습률의 의미

v̂가 크면(기울기 변동↑) 보폭↓ → 안정. v̂가 작으면 보폭↑ → 빠른 학습.

ηt,i=αm^t,iv^t,i+ϵ\eta_{t,i} = \alpha \cdot \frac{\hat{m}_{t,i}}{\sqrt{\hat{v}_{t,i}} + \epsilon}
파라미터 i의 유효 학습률
Adam 유효 학습률수식 상세
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명

유효 학습률 (파라미터별)

같은 α라도 |g|가 큰 좌표는 √v̂가 커져 보폭이 줄어듭니다.

w₁|g|=0.2 · √v̂=0.200
1.00e-3
w₂|g|=1.0 · √v̂=1.000
1.00e-3
w₃|g|=2.5 · √v̂=2.500
1.00e-3
유효 스텝 ≈ α · |m̂| / (√v̂+ε)

변동이 큰 파라미터는 천천히, 잔잔한 파라미터는 상대적으로 빠르게 움직입니다.

같은 α라도 |g|가 다른 좌표는 유효 보폭이 달라집니다.

5. 변형들

AdamW (Decoupled Weight Decay)

L2를 기울기에 더하는 대신, 파라미터에 직접 감쇠를 적용합니다. BERT·GPT 등 LLM 학습의 표준이며 Adam보다 일반화가 좋은 경우가 많습니다.

θt=θt1α(m^tv^t+ϵ+λθt1)\theta_t = \theta_{t-1} - \alpha \Big(\frac{\hat{m}_t}{\sqrt{\hat{v}_t}+\epsilon} + \lambda \theta_{t-1}\Big)
AdamW — 적응형 스텝과 가중치 감쇠를 분리
AdamW (Decoupled Weight Decay)수식 상세
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명
  • AdaFactor: 2차 모멘트를 저랭크 근사 → 메모리↓ (T5)
  • Adan: Nesterov 모멘텀 통합 → 수렴 속도↑
  • Lion: sign 기반, 메모리 약 절반 (Google 자동 탐색)
OptimizerAdaptive LRMomentumMemory
SGDnooptionalnone
AdaGradmonotonic ↓no×1
RMSPropEMAno×1
AdamEMAyes×2 (m,v)
AdamWEMAyes×2 (m,v)
옵티마이저 한눈에 비교

6. 실무 지침

스케줄과 같이 쓰기

  • Warmup: 초반 학습률을 낮게 시작해 점진 증가
  • Cosine Annealing: 코사인으로 점진 감소
  • Linear Decay: 선형 감소

대형 모델

  • 파라미터마다 m,v 저장 → 옵티마이저 상태 ≈ 파라미터의 2배 → 전체 ~3배 메모리
  • 예: 175B GPT-3급 — 파라미터 수백 GB + 옵티마이저 상태 약 2배 → ZeRO 등 샤딩 필요

7. 의의

  • SGD+Momentum을 대체한 사실상 표준
  • 기본 하이퍼파라미터로도 잘 작동 → 연구 생산성↑
  • 발표 후 10년간 인용 20만 회 이상 — AI 논문 최다 인용군에 속하는 최적화 고전