The default optimizer of deep learning. Adam keeps a running mean of the gradient (like momentum) and a running mean of its square, then steps by m / √v. The magic: dividing by √v makes the step size scale-invariant — roughly ±1 per weight regardless of how big or small that weight’s gradient is. Every parameter gets its own adaptive learning rate, for free.
The demo shows the step is ~1 whether the steady gradient is 2 or 100 — scale-invariant: live demo
“Adam always beats SGD.” — it converges faster but can generalize worse; well-tuned SGD+momentum often wins the final accuracy. cited
Every weight, its own step size. optimizer
On i-13, m/√v is 1 for a steady gradient of 2 and 1 for 100 — the step is independent of scale: