Three fates — same data, same model, one dial
A line is being fit to 30 noisy points by gradient descent, right now, on this canvas. Two knobs are being learned (slope and intercept) — you only control the learning rate. Watch the gold line hunt for the data at 0.05, crawl at 0.001, and at 1.5 spin off the screen as the loss readout hits astronomical numbers.
Slider is log-scaled (like every lr plot in every paper). The fit is genuine 2-parameter gradient descent on mean squared error; the same 30 points every run.
The sweep — how the pros actually pick the number
Nobody derives the right learning rate — they sweep it. Press the button: 24 training runs launch at log-spaced rates from 0.0001 to 3, each dot is a finished run's final loss. The shape that appears is the most famous curve in practical deep learning: flat-ish valley, then a cliff. Click any dot to replay that run in EP 01's style.
All 24 runs execute in your browser when you click — about 3,600 gradient steps total. The asymmetry (gentle left, cliff right) is why practitioners err small.
Warmup — the first steps are the most dangerous
Fresh models start in terrible places: gradients are huge and momentum has no history to average over. Slam a big learning rate into that and the run dies in the first 20 steps — even though the same rate would be perfectly safe later. Warmup ramps the rate from ~0 to full over the first N steps. Drag the warmup slider from 0 and watch the red trace turn green.
The task: fit a small 8-parameter model with momentum 0.9 from a deliberately bad init. Divergence or survival is decided by the actual dynamics each run — rerun and the seed changes.
Decay — you can't land a plane at cruising speed
With noisy (stochastic) gradients, a constant learning rate never truly converges — it orbits the optimum in a noise ball whose radius is proportional to the rate. To settle into the valley floor you must slow down late in training. Compare the three landing strategies and read the measured final-loss floor of each.
Same noisy quadratic task, 400 steps each. "Floor" = mean loss over the final 50 steps, measured per run. The schedule curve is drawn under the loss trace.
The dial is coupled — batch size moves the sweet spot
Change the batch size and yesterday's perfect learning rate is wrong. Press the button: a 6×6 grid of 36 complete training runs executes (lr × batch), each cell colored by its measured final loss. A diagonal band of green appears — that's the linear scaling rule: double the batch, double the workable rate.
Every cell is a real 250-step stochastic run on the same task — about 9,000 steps total per click. Green = low final loss, red = diverged. The band you see was computed, not drawn.