Mean-Square-Stable Noise Homotopy
Implementation & benchmark of arXiv:2608.17940 — Policy Iteration for Linear-Quadratic Stochastic Differential Games with State- and Control-Dependent Noise
Source paper: Policy Iteration for Linear-Quadratic Stochastic Differential Games with State- and Control-Dependent Noise arXiv:2608.17940 ⓘ · analyzed Sep 1, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Train with a continuation parameter that gradually increases stochasticity, such as dropout, augmentation magnitude, gradient noise, or temperature, while monitoring the local mean-square stability of the parameter update. The network first solves a low-noise problem with a larger stability margin and is then continued toward the desired noisy objective instead of entering a high-noise regime abruptly.
Formulas
Mathematical statement
The paper considers dynamics of the form dx = (A x + B u) dt + (C x + D u) dW and preserves mean-square stability of policy iterates. For neural optimization, let z_k be a perturbation around the current parameter trajectory, let F_s be the Jacobian of the deterministic update at diffusion scale s, and let G_{s,r} be the Jacobian associated with stochastic channel r. The linearized stochastic update is z_{k+1} = (F_s + sum_r G_{s,r} xi_{k,r}) z_k, where xi_{k,r} are independent zero-mean unit-variance noises. Its second-moment dynamics are governed by M_s = F_s tensor F_s + sum_r G_{s,r} tensor G_{s,r}. Mean-square contraction is expected when the spectral radius rho(M_s) is less than one. The continuation scheduler increases s only while the estimated stability margin 1 - rho(M_s) remains above a chosen safety margin delta.
Implementation notes
Integration point: wrap SGD, Adam, or AdamW with a scalar continuation variable s. Define the target stochasticity, such as dropout probability p, augmentation magnitude a, or explicit gradient-noise variance, as s times its final value. Start at s = 0 or a small positive value and increase it only after the local update dynamics have a measured contraction margin. Pseudocode: initialize s and train for H steps; save the current parameters; generate several stochastic updates from identical parameters; estimate the deterministic update Jacobian F_s with finite-difference Jacobian-vector products or automatic-differentiation JVPs; estimate stochastic channel operators G_{s,r} from update differences across dropout masks or minibatches; use power iteration on the Kronecker operator M_s, or use the cheaper empirical second-moment ratio m_hat = mean(||z_next|| squared) divided by mean(||z|| squared); if m_hat is below 1 minus delta, increase s by Delta s; otherwise hold s and reduce the learning rate. The paper provides the mean-square-stability and homotopy mechanism; all neural Jacobians are estimated empirically. First cheap experiment: train a three-layer MLP on MNIST with SGD and dropout p = 0.3. Compare abrupt dropout activation against a 20-epoch homotopy from p = 0 to p = 0.3 across learning rates. The prediction is that squared perturbation growth changes from decay to growth near estimated rho(M_s) = 1, and the measured divergence boundary should agree with this estimate within approximately 20 percent.
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Confirmed ✓
Stage 2 · Practical benchmark result: Inconclusive
Methodology: 8 paired seeds, permutation test (p<0.05) against a learning-rate-tuned baseline. How verification works
Stage 1 — Mechanism check agent confidence 7/10
Built a reproducible MVP in experiment.py with scalar mean-square stability verification, parameter sweeps, and an abrupt-dropout versus scheduled-dropout digits MLP experiment. The mechanism manifested in the toy system: the Monte Carlo second-moment ratio matched the predicted spectral factor within 0.28% maximum relative error, and the swept stability boundaries matched the analytic predictions. The neural experiment did not show a practical win: final homotopy accuracy was 94.67% versus 95.11% for abrupt dropout, so the result supports the stability mechanism but not improved task performance in this tiny run.
- Agent confidence
- 7/10
- Baseline
- Abrupt p=0.30 dropout: final test accuracy 0.9511.
- Idea
- Linear p=0 to 0.30 over 80 steps: final test accuracy 0.9467; final accuracy delta -0.0044. Toy Monte Carlo rho maximum relative error 0.0028; predicted-versus-observed gamma and noise boundaries had 0.0 reported relative error.
Limitations: The neural comparison uses one fixed seed, one small digits dataset, one learning rate, and a fixed linear continuation rather than a full adaptive neural Jacobian scheduler. The toy boundary observations use dense grids evaluated from the same scalar formula, validating the formula and scaling rather than independently estimating a neural-network stability boundary. No MNIST or multi-seed robustness study was run.
How to run: python3 experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2608.17940)
No significant difference vs. the tuned baseline (+7.1%, p=0.241, wins 2 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0006
- Idea mean
- 0.0007
- Effect (Δ)
- 0 (+7.1%; negative = idea better)
- Wins
- 2 / 8 paired seeds
- p-value
- 0.241 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±12.7%
- Mechanism
- Confirmed ✓
- Practical effect
- Inconclusive
- Baseline tuning
- swept over 3 configs
Only the built-in dynamics track was tested, with 800 training and 300 test examples, 12 epochs, three learning rates, and three nominal noise settings. The current implementation uses additive Gaussian gradient noise rather than dropout or an adaptive Jacobian scheduler; notably, the nominal noise sweep values were recorded but the implementation used the fixed TARGET_NOISE, so those three idea settings were operationally identical. The stability probe uses finite differences and minibatch resampling on one trained model and does not estimate the full Kronecker spectral radius.
How to run: python3 bench_experiment.py
Verdict computed by deterministic test code from paired-seed statistics — not by the language model.
Stage 2 — Benchmark latest Failed ✗
Agent confidence: 9/10
Built a matched dynamics-track experiment using the shared rnn_small architecture and Adam optimizer, with the idea implemented as continuation of zero-mean gradient noise. The trained-model stability probe matched predicted and observed second-moment factors to 5.6e-6 relative error, confirming the mechanism quantitatively. However, the best homotopy result was worse than the tuned baseline (MSE 0.00069089 vs 0.00064498; paired delta +0.00004591; permutation p=0.241), so there is no demonstrated task-performance win.
- Baseline
- dynamics/rnn_small, tuned lr=0.006: mean test MSE 0.0006449769 over 8 seeds; per-seed [0.00046032, 0.00074608, 0.00042435, 0.00070913, 0.00046796, 0.00074382, 0.00082747, 0.00078069]
- Idea
- Best continuation setting lr=0.006, target gradient-noise scale 0.001: mean test MSE 0.0006908904 over 8 seeds; paired delta +0.0000459135; 2/8 wins; permutation p=0.241
- Mechanism signature
- Predicted trained-NN second-moment factor 0.99996865; observed 0.99996305 across 12 stochastic minibatch channels; relative error 5.603e-6; confirmed=true
Benchmark result
No significant difference vs. the tuned baseline (+7.1%, p=0.241, wins 2 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0006
- Idea mean
- 0.0007
- Effect (Δ)
- 0 (+7.1%; negative = idea better)
- Wins
- 2 / 8 paired seeds
- p-value
- 0.241 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±12.7%
- Mechanism
- Confirmed ✓
- Practical effect
- Inconclusive
- Baseline tuning
- swept over 3 configs
Only the built-in dynamics track was tested, with 800 training and 300 test examples, 12 epochs, three learning rates, and three nominal noise settings. The current implementation uses additive Gaussian gradient noise rather than dropout or an adaptive Jacobian scheduler; notably, the nominal noise sweep values were recorded but the implementation used the fixed TARGET_NOISE, so those three idea settings were operationally identical. The stability probe uses finite differences and minibatch resampling on one trained model and does not estimate the full Kronecker spectral radius.
How to run: python3 bench_experiment.py
Artifacts
- bench_experiment.py 7.2 KB View Raw
- bench_report.json 3.4 KB View Raw
- experiment.py 4.2 KB View Raw
- report.md 1.6 KB View
- report_bench_2026-09-01T122748.md 5.9 KB View
- results.json 3.0 KB View Raw