Contractive Latent Observer
Implementation & benchmark of arXiv:2607.14885 — Contraction versus Recurrence: An Exponential Separation in Observation-Based Prediction of Deterministic Dynamics
Source paper: Contraction versus Recurrence: An Exponential Separation in Observation-Based Prediction of Deterministic Dynamics arXiv:2607.14885 ⓘ · analyzed Aug 30, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Replace recurrence or nearest-neighbour analogue lookup with a learned delay-coordinate observer that continuously corrects a latent state using the current observation. Constrain the observer's closed-loop Jacobian or linear state matrix to have spectral radius below one, so prediction error contracts geometrically and required burn-in grows logarithmically with target accuracy.
Formulas
Mathematical statement
Let \(y_t\) be the observed signal, \(z_t\in\mathbb{R}^m\) the latent state, \(A\) the latent transition matrix, \(C\) the observation matrix, and \(L\) the observer gain. The observer is \(\hat z_{t+1}=A\hat z_t+L(y_t-C\hat z_t)\). Its estimation error satisfies \(e_{t+1}=A_{cl}e_t\), where \(A_{cl}=A-LC\). If the closed-loop spectral radius \(\rho(A_{cl})<1\), then \(\|e_k\|\le K\rho(A_{cl})^k\|e_0\|\) asymptotically. Therefore the number of steps to reach tolerance \(\varepsilon\) is logarithmic in \(1/\varepsilon\), with the paper's near-unit-radius approximation proportional to \((1-\rho(A_{cl})^2)^{-1}\).
Implementation notes
Use a delay window \(y_{t-p+1:t}\) as input to a recurrent latent model. Implement a prior transition \(z^{prior}_{t+1}=f_\theta(z_t)\), decode \(\hat y_t=g_\theta(z_t)\), and apply the observer correction \(z_{t+1}=z^{prior}_{t+1}+K_\phi(y_t-\hat y_t)\). For the cheapest MVP, use \(f_\theta(z)=Az\) and \(g_\theta(z)=Cz\), and learn \(A,C,K\) with one-step and multi-step prediction loss. At every training step estimate \(\rho(A-KC)\) by power iteration and add \(\lambda\operatorname{ReLU}(\rho-\gamma)^2\). For a nonlinear transition, estimate Jacobian-vector products with autodiff and penalize the largest sampled singular value. The contraction inequality comes from the paper; parameters, Jacobians, and residual noise floors are estimated from data. First test on Lorenz-63 with scalar observations and the Santa Fe laser benchmark, comparing analogue retrieval, an unconstrained GRU, and the observer. Sweep target tolerance from \(10^{-2}\) to \(10^{-6}\). The predicted signature is a straight line of burn-in versus \(\log(1/\varepsilon)\), with slope increasing approximately as \((1-\rho^2)^{-1}\); measured divergence should occur when \(\rho\ge 1\).
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 linear contractive latent observer with spectral-radius penalty, Lorenz-63 scalar-observation forecasting, GRU baseline, and analogue retrieval baseline. The toy checks confirmed the predicted rho=1 contraction boundary exactly, burn-in slopes matched 1/(-log rho) within 0.05 relative error, and scalar gain sweeps matched rho(A-LC) exactly. The observer did not win on Lorenz one-step MSE in this small run: it was worse than both GRU and analogue retrieval, so the mechanism is real but an application-level improvement was not demonstrated.
- Agent confidence
- 9/10
- Baseline
- GRU MSE=0.00020846; analogue retrieval MSE=0.00013584
- Idea
- Observer MSE=0.00175154; learned rho(A-KC)=0.47528. Toy burn-in slope relative errors: rho=[0.20,0.50,0.80,0.95,0.99] -> [4.85%,0.66%,0.18%,0.24%,0.05%]; boundary matched contraction predictions for all tested rho values; gain sweep matched exact scalar prediction.
Limitations: Only a linear one-dimensional observer and one-step Lorenz-63 scalar forecast were tested. Santa Fe laser, nonlinear Jacobian constraints, multi-step rollout loss, repeated seeds, statistical significance, runtime/FLOP comparisons, and tolerance burn-in on noisy learned observers were not tested. CUDA was attempted but cuDNN host allocation failed, so the reported mini-experiment used the required CPU fallback.
How to run: python3 experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2607.14885)
No significant difference vs. the tuned baseline (+0.0%, p=0.9359, wins 3 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.001
- Idea mean
- 0.001
- Effect (Δ)
- 0 (+0.0%; negative = idea better)
- Wins
- 3 / 8 paired seeds
- p-value
- 0.9359 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±0.3%
- Mechanism
- Not confirmed ✗
- Practical effect
- No effect
- Baseline tuning
- swept over 3 configs
The benchmark used the built-in 8-step actuated-pendulum dynamics track and a linear recurrent-weight spectral-norm proxy rather than an explicit learned A-KC observer with separately parameterized latent observation gain. No Santa Fe laser, Lorenz, nonlinear Jacobian constraint, rollout-horizon sweep, runtime/FLOP comparison, or GPU run was included; CUDA was disabled after the shared-GPU process aborted.
How to run: CUDA_VISIBLE_DEVICES='' /home/maxwelhelp/main/bin/python3 bench_stage2.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 local Contractive Latent Observer intervention on the structurally matched dynamics track using the shared rnn_small-sized GRU and a differentiable spectral-norm proxy penalty. The geometric contraction sanity check passed, and the trained-model proxy averaged 0.8405 versus the target 0.90, confirming the intended stability signal. However, test MSE was very slightly worse than the tuned baseline (delta +9.42e-8, permutation p=0.9359), so there is no observed benchmark improvement.
- Baseline
- dynamics/rnn_small, tuned lr=0.006; 8-seed test MSE mean=0.001037391914, std=0.000183358837
- Idea
- contractive penalty, tuned lr=0.006; 8-seed test MSE mean=0.001037486116, std=0.000184032990; delta=+9.42018e-8; p=0.9359; trained rho proxy mean=0.840508 < gamma=0.90
Benchmark result
No significant difference vs. the tuned baseline (+0.0%, p=0.9359, wins 3 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.001
- Idea mean
- 0.001
- Effect (Δ)
- 0 (+0.0%; negative = idea better)
- Wins
- 3 / 8 paired seeds
- p-value
- 0.9359 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±0.3%
- Mechanism
- Not confirmed ✗
- Practical effect
- No effect
- Baseline tuning
- swept over 3 configs
The benchmark used the built-in 8-step actuated-pendulum dynamics track and a linear recurrent-weight spectral-norm proxy rather than an explicit learned A-KC observer with separately parameterized latent observation gain. No Santa Fe laser, Lorenz, nonlinear Jacobian constraint, rollout-horizon sweep, runtime/FLOP comparison, or GPU run was included; CUDA was disabled after the shared-GPU process aborted.
How to run: CUDA_VISIBLE_DEVICES='' /home/maxwelhelp/main/bin/python3 bench_stage2.py
Artifacts
- bench_report.json 3.6 KB View Raw
- bench_stage2.py 5.1 KB View Raw
- experiment.py 5.9 KB View Raw
- report.md 1.6 KB View
- report_bench_2026-08-30T183515.md 5.2 KB View
- results.json 3.6 KB View Raw