Streaming Contraction Deployment Gate
Implementation & benchmark of arXiv:2607.10893 — Streaming Contraction Certificates for Nonlinear Networks: Topology-Aware Data Sufficiency with Partial Observation
Source paper: Streaming Contraction Certificates for Nonlinear Networks: Topology-Aware Data Sufficiency with Partial Observation arXiv:2607.10893 ⓘ · analyzed Aug 30, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Attach a streaming contraction monitor to a recurrent, state-space, or neural-ODE model and permit long-horizon rollout or autonomous deployment only when a conservative estimated contraction certificate is positive. The monitor estimates local Jacobian growth from recent state-transition observations and subtracts an uncertainty radius, preventing operation in regimes where apparent stability is caused by insufficient or noisy data.
Formulas
Mathematical statement
For a neural state model \(\dot h=F_\theta(h,u)\), infinitesimal perturbations obey \(\dot{\delta h}=J_\theta(h,u)\delta h\), where \(J_\theta=\partial F_\theta/\partial h\). Under the Euclidean metric, define the local contraction rate \(\beta(t)=-\lambda_{\max}((J_\theta+J_\theta^\top)/2)\); positive \(\beta\) means all perturbations contract locally. The paper's streaming certificate is \(\beta_{\mathrm{cert}}(t)=\hat\beta(t)-\rho(t)\), where \(\hat\beta(t)\) is estimated recursively from a sliding window of partial input-output data and \(\rho(t)\geq 0\) is a data-dependent uncertainty radius. Deployment occurs only after the certificate remains above a positive margin for a persistence interval. In discrete time, for \(h_{k+1}=G_\theta(h_k,u_k)\) with \(D_k=\partial G_\theta/\partial h_k\), contraction corresponds to \(\|D_k\|_2\leq 1-\beta\Delta t\).
Implementation notes
1. Integration point: use a GRU-free recurrent model, latent state-space model, or neural ODE whose hidden state is updated during streaming inference. Maintain a rolling buffer of length W containing observed outputs, inputs, and either hidden-state probes or a learned observation encoder. 2. Pseudocode: at every step, compute the local Jacobian D_k using autodiff and one power iteration with Jacobian-vector products. Convert its largest singular value s_k into a discrete contraction estimate \(\hat\beta_k=-\log(s_k)/\Delta t\). Fit the mean rate over the buffer with a robust recursive regression, Huber estimator, or median-of-blocks estimator. Estimate \(\rho_k\) from residual scale, effective sample count W, and confidence level; then set \(\beta_{cert,k}=\hat\beta_k-\rho_k\). If the certificate is below the margin, switch to a damped update \(h_{k+1}\leftarrow(1-\alpha)h_k+\alpha G_\theta(h_k,u_k)\), reduce rollout horizon, or invoke a fallback controller. 3. Computed versus estimated: autodiff supplies D_k; \(\hat\beta\), residual scale, and \(\rho\) are estimated from streaming data; the contraction implication is the analytical component. 4. First cheap experiment: train a small neural ODE or linear state-space model on Mackey-Glass or Lorenz-63, then test long autonomous rollouts under Laplace noise. Sweep rollout step size or spectral-normalization strength. The predicted signature is a sharp empirical divergence boundary near \(\beta_{cert}=0\): sustained positive certificates should correspond to bounded perturbation growth, while certificates crossing below zero should precede increasing sensitivity. Test whether the first certificate crossing predicts failure within 20% of observed divergence time and whether the persistence gate reduces catastrophic rollouts at fixed one-step error.
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Not reproduced ✗
Stage 2 · Practical benchmark result: No measurable effect
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 streaming contraction gate implementing the paper's ridge estimate, residual uncertainty radius, certificate, and persistence rule. The mechanism manifested: the discrete stability boundary was observed at d=1 exactly, radius noise scaling had predicted log-log slope 1.0 versus 1.008 observed, and normalized-Gram window scaling had predicted slope 0 versus 0.015 observed. In the rollout sweep, the gate allowed all stable d=0.90/0.97 cases, rejected all d=1.0/1.03/1.10 cases, and reduced the d=1.10 failure rate from 1.0 to 0.0 using the damped fallback.
- Agent confidence
- 9/10
- Baseline
- Always-deploy failure rates by d=[0.90,0.97,1.00,1.03,1.10]: [0.0, 0.0, 0.0, 0.0, 1.0].
- Idea
- Gated-policy failure rates: [0.0, 0.0, 0.0, 0.0, 0.0]; gate rates: [1.0, 1.0, 0.0, 0.0, 0.0]. Noise-radius slope: predicted 1.0, observed 1.008; window-radius slope: predicted 0.0, observed 0.015; at d=1 raw-positive rate 0.262 versus certified-positive rate 0.0.
Limitations: This is a scalar synthetic discrete-time experiment, not a trained neural ODE/RNN or partial-observation deployment. The uncertainty radius is tested under iid persistently excited regressors and is not a formally calibrated confidence bound; no FLOP, latency, heavy-tailed-noise, multidimensional Jacobian, or real-data evaluation was performed.
How to run: python3 streaming_gate.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2607.10893)
No significant difference vs. the tuned baseline (0 metric points, p=0.0778, wins 2 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0
- Idea mean
- 0
- Effect (Δ)
- 0 (n/a; negative = idea better)
- Wins
- 2 / 8 paired seeds
- p-value
- 0.0778 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- n/a
- Mechanism
- Not confirmed ✗
- Practical effect
- No effect
- Baseline tuning
- swept over 0 configs
The built-in dynamics track measures supervised 8-step-ahead pendulum prediction rather than long autonomous rollout failure, so deployment catastrophe prevention was not directly tested. The monitor uses input-output Jacobian sensitivity as a proxy for recurrent state-transition contraction and a heuristic MAD uncertainty radius; latency and FLOPs were not measured.
How to run: python3 bench_gate.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
The contraction gate was implemented and tested on the structurally matched dynamics track with independently trained rnn_small systems, canonical train_model training, eight paired seeds, and a shared three-point learning-rate sweep. Gated MSE was slightly worse than baseline (0.0003464295 vs 0.0003432747), with paired delta +3.1548e-06 and permutation p=0.0778, so the idea did not produce a significant win.
- Baseline
- Best lr=0.01, epochs=10; mean test MSE 0.0003432747 over 8 seeds.
- Idea
- Best lr=0.01, epochs=10; mean gated test MSE 0.0003464295 over 8 seeds; fallback rate 0.01; positive-certificate rate 1.0.
Benchmark result
No significant difference vs. the tuned baseline (0 metric points, p=0.0778, wins 2 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0
- Idea mean
- 0
- Effect (Δ)
- 0 (n/a; negative = idea better)
- Wins
- 2 / 8 paired seeds
- p-value
- 0.0778 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- n/a
- Mechanism
- Not confirmed ✗
- Practical effect
- No effect
- Baseline tuning
- swept over 0 configs
The built-in dynamics track measures supervised 8-step-ahead pendulum prediction rather than long autonomous rollout failure, so deployment catastrophe prevention was not directly tested. The monitor uses input-output Jacobian sensitivity as a proxy for recurrent state-transition contraction and a heuristic MAD uncertainty radius; latency and FLOPs were not measured.
How to run: python3 bench_gate.py
Artifacts
- bench_gate.py 5.6 KB View Raw
- bench_report.json 5.2 KB View Raw
- report.md 1.6 KB View
- report_bench_2026-08-30T160613.md 2.3 KB View
- results.json 1.8 KB View Raw
- streaming_gate.py 4.4 KB View Raw