두 상태를 따로 갱신하기
기울기를 gₜ라 하면 mₜ=β₁mₜ₋₁+(1-β₁)gₜ, vₜ=β₂vₜ₋₁+(1-β₂)gₜ²로 갱신한다. 제곱과 나눗셈은 성분별 연산이다. v는 중심화된 분산 그 자체가 아니라 기울기 제곱의 이동평균이다.
초기화 편향을 보정하기
m₀=v₀=0으로 시작한 기본형에서는 m̂ₜ=mₜ/(1-β₁ᵗ), v̂ₜ=vₜ/(1-β₂ᵗ)를 사용한다. 대표 갱신식은 wₜ=wₜ₋₁-ηm̂ₜ/(√v̂ₜ+ε)다. η는 학습률이고 ε는 수치 안정화를 위한 작은 양수다.
첫 단계 예제
설명을 위해 β₁=β₂=1/2, 첫 기울기 4로 두자. m₁=2, v₁=8이고 보정하면 m̂₁=4, v̂₁=16이다. ε의 영향을 생략하고 학습률을 0.1로 두면 이동은 -0.1이다. 보정 전 상태를 그대로 나누면 약 -0.07071이라 다른 결과다.
이름만으로 성능을 판단하지 않기
모멘트 추정에 따른 조절이 있어도 기본 학습률과 감쇠 계수는 여전히 설정해야 한다. ε의 배치, 가중치 감쇠, 변형 알고리즘의 사용 여부도 결과에 영향을 준다. Adam을 썼다는 사실만으로 모든 목적함수의 최솟값이나 최상의 일반화 성능을 보장하지 않는다.
관련 문서
RMSprop / 모멘텀 (최적화) / 경사 하강법 / 조기 종료 (기계 학습) / 인공 신경망 / 분산 / 활성화 함수