Learning-rate schedules
A fixed rate makes one compromise for the whole run. First compare the compromise; then watch a decaying rate keep the fast start and settle down later.
A large fixed rate reaches a useful region sooner
Both runs see exactly the same examples in the same order. The only change is the learning rate. We mark the first update where the full-loss gap falls below 0.5.
θₜ₊₁ = θₜ − 0.10 gₜθₜ₊₁ = θₜ − 0.02 gₜFull-loss gap during the first 80 updates
The small rate is not wrong; it is slow when distance matters
A large rate gets into the useful region seven times sooner in this run. The next question is whether we must keep taking those large steps after we arrive.
Decay keeps the fast start and makes later moves smaller
Both runs begin at η = 0.10 and therefore make the same first move. In the decayed run, each later gradient is multiplied by a progressively smaller learning rate.
ηₜ = 0.10ηₜ = 0.10 / (1 + 0.02t)Movement near the least-squares optimum
The sampled indices are unchanged; the learning-rate policy changes the moves
Across the final 99 transitions, the fixed-rate path travels 3.794 parameter units. The decayed path travels 0.520 and has about 20 times smaller mean full-loss gap.
Exact experiment. Example A uses x = [−1, 0, 1, 2], y = [−1, 1, 3, 6], and θ₀ = (2, −1). The 360 sampled indices are the exact output of numpy.random.default_rng(12).integers(0, 4, 360).