Feedback-preconditioned recurrent dynamics
Implementation & benchmark of arXiv:2607.11835 — Stabilize-then-optimize: Feedback transformations as preconditioners in optimal control
Source paper: Stabilize-then-optimize: Feedback transformations as preconditioners in optimal control arXiv:2607.11835 ⓘ · analyzed Aug 30, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Reparameterize a recurrent or state-space layer so that its hidden-state update contains an explicit stabilizing feedback controller, while the neural network learns only a residual control in the feedback coordinates. Choose K to reduce finite-horizon state-propagation amplification, suppressing exploding hidden states and gradients on long sequences.
Formulas
Mathematical statement
The paper replaces the constraint operator [A,-B] by [A-BK,-B], where A is the state operator, B maps controls into the state equation, and K maps states to feedback controls. The coordinate substitution is u=Kx+v, so v is the residual control and the physical control is u. If A is surjective, the transformed constraint remains surjective and the transformed optimization problem is equivalent to the original. For the discrete scalar system x_{k+1}=a x_k+u_k, the original finite-horizon control-to-state matrix T_N has entries a^{i-j} for i>=j, and its norm is O(1) for a<1, O(N) for a=1, and O(a^N) for a>1. Under u_k=Kx_k+v_k, the closed-loop multiplier is a_cl=a+K for this update convention; in the paper's operator convention it is A-BK. For a matrix recurrence h_{t+1}=Ah_t+Bu_t, use A_cl=A+BK and the block map T_N(A_cl,B)_{ij}=A_cl^{i-j}B for i>=j. Choosing rho(A_cl)<1 makes long-horizon propagation bounded instead of exponentially amplified.
Implementation notes
Integrate this into the recurrent transition of a vanilla RNN or linear state-space model. Keep hidden dimension d and input map B, but replace h_{t+1}=phi(Ah_t+Bu_t+c_t) with h_{t+1}=phi(A_cl h_t+Bv_t+c_t), where A_cl=A+BK and v_t is produced by the existing neural input/nonlinear pathway. Initialize A from the baseline model, then choose K so A_cl has target spectral radius rho_target, for example by setting K=-A+rho_target Q with Q orthogonal, or learn K with a penalty on an estimated spectral radius. Use pseudocode: h=init(); for t in range(T): v=control_net(x[t],h); h=phi(A_cl@h+B@v+b); y=readout(h). If the original model exposes a physical control, reconstruct it as u_t=K h_t+v_t. Estimate amplification by power iteration on the implicit map from a length-N sequence v to the resulting states: forward-propagate T_N q, apply the transpose recurrence backward, normalize, and record the dominant singular-value estimate. The paper supplies the feedback transformation and block structure; empirical measurements are the singular-value estimate, hidden-state RMS, and gradient norms. First test a 1-2 layer tanh RNN on adding, copy-memory, and permuted-MNIST at lengths 128, 512, and 2048. Compare with the identical baseline, orthogonal initialization, and spectral-radius clipping. Success means bounded hidden and gradient RMS, fewer NaNs, faster loss decrease at equal FLOPs, and less accuracy degradation as sequence length increases.
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Not reproduced ✗
Stage 2 · Practical benchmark result: Significantly worse ✗
Methodology: 8 paired seeds, permutation test (p<0.05) against a learning-rate-tuned baseline. How verification works
Stage 1 — Mechanism check agent confidence 9/10
Built a scalar feedback-preconditioned recurrent experiment with u=Kh+v, verifying numerically that the transformed multiplier is exactly a_cl=a+K with maximum error 4.4e-16. Finite-horizon operator sweeps confirmed the predicted stable, critical, and unstable regimes: observed terminal norm ratios were 1.015 versus predicted 1, 1.992 versus 2, and 445.815 versus 445.792. Forced-state RMS fell from 93,760 at a_cl=1.1 to 1.66 at 0.8 and 1.16 at 0.5; the tiny training test also reduced final loss and late gradient RMS, so the mechanism manifested.
- Agent confidence
- 9/10
- Baseline
- a_cl=1.08: final loss 140.8649, late gradient RMS 18693.37, initial loss 773004.40
- Idea
- a_cl=0.80: final loss 115.3906, late gradient RMS 9.27, initial loss 133.42; feedback shift error 4.4e-16; operator ratios stable/critical/unstable 1.015/1.992/445.815
Limitations: The mini-experiment used a scalar linear recurrence and an online sum task rather than nonlinear multidimensional RNNs, copy-memory, adding, or permuted-MNIST. It did not compare orthogonal initialization, spectral-radius clipping, FLOPs, accuracy across multiple sequence lengths, or multiple random seeds; the baseline and feedback models use different fixed recurrent multipliers by design.
How to run: python3 experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2607.11835)
Significantly WORSE than the tuned baseline (+134.5%, p=0.0081, wins 0 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small_feedback
- Paired seeds
- 8
- Baseline mean
- 0.0016
- Idea mean
- 0.0038
- Effect (Δ)
- 0.0022 (+134.5%; negative = idea better)
- Wins
- 0 / 8 paired seeds
- p-value
- 0.0081 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±47.9%
- Mechanism
- Not confirmed ✗
- Practical effect
- Hurts
- Baseline tuning
- swept over 9 configs
Only the registered dynamics track was tested. No comparison against the built-in GRU implementation, longer horizons, orthogonal initialization, spectral-radius clipping, or larger training budgets was run; the local intervention uses a fixed orthogonal A_cl rather than jointly learning K.
How to run: python3 bench_feedback.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
Implemented and ran feedback-preconditioned recurrent dynamics on the registered built-in dynamics track with 8 paired seeds, canonical train_model training, and a tuned baseline sweep. The best baseline achieved MSE 0.0016241 versus 0.0038084 for the best feedback model; paired delta was +0.0021843 with permutation p=0.0081, so the idea was significantly worse. The trained-model signature measured the target operator norm but did not confirm the finite-horizon quantitative prediction.
- Baseline
- best_cfg={lr:0.006,rho:0.8}; mean=0.0016240773547906429; per_seed=[0.0018814491340890527,0.0011060595279559493,0.0010844746138900518,0.0026348030660301447,0.0019145066617056727,0.0013607223518192768,0.0019727598410099745,0.0010378436418250203]
- Idea
- best_cfg={lr:0.006,rho:0.6}; mean=0.003808425914030522; per_seed=[0.0037844234611839056,0.0025165914557874203,0.004247678443789482,0.006615340709686279,0.004185421857982874,0.0029389068949967623,0.003790728747844696,0.0023883157409727573]
Benchmark result
Significantly WORSE than the tuned baseline (+134.5%, p=0.0081, wins 0 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small_feedback
- Paired seeds
- 8
- Baseline mean
- 0.0016
- Idea mean
- 0.0038
- Effect (Δ)
- 0.0022 (+134.5%; negative = idea better)
- Wins
- 0 / 8 paired seeds
- p-value
- 0.0081 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±47.9%
- Mechanism
- Not confirmed ✗
- Practical effect
- Hurts
- Baseline tuning
- swept over 9 configs
Only the registered dynamics track was tested. No comparison against the built-in GRU implementation, longer horizons, orthogonal initialization, spectral-radius clipping, or larger training budgets was run; the local intervention uses a fixed orthogonal A_cl rather than jointly learning K.
How to run: python3 bench_feedback.py
Artifacts
- bench_feedback.py 4.9 KB View Raw
- bench_report.json 4.8 KB View Raw
- experiment.py 4.6 KB View Raw
- report.md 1.5 KB View
- report_bench_2026-08-31T010334.md 5.5 KB View
- results.json 1.9 KB View Raw