
Adam 한 스텝
딥러닝 기본 옵티마이저. Momentum(72) 의 gradient 1차 모멘트 + RMSProp(73) 의 2차 모멘트 + Bias correction(71) 을 모두 결합.
업데이트 (Kingma & Ba, 2014)
mt=β1mt−1+(1−β1)gt
vt=β2vt−1+(1−β2)gt2
m^t=1−β1tmt,v^t=1−β2tvt
wt=wt−1−ηv^t+ϵm^t
기본값: β1=0.9,β2=0.999,ϵ=10−8,η=10−3.
과제
함수 adam_step(w, g, m, v, t, lr, beta1, beta2, eps) 를 완성하세요.
t: 현재 스텝 번호 (1-based).
- 반환:
(w_new, m_new, v_new) — 옵티마이저가 다음 스텝에 필요한 상태 포함.
테스트 케이스
| # | 이름 | 검증 |
|---|
| 1 | m 업데이트 | |
| 2 | v 업데이트 | |
| 3 | bias correction 적용 | t=1 일 때 m̂ ≈ g (β1=0.9) |
| 4 | w 업데이트 | 공식 일치 |
| 5 | 여러 스텝 누적 | 수렴 방향 |