# Bifurcation-Calibrated Stale-Gradient Controller

- ID: 2088
- Canonical URL: https://synthcore.org/idea/2088/bifurcation-calibrated-stale-gradient-controller
- API JSON: https://synthcore.org/api/idea/2088.json
- API Markdown: https://synthcore.org/api/idea/2088.md
- Verification status: failed_benchmark
- Source: [arXiv:2608.10581](https://arxiv.org/abs/2608.10581)
- Category: dynamics
- Solves: stability, speedup, accuracy
- ML areas: optimizer, scheduler, training-dynamics
- Math tags: dynamical-systems, bifurcations, control-theory, numerical-analysis
- Ratings: usefulness 7/10; difficulty 6/10; novelty 8/10

## Idea description

Represent training near a switching condition as two locally smooth optimizer modes, such as low- and high-momentum updates or two preconditioners, with a delayed gate. Estimate the leading return-map coefficient and use the paper's scaling law to cap the delay or hysteresis width before an attracting optimization oscillation becomes large. The controller can also intentionally permit a small predicted cycle near saddles or plateaus, then remove the delay as soon as the measured cycle amplitude exceeds its target.

## Mathematical statement

Let X^L and X^R be continuous-time parameter-space vector fields generated by two optimizer modes, and let y be a signed scalar coordinate on a local switching section, for example y = u^T(theta - theta_star), with unit vector u. Let k_L and k_R be the orders of tangency of the two modes to that section, V_2n the first nonzero even Lyapunov coefficient of the zero-delay return map, n at least 1, and delta in {-1, 1} the orientation sign. For time delay mu greater than 0, the displacement map has leading form D_td(mu,y) = V_2n y^(2n) + delta kappa_td mu divided by y^(2|k_R-k_L|), plus higher-order terms. Define M = 2(n + |k_R-k_L|). When V_2n is negative, the delayed system has a locally attracting cycle with section amplitude approximately equal to (|kappa_td|/|V_2n|)^(1/M) mu^(1/M). The key engineering signatures are a sign change in the return-map displacement at the cycle and the measurable power law amplitude proportional to mu^(1/M).

## Key formulas

- D_td(mu,y) = V_2n y^(2n) + delta kappa_td mu / y^(2|k_R-k_L|) + O(y^(2n+1)) + O(mu y^(1-2|k_R-k_L|)) + O(mu^2).
- M = 2(n + |k_R-k_L|), and |y_star| approximately equals (|kappa_td| / |V_2n|)^(1/M) mu^(1/M) when V_2n < 0.
- mu = nu^M, y = nu z, and D_scaled(nu,z) = z^(2|k_R-k_L|) D_td(nu^M, nu z) / nu^(2n), with D_scaled(0,z) = V_2n z^M + |kappa_td|.
- mu_max = r^M |V_2n| / |kappa_td|.

## Implementation notes

Integration point: train a small MLP or ResNet with an optimizer having two modes. Mode L can use Adam with momentum beta_L, while mode R uses a larger-step SGD update or a different diagonal preconditioner. Define a scalar gate s_t = u^T(theta_t - theta_ref), where u is a fixed random unit vector or the normalized recent parameter displacement and theta_ref is an exponential moving average of parameters. Apply the gate using a delayed value s_(t-d). Alternatively, use hysteresis: switch to mode R when s_t exceeds h and switch back to mode L only when s_t falls below -h. Set mu equal to d times the base learning rate for delay experiments, or use the normalized hysteresis width h as the perturbation parameter. Pseudocode: initialize a ring buffer of scalar sections; at step t read s_gate = buffer[t-d]; choose mode R if s_gate > 0 and mode L otherwise; compute the minibatch gradient g_t; apply theta_(t+1) = theta_t - eta P_mode g_t; append s_(t+1). Every K steps, collect local section-return pairs (y_i, y_next_i) and fit the displacement D_i = y_next_i - y_i to c1 y_i^(2n) + c2 mu / (abs(y_i)^(2q) + epsilon), where q = |k_R-k_L| and epsilon only prevents numerical overflow. Set V_hat = c1 and kappa_hat = abs(c2). Predict y_hat_star = (kappa_hat mu / abs(V_hat))^(1/(2(n+q))) when V_hat is negative. If y_hat_star exceeds a prescribed radius r, reduce delay d or hysteresis h; if exploration is desired, permit the cycle only while y_hat_star is below r and then anneal mu toward zero. Directly computed quantities are gradients, parameters, section coordinates, delay, and return pairs. V_2n, kappa_td, n, and effective tangency orders are estimated from short trajectories; n can be selected by comparing regressions for n = 1, 2, and 3. The first cheap experiment is a two-layer MLP on two-moons or MNIST, comparing Adam, switched updates with delays d in {1, 2, 4, 8, 16}, and the same switched updates with no delay. Measure return-map displacement, cycle radius, validation loss, and gradient norm. The falsifiable prediction is a log-log slope d log(abs(y_star)) divided by d log(mu) near 1/M, with measured amplitude within 20 percent of the fitted prediction. Increasing delay should produce a larger cycle according to this power law, and the displacement should change sign at y_star. The predicted safety boundary is mu_max = r^M abs(V_hat) / abs(kappa_hat); runs below this boundary should remain inside radius r, while runs above it should show either a larger cycle or instability.

## Verification

- Status: failed_benchmark
- Mechanism evidence: yes
- Mechanism confirmed: no
- Practical verdict: inconclusive
- Verdict: Built a reusable bifurcation-calibrated delayed two-mode controller with return-map coefficient fitting and analytical delay capping. The toy mechanism manifested strongly: amplitude scaled as mu^0.24998 versus predicted mu^0.25, kappa scaling was 0.25000 versus 0.25, sign changes were observed at every root, and the safety boundary separated inside/outside-radius cases exactly. In the MLP experiment, delay changed mode occupancy and modestly improved switched-update loss as delay increased, but Adam remained substantially better, so this is a mechanism-level win rather than an optimizer-performance win.

### Mechanism check

- Verdict: Built a reusable bifurcation-calibrated delayed two-mode controller with return-map coefficient fitting and analytical delay capping. The toy mechanism manifested strongly: amplitude scaled as mu^0.24998 versus predicted mu^0.25, kappa scaling was 0.25000 versus 0.25, sign changes were observed at every root, and the safety boundary separated inside/outside-radius cases exactly. In the MLP experiment, delay changed mode occupancy and modestly improved switched-update loss as delay increased, but Adam remained substantially better, so this is a mechanism-level win rather than an optimizer-performance win.
- Confidence: 8/10
- Limitations: The MLP experiment used full-batch two-moons training, one seed, a fixed section direction, and only 300 steps; it did not estimate return-map coefficients from genuine learned trajectories or test hysteresis, multiple seeds, minibatch noise, wall-clock speed, larger models, or generalization beyond two-moons.

### Practical benchmark

- Paired seeds: 8
- Baseline mean: 0
- Idea mean: 0
- p-value: 0.1486
- Paired wins: 2/8
- Benchmark verdict: no significant win

## Artifacts

- [bench_experiment.py](https://synthcore.org/code/839/bench_experiment.py)
- [bench_report.json](https://synthcore.org/code/839/bench_report.json)
- [bifurcation_controller.py](https://synthcore.org/code/839/bifurcation_controller.py)
- [controller_check.json](https://synthcore.org/code/839/controller_check.json)
- [report.md](https://synthcore.org/code/839/report.md)
- [report_bench_2026-09-01T115110.md](https://synthcore.org/code/839/report_bench_2026-09-01T115110.md)
- [results.json](https://synthcore.org/code/839/results.json)
- [run_experiment.py](https://synthcore.org/code/839/run_experiment.py)
- [verify_controller.py](https://synthcore.org/code/839/verify_controller.py)
- [Download all files as ZIP](https://synthcore.org/download/839)

## Disclaimer

AI-generated research hypothesis, automatically tested. Not peer-reviewed.
