Visual walkthrough — Early stopping
Step 1 — What "the loss" even is, as a landscape
WHAT. Picture the network's job as walking around a hilly surface. Every point on the ground is a possible setting of the weights (all the tunable numbers of the network, stacked into one long list). The height of the ground at that point is the loss — how badly the network does on the training data. Low ground = good.
WHY a landscape? Because training is just walking downhill. If we can understand the shape of the ground near the bottom, we understand where training ends up.
PICTURE. Below, the ground dips into a bowl. The very bottom is the point — the weights that fit the training data best. Notice the bowl is stretched: steep along one direction, gentle along another. That lopsidedness is the whole plot of this movie.

Step 2 — Approximating the bowl with a clean equation
WHAT. Real loss surfaces are bumpy. But near the bottom, almost any smooth valley looks like a simple, symmetric bowl. We replace the messy surface with its clean stand-in:
Term by term:
- — the arrow from the bottom to where we stand. If it's zero, we're at the best fit.
- — the Hessian, a table of numbers describing curvature: how fast the ground steepens as you walk in each direction (see Hessian and Curvature).
- — reads as "distance, bent by the bowl's shape, distance" — a number: how high above the floor we sit.
WHY this tool and not another? Why a second-order (squared-distance) approximation, not just a straight-line one? With the slope gone, a straight line would be perfectly flat — it can't have a bottom that curves back up. The squared term is the simplest shape that can curve up into a valley on all sides. It's the least we can write down that still has a lowest point. That's exactly why the Hessian (the second-derivative object) shows up and nothing simpler will do.
PICTURE. The real wobbly valley (pink) and its smooth parabola stand-in (yellow) lying almost on top of each other near the bottom — with the tangent at drawn flat (slope zero).

Step 3 — Straightening the bowl (eigen-directions)
WHAT. A tilted, stretched bowl is annoying because moving one weight changes several curvatures at once. So we rotate our map to line the axes up with the bowl's natural stretch directions. This is the job of writing
- — a rotation: its columns are the bowl's natural axes (the eigenvectors, the "principal directions" of the valley).
- — a diagonal list of curvatures (the eigenvalues), one per natural axis. Each is "how steep the bowl is along axis ."
- — the same point , but described in the rotated map's coordinates.
WHY do this? Because in the rotated map the directions stop interacting. Each axis becomes its own independent 1-D bowl of steepness . A hard multi-dimensional problem becomes many easy one-dimensional ones we can solve separately. This is the reason eigen-coordinates are worth the trouble.
PICTURE. Left: the tilted bowl's contour ovals. Right: after rotating by , the ovals become axis-aligned — one steep axis (big ), one shallow axis (small ).

Step 4 — One step of gradient descent, in this map
WHAT. Gradient Descent walks downhill: from where you stand, subtract a small nudge in the steepest-uphill direction. For our bowl the steepest-uphill arrow works out to "curvature how far from the bottom" — the farther you stand from and the steeper the bowl, the stronger the uphill pull. Plug it into the update rule and measure everything from the bottom:
- — the learning rate: how big a step we take (see Learning Rate Schedules).
- — "do nothing" (the identity).
- — each step, the arrow-from-bottom gets multiplied by this: it shrinks us toward .
WHY subtract the gradient? The gradient points the way up. To go down, step the opposite way. Small keeps us from overshooting the bowl's far wall.
PICTURE. An arrow from the current point to , and the next arrow after one update — shorter, pointing more toward the bottom.

Step 5 — Unrolling steps along one axis
WHAT. In the rotated map each axis is independent, so pick one axis and track its single coordinate (the "pick out axis " number from Step 3). Start training from tiny weights, which we idealize as , so on this axis the arrow-from-bottom starts at .
Because the axes don't interact, one update just multiplies that arrow by the single number . So after updates the arrow-from-bottom is that number applied times:
Now move the term to the other side to read off the weight itself:
Read the front factor as a progress dial from to :
- : factor → we're still at the start (fully "regularized," weights near zero).
- : → factor → we reach the full best-fit value (no regularization left).
WHY does the axis matter? The dial climbs at speed set by :
- Steep axis (big ): is small → dies fast → dial hits in a few steps. Fit quickly.
- Shallow axis (small ): → dies slowly → dial still near after steps. Barely fit.
PICTURE. Two progress curves versus step number : the steep-axis dial shoots up to ; the shallow-axis dial crawls. A vertical "we stop here" line at some cuts the shallow axis while it's still low.

Step 6 — What regularization does, for comparison
WHAT. L2 Regularization (Weight Decay) doesn't stop early — it changes the destination. It adds a penalty that dislikes large weights, with strength ==== ("weight-decay"). Its new best point, per axis, is:
Read the dial :
- Steep axis (): dial → keep the full fit.
- Shallow axis (): dial → crush the weight toward zero.
WHY the same pattern? Look: it keeps steep axes and kills shallow ones — exactly what stopping early did in Step 5, but for a completely different reason. One method ran out of time; the other paid a penalty. Same fingerprint.
PICTURE. Two dials side by side, both plotted against curvature : the dial and the early-stopping dial trace the same S-shape from (shallow) to (steep).

Step 7 — Snapping the two dials together
WHAT. Two dials do the same thing, so set them equal and see what and must satisfy. Equal shrink means equal un-fit amounts:
The left side is early stopping's leftover; the right side is 's leftover. Now take the natural logarithm of both sides (the tool that turns a power into a plain multiplier — that's exactly what is for):
For small steps () use (a straight line hugging the log near ). Divide through and flip signs:
- — number of steps taken (our stopping choice).
- — the natural time-scale of axis : steep axes (big ) have a short time-scale, so they finish fast; this is where the -dependence lives and it does not drop out.
- — how many time-scales you must wait to shrink axis down to the target dial. Bigger → smaller log → stop sooner.
WHY the log, and where does come from? The relation above is the honest one: genuinely depends on both and . The often-quoted shortcut is only the special case of a shallow axis with : then is large while is small, and for the barely-moved directions () the leftover matches ... more simply, equating cancels the and leaves . So the clean reciprocal is a linearized snapshot for the weakly-fit directions, not the full law.
WHY care? Either way the punchline stands: more steps = weaker effective regularization = smaller . Choosing when to stop is choosing a regularization strength. The stopwatch and the penalty knob are the same knob wearing two costumes.
PICTURE. A see-saw: "steps " on one side, "decay " on the other, hinged at the axis time-scale — push up and the matched goes down.

Step 8 — Edge & degenerate cases (never leave a gap)
WHAT. We must check the corners, or the reader will hit a scenario we never drew.
- A perfectly flat direction, . The dial (for ) and so early-stopping's progress . Both keep this weight at zero forever. Good: a direction the loss doesn't care about never gets a large weight. Consistent.
- A very steep direction, large. Dial both ways: fit fully, no shrink. Consistent.
- Learning rate too big, . Then : the shrink factor grows, the arrow-from-bottom explodes — training diverges. This is why the whole "shrink toward " story needs . Outside that, no equivalence — you just blow up.
- Zero steps, . Progress dial : weights stay at their tiny init. This is infinite regularization () — an untrained, maximally simple model. Consistent with as .
WHY show all four? Because the boxed equivalence only holds inside the stable, small-step regime. A reader must know exactly where the map is trustworthy and where it tears: outside the "shrink toward " picture is simply false, and the flat/steep corners confirm that both methods agree at the extremes. Showing every corner is what makes the "early stopping " claim safe to rely on rather than a lucky coincidence in the middle.
PICTURE. The shrink factor plotted against : safe green band to , danger zones outside where the arrow grows.

The one-picture summary
WHAT. Everything at once: the stretched bowl, the training path curving in from the origin, and the two dials it walks past — reaching steep axes fast, shallow axes never. Stop the walk anywhere = pick an strength.

Recall Feynman: retell the walkthrough with no symbols
Imagine a bowl that's been squashed — steep on one side, shallow on the other. Right at the very bottom the ground is flat (no downhill left — that's what "bottom" means), which is why the simple squared-bowl picture is all you need there. You roll a marble in from the corner; it dives quickly toward the bottom along the steep direction but dawdles along the shallow one. If a friend taps your shoulder and stops the marble early, its position along the shallow direction is still small — you've automatically kept the "important" weights and left the "unimportant" ones tiny. Now here's the twist: there's a totally different method that adds a spring pulling every weight toward zero, harder on the weights the loss doesn't care about. When you compare where the marble stopped to where the spring settles it — they land in the same spot. So the moment you stop the clock is the same as choosing how strong the spring is. Stop sooner = stronger spring = simpler model; run forever = no spring = memorize everything.
Recall Check yourself
Why do shallow (small-) directions stay small when we stop early? ::: Their per-step shrink factor is near , so the progress dial barely rises in steps — the weight hasn't traveled far from zero. Why does the linear term of the Taylor expansion drop out at ? ::: Because is the minimum: the slope there is zero, , so the term is zero times something — it vanishes. What is the honest per-axis link between stopping time and weight decay? ::: ; the reciprocal is only the weakly-fit special case. What breaks the equivalence entirely? ::: A learning rate so big that : the shrink factor exceeds in magnitude and training diverges instead of settling.
Related: Overfitting and Generalization · Validation and Cross-Validation · 3.2.11 Early stopping (Hinglish)