The pullback metric on parameter space, obtained by embedding into with block-diagonal ambient metric . The Sherman-Morrison inverse gives a Riemannian gradient flow , which is a smoothed variant of gradient clipping. This is the base construction underlying the learnable, off-diagonal, Newton-target, and output-embedding (Gauss-Newton / KFAC) variants tracked in the rest of the project.
The induced metric is a Riemannian metric on parameter space, obtained by embedding into a -dimensional ambient space with a block-diagonal metric and pulling back. It is the mathematical foundation of the Induced-Metric Optimiser (IMO), introduced by Harvey (2025), and serves as the base construction that every variant in the project extends: scalar and diagonal learnable metrics, off-diagonal rank-two perturbations, the Newton-target derived optimizer, and the pullback unification that recovers Gauss-Newton, Fisher, natural gradient, and KFAC as special cases.
Let be the parameters of a model with loss .
Define
The image of is the graph of the loss, that is, the loss landscape visualised as a literal hypersurface sitting in one dimension above parameter space.
Equip with the block-diagonal metric
where scales the parameter directions and couples the loss direction. Setting collapses the loss direction and recovers flat Euclidean geometry on parameter space.
The Jacobian of is
and the pullback of is
that is, in matrix form,
is a rank-one perturbation of in the gradient direction. This single structural fact controls every downstream property.
The Sherman-Morrison formula with and gives
Applied to the gradient,
The Riemannian gradient direction is parallel to , and the only effect of the metric on the gradient flow is a scalar damping factor
Both and act on vectors in time, never materialising the dense matrix.

Distances under are distances measured along the loss-landscape surface, not in flat parameter space. In steep regions ( large) the embedding is nearly vertical, so a small parameter step corresponds to a large surface distance; the metric inflates the cost of moving in the gradient direction, and the optimiser takes a smaller step. In flat regions () the embedding is nearly horizontal, , and the optimiser behaves like ordinary SGD.
This is a smoothed variant of gradient clipping: instead of hard-clipping at a fixed threshold, the induced metric continuously dampens through the denominator . The two regimes meet smoothly at .

The continuous-time gradient descent under is
The trajectory direction is identical to plain gradient flow; only the time parameterisation differs. The flow is a time-rescaled gradient flow, with the rescaling factor depending on the current gradient norm.
A consequence: every critical point of is a critical point of the induced-metric flow, and vice versa. The induced metric does not change where the optimiser converges, only the speed at which it traverses each region of parameter space. Modifications that do change the critical-point geometry (sign-flipping saddles, basin enlargement, curvature corrections) require richer ambient metrics; see the geodesic convexity entry for the analysis and the learnable diagonal entry for the implementation.
Let . The practical update rule used in the reference implementation is:
The scaling factor is a scalar: it rescales the entire momentum vector uniformly, unlike Adam which rescales each coordinate independently. This is what makes the cost per step on top of the gradient.
Reference JAX/Flax implementation: scripts/induced_metric_optimizer.py.
| Parameter | Role | Typical range |
|---|---|---|
| base metric on parameter space | absorbed into (set to ) | |
| coupling to the loss dimension | to | |
| momentum decay | ||
| metric EMA decay | to | |
| learning rate | task-dependent | |
| weight decay | to |
The rank-one induced metric in this entry is the base construction. The project explores several extensions, each tracked in its own entry.
custom_sgd_log, custom_sgd_rms): change to or use per-parameter RMS denominators. Cheap rewrites, no new geometric content.The master minimax framework tracks which of these variants admit minimax-optimality theorems that are non-tautological. Each variant's benchmark standing lives in its own entry's empirical section.
The base construction has no learnable state: the metric trace is a fixed function of the gradient (Section 6). Two registered optimizers realise it, sgd_metric (the plain rank-one denominator) and sgd_rms (a per-parameter RMS denominator), and both are evaluated against Adam, SGD, and Muon under the project's standard sweeps.
Setup: 2-layer MLP (784, 64, 64, 10), batch size 1024, 200 epochs, 1000 trials per optimizer. Raw runs in results/mnist_mlp/<optimizer>/itr_4/.
| Optimizer | Best | Median | Mean | Worst |
|---|---|---|---|---|
sgd_rms (fixed RMS denominator) | 98.30% | 94.51% | 81.91% | 5.79% |
sgd_metric (plain rank-one) | 98.34% | 80.80% | 61.94% | 3.12% |
| Adam | 98.09% | 94.73% | 72.69% | 9.80% |
| SGD | 98.04% | 78.19% | 58.43% | 2.57% |
| Muon | 98.39% | 93.73% | 70.53% | 9.29% |
The notable result is sgd_rms: the simplest fixed-denominator variant is the most robust member of the induced-metric family, with a median () essentially matching Adam () and a mean above all three baselines. Unlike the learnable variants — which buy a higher best-run ceiling at the cost of median robustness — the fixed denominator does not open a robustness gap.
Setup: small transformer, 250 epochs, 200 trials per optimizer; metric is minimum validation perplexity (lower is better). Raw runs in results/shakespeare_minigpt/.
| Optimizer | Best | Median |
|---|---|---|
sgd_rms | 4.293 | 12.945 |
| Adam | 4.365 | 12.145 |
| Muon | 4.441 | 13.425 |
| SGD | 5.737 | 28.862 |
sgd_rms found the best single run, narrowly ahead of Adam; Adam holds the better median. This is a ceiling/stability signal for the simple denominator, not a robust win.
A falsifiable check: bolt the smooth induced-metric denominator onto Adam by using as the base metric in the Sherman-Morrison update,
Setting recovers Adam exactly. The bolt-on is theoretically unmotivated, since Adam is not a pullback metric (Section 7 of the master minimax framework), but it was registered with pre-specified gating criteria as an honest engineering test.
Setup: CIFAR-10 SmallCNN (~90k params), 30 epochs, batch 128, cosine LR schedule, three seeds five learning rates, . Raw runs in results/cifar10_simple_cnn/.
| Configuration | Mean test acc | vs Adam |
|---|---|---|
| Adam | 82.16% | baseline |
| Adam-IMO, | 81.80% | pp |
| Adam-IMO, | 66.39% | pp |
| Adam-IMO, | 49.88% | pp |
All three pre-registered gating criteria fail: the best Adam-IMO mean is pp below Adam (not the pp above that was required); Adam never diverges in the swept range, so there is no stability envelope to widen; and seed variance is Adam's. The denominator acts as a near-constant global learning-rate rescaler ( to throughout training) rather than a stability mechanism, and the win mode the experiment targeted (stability widening at high LR) is unavailable because Adam does not diverge on this task. The bolt-on is a dead end at the tested scale and values; the only untested regime that could still help is a high-LR sweep where Adam itself diverges.
sgd_rms) is robust but does not raise the ceiling; the learnable variants raise the ceiling but lose robustness. No single induced-metric variant currently dominates Adam on both best-run and median across tasks.Notebooks (notebooks/):
notebooks/derivations.nb: symbolic verification of the pullback construction, the Sherman-Morrison inverse, , the rank-one spectral structure, and the small- and large- asymptotics of .Scripts (scripts/):
scripts/induced_metric_optimizer.py: reference JAX implementation of the Section 6 update rule, with optional momentum and weight decay.scripts/make_figures.py: reproduces every figure shown in this entry (PDF and PNG written to figures/).