← 문제 목록/Adam 한 스텝
문제 해설

Adam 한 스텝

최적화 · easy

preview

Adam 한 스텝

딥러닝 기본 옵티마이저. Momentum(72) 의 gradient 1차 모멘트 + RMSProp(73) 의 2차 모멘트 + Bias correction(71) 을 모두 결합.

업데이트 (Kingma & Ba, 2014)

mt=β1mt1+(1β1)gtm_t = \beta_1 m_{t-1} + (1-\beta_1) g_t vt=β2vt1+(1β2)gt2v_t = \beta_2 v_{t-1} + (1-\beta_2) g_t^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} wt=wt1ηm^tv^t+ϵw_t = w_{t-1} - \eta \, \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}

기본값: β1=0.9,β2=0.999,ϵ=108,η=103\beta_1 = 0.9, \beta_2 = 0.999, \epsilon = 10^{-8}, \eta = 10^{-3}.

과제

함수 adam_step(w, g, m, v, t, lr, beta1, beta2, eps) 를 완성하세요.

  • t: 현재 스텝 번호 (1-based).
  • 반환: (w_new, m_new, v_new) — 옵티마이저가 다음 스텝에 필요한 상태 포함.

테스트 케이스

#이름검증
1m 업데이트
2v 업데이트
3bias correction 적용t=1 일 때 m̂ ≈ g (β1=0.9)
4w 업데이트공식 일치
5여러 스텝 누적수렴 방향
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.