두 상태의 갱신
기울기를 g라 하면 mₜ=β₁mₜ₋₁+(1-β₁)gₜ, uₜ=max(β₂uₜ₋₁,|gₜ|)로 계산한다. 연산은 성분별이다. 한 가지 구현 표기의 이동량은 -ηmₜ/((1-β₁ᵗ)(uₜ+ε))다. 초기 상태는 m₀=u₀=0으로 둔다.
두 단계 계산
β₁=β₂=1/2, η=0.1에서 기울기가 차례로 4와 1이라고 하자. ε의 영향을 생략하면 첫 단계 m₁=2, u₁=4이고 이동은 -0.1이다. 두 번째는 m₂=1.5, u₂=2다. 일차 편향 보정 뒤 m은 2가 되어 이동량이 다시 -0.1이다.
계속 커지는 최댓값은 아니다
앞 예의 u는 4에서 2로 줄었다. 과거 상태를 먼저 β₂배 하기 때문에 전체 과거 기울기의 절댓값 중 최댓값을 영구히 보관하는 방식과 다르다. 또한 모든 매개변수를 하나의 최대값으로 나누는 전역 규칙이 아니라 각 성분에 자기 상태가 있다.
현재 기울기와 이동 방향
같은 예에서 세 번째 기울기가 0이면 m₃=0.75, u₃=1이다. 보정된 m은 6/7이므로 이동은 약 -0.08571이다. 현재 기울기가 0이어도 남아 있는 일차 이동평균 때문에 움직일 수 있다. 이름의 max가 손실의 최댓값을 직접 최소화한다는 뜻은 아니다.
관련 문서
Adam (최적화) / AdamW / Adagrad / Adadelta / RMSprop / 모멘텀 (최적화) / 경사 하강법