Plain gradient steps treat every iteration on its own, so they zig-zag across narrow valleys and crawl along flat ones. Momentum keeps a velocity, a running sum of past gradients: v←βv+g, w←w−ηv. Gradients that point the same way keep adding up, while gradients that flip sign cancel out. With a constant gradient the velocity grows toward 1/(1−β) times the gradient, so β=0.9 ends up taking steps ten times larger than plain descent.
v←βv+g,w←w−ηv,v∞=1−βg(1)
RMSProp fixes a different problem, parameters on different scales. It tracks a running average s of the squared gradient of each coordinate and divides the step by s, so a coordinate with a large, noisy gradient takes small steps and a coordinate with a small gradient takes bigger ones. Adam combines both ideas: it averages the gradient (m, the momentum part) and the squared gradient (v, the RMSProp part). Both averages start at zero, which makes them too small in the first steps, so Adam divides by 1−βt to correct that bias. The usual defaults are β1=0.9, β2=0.999 and η=10−3.
Three updates by handMomentum with β=0.9, η=0.1 and a constant gradient g=1: v1=1, v2=1.9, v3=2.71, so the third step has length 0.271 against 0.1 for plain descent. RMSProp with ρ=0.9 and g=2: s1=0.1⋅4=0.4 and g/s1=3.16, a step amplified by about 3.16. Adam at t=1 with g=2: m=0.2, v=0.004, so m^=2, v^=4 and the step is η⋅2/2=η, whatever the size of g.
Momentum: smooths zig-zag and speeds up along consistent directions.
RMSProp: divides each coordinate by the running root-mean-square of its gradient.
Adam: both, plus a bias correction because the averages start at zero.
Adam is a default, not a guaranteeBecause Adam's step is about η per coordinate whatever the gradient size, η becomes the main tuning knob: too large and the loss bounces, too small and training crawls. Decay η over time on noisy problems, and compare against a well-tuned SGD with momentum before trusting Adam's result, since the two can settle in different minima.
Lab · what's graded
Momentum velocity15 pts
The long-run amplification15 pts
RMSProp average10 pts
The RMSProp step scale15 pts
Adam's first step15 pts
Match method and idea15 pts
Why per-coordinate scaling helps15 pts
0/ 7 answered
1Numeric answer15 ptsNot answered
With β=0.9 and a constant gradient g=1, starting from v0=0, what is the velocity v3 after three updates v←βv+g?
v3=accepted: ± 0.01
2Numeric answer15 ptsNot answered
With a constant gradient, the velocity tends to g/(1−β). By what factor does β=0.9 end up multiplying the step compared with plain descent?
amp=accepted: ± 0.05
3Numeric answer10 ptsNot answered
RMSProp with ρ=0.9, starting from s0=0, sees the gradient g=2. What is s1=ρs0+(1−ρ)g2?
s1=accepted: ± 0.005
4Numeric answer15 ptsNot answered
The RMSProp step is ηg/s1. For g=2 and s1=0.4, what is g/s1? Give it to two decimals.
scale=accepted: ± 0.02
5Numeric answer15 ptsNot answered
Adam at t=1 with β1=0.9, β2=0.999 and g=2 has m=0.2 and v=0.004. After the bias correction its step is ηm^/v^. By what multiple of η does it move?
adam1=accepted: ± 0.01
6Match15 ptsNot answered
Match each method with its main idea.
Pick the partner of each item on the left.
Momentum
RMSProp
Adam
Bias correction
7Explain in words15 ptsNot answered
In one or two sentences, say why dividing each coordinate's step by the size of its recent gradients helps when parameters live on very different scales.
Math modeKeyboard or LaTeX inputTask 1 of 7 · Ctrl ⏎ to check