✗ Failed on benchmark 2026

Recursive Noise-Corrected Latent Dynamics

Implementation & benchmark of arXiv:2607.17065 — A recursive subspace based method for errors-in-variables model identification of time-varying systems

Usefulness8/10
Difficulty6/10
Novelty6/10

Source paper: A recursive subspace based method for errors-in-variables model identification of time-varying systems arXiv:2607.17065 ⓘ · analyzed Aug 30, 2026

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

Idea description

Insert an online errors-in-variables subspace estimator into a latent state-space neural network. A fixed recent window of encoder features and controls is used to estimate a noise-corrected low-dimensional state subspace and refit the latent transition and readout matrices, allowing the model to follow sensor degradation or changing operating conditions without replaying the entire dataset.

Formulas

$$C_k=\gamma C_{k-1}+(1-\gamma)o_ko_k^\top,\qquad \widehat R_k=\gamma\widehat R_{k-1}+(1-\gamma)\operatorname{diag}(r_kr_k^\top),$$
$$S_k=\frac{(C_k-\widehat R_k)+(C_k-\widehat R_k)^\top}{2},\qquad S_kU_k=U_k\Lambda_k,\qquad r_k=\#\{i:\lambda_{i,k}>\tau_{i,k}\},\qquad x_k=U_k^\top o_k,$$
$$[\widehat A_k\ \widehat B_k]=\arg\min_{A,B}\sum_{j=k-L+1}^{k-1}\gamma^{k-1-j}\left\|x_{j+1}-Ax_j-Bu_j\right\|_2^2+\lambda\left(\|A\|_F^2+\|B\|_F^2\right),$$
$$A_k\leftarrow(1-\epsilon)\frac{A_k}{\max\left(1,\rho(A_k)/(1-\epsilon)\right)},\qquad \rho(A_k)=\max_i|\operatorname{eig}_i(A_k)|.$$

Mathematical statement

Let $o_k\in\mathbb{R}^{p}$ be an observed feature vector, $u_k\in\mathbb{R}^{m}$ an input, and $o_k=z_k+\varepsilon_k$ with unknown diagonal measurement-noise covariance $R_k=\operatorname{diag}(\sigma_{1,k}^2,\ldots,\sigma_{p,k}^2)$. Maintain exponentially weighted covariance statistics with forgetting factor $\gamma\in(0,1]$: $C_k=\gamma C_{k-1}+(1-\gamma)o_ko_k^\top$ and $\widehat R_k=\gamma\widehat R_{k-1}+(1-\gamma)\operatorname{diag}(r_kr_k^\top)$, where $r_k=o_k-\widehat o_k$ is the decoder residual. Form the corrected covariance $S_k=C_k-\widehat R_k$, symmetrize it, and retain eigenvectors whose eigenvalues exceed a noise floor. If $U_k\in\mathbb{R}^{p\times r_k}$ contains the retained eigenvectors, define latent coordinates $x_k=U_k^\top o_k$. Fit $x_{k+1}=A_kx_k+B_ku_k+\xi_k$ by weighted ridge regression, and project $A_k$ to spectral radius below $1-\epsilon$ for stable free-running prediction. The essential transferable mechanism is recursive low-rank covariance tracking after subtracting heteroskedastic observation noise.

Implementation notes

1. Exact integration point: use a small neural encoder $e_\theta$ to map raw observations to $o_k$, and a decoder or prediction head to reconstruct observations. Every $L$ steps, or once per minibatch in streaming training, run the recursive estimator on the last $L$ encoded features and controls. Use the resulting $U_k$ as a stop-gradient coordinate transform, and train a latent SSM predictor with $x_{k+1}=A_kx_k+B_ku_k$; alternatively initialize an SSM transition from $(A_k,B_k)$ and continue gradient training. 2. Pseudocode: compute $o=e_\theta(y)$ and residual $r=y-\operatorname{decode}(o)$; update $C\leftarrow\gamma C+(1-\gamma)oo^\top$ and $R\leftarrow\gamma R+(1-\gamma)\operatorname{diag}(rr^\top)$; eigendecompose $S=C-R$; retain eigenvectors with $\lambda_i>\tau_i=cR_{ii}$ or a validation-calibrated threshold; project $x=U^\top o$; solve the weighted ridge regression for $A,B$; project $A$ to $\rho(A)\leq1-\epsilon$; train the encoder and decoder using reconstruction plus latent one-step and multistep prediction loss. 3. Computed from the paper's mechanism: recursive covariance, fixed-lag statistics, noise-corrected PCA, and recursive model refitting. Estimated empirically: residual-based $R$, threshold constant $c$, forgetting factor $\gamma$, and ridge coefficient $\lambda$. 4. First cheap experiment: use a noisy Lorenz-63 or switched linear dynamical system, encode observations with a two-layer MLP, and compare a standard neural SSM, online PCA initialization, and this method. Inject a sensor variance jump at time $T$ and a transition-matrix change at $2T$. The quantitative prediction is that corrected PCA will suppress dimensions whose eigenvalues are below the estimated noise floor, while the uncorrected baseline will increase rank after the variance jump. For a scalar parameter jump, fitted $A_k$ should adapt exponentially with characteristic time approximately $1/(1-\gamma)$ samples; measure this against the predicted lag within 20%. Stable rollout divergence should begin only when unconstrained estimated $\rho(A_k)$ exceeds one, and the spectral projection should prevent that boundary.

Verification

Failed on benchmark

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 8/10

Built a NumPy MVP for recursive noise-corrected covariance tracking, latent subspace extraction, weighted ridge transition refitting, and spectral-radius projection. The three mechanism-level checks matched predictions: corrected top eigenvalues stayed near 4.0 as noise variance increased, EWMA 63% response steps matched -1/log(gamma) within discrete-rounding error, and all projected radii were below 0.95. In the switched linear toy, corrected dynamics achieved MSE 0.02544 versus 0.02711 for raw PCA, but the fitted transitions were already stable, so no empirical instability-prevention win was observed.

Agent confidence
8/10
Baseline
Raw PCA, unprojected: post-change clean-observation MSE 0.0271059; mean reported rank 3.0; maximum fitted spectral radius 0.75384.
Idea
Noise-corrected PCA with stable projection: post-change clean-observation MSE 0.0254437; mean thresholded rank 0.463; maximum fitted spectral radius 0.75437. Sanity sweeps: corrected eigenvalue approximately 4.012-4.040 for noise variances 0.25-4 versus raw 4.262-8.018; EWMA observed 63% steps 5,10,20,50,100 for gamma 0.8,0.9,0.95,0.98,0.99 versus predictions 4.48,9.49,19.50,49.50,99.50; projected radii never exceeded 0.9025.

Limitations: The decoder residual stream used the known simulated sensor residual rather than a trained neural encoder/decoder residual, so this validates the covariance mechanism rather than full end-to-end neural SSM training. Only one deterministic switched-linear toy stream, one window/ridge configuration, and a fixed retained rank for regression were tested; no Lorenz system, learned encoder, compute-speed comparison, or multi-seed statistical test was run.

How to run: python3 experiment.py

Stage 2 — Benchmark vs. tuned baseline (arXiv:2607.17065)

Significantly WORSE than the tuned baseline (+291.6%, p=0.0081, wins 0 / 8 paired seeds).

Benchmark
Dynamics forecasting
Model
rnn_small
Paired seeds
8
Baseline mean
0.0002
Idea mean
0.0008
Effect (Δ)
0.0006 (+291.6%; negative = idea better)
Wins
0 / 8 paired seeds
p-value
0.0081 (permutation test, 20 000 shuffles)
Smallest detectable effect
±103.2%
Mechanism
Not confirmed ✗
Practical effect
Hurts
Baseline tuning
swept over 6 configs
Limitations:

Only the built-in actuated-pendulum dynamics track was tested; no sensor-degradation shift or longer free-running rollout benchmark was included. The intervention used GRU hidden-state innovations as a residual proxy rather than a separately trained decoder residual, and the custom loop was evaluated for 10 epochs with the small benchmark dataset.

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: 10/10

Built a local recursive noise-corrected latent-dynamics training loop using the matched dynamics track and rnn_small architecture, with EWMA covariance correction, latent ridge refitting, and spectral-radius projection. Across 8 paired seeds, the idea was significantly worse than the tuned Adam baseline: mean MSE 0.0007997 versus 0.0002042, delta +0.0005955, permutation p=0.0081, with zero per-seed wins. The EWMA lag prediction matched (10 observed versus 9.49 predicted), but the trained-model projected radius reached 0.9500045, so the quantitative mechanism signature was not marked confirmed.

Baseline
dynamics/rnn_small; tuned lr=0.01, weight_decay=0.0; full 8-seed test MSE mean 0.0002041958, std 0.0001094250; per-seed [0.00037123, 0.00033986, 0.00007116, 0.00019244, 0.00017716, 0.00011334, 0.00007964, 0.00028874].
Idea
Recursive corrected latent dynamics; best idea cfg lr=0.003, weight_decay=0.0, gamma=0.9; full 8-seed test MSE mean 0.0007996946, std 0.0002870529; per-seed [0.00093072, 0.00133438, 0.00055227, 0.00101850, 0.00040186, 0.00050697, 0.00085517, 0.00079769].
Paired comparison
delta_mean +0.0005954988 (idea-baseline; lower is better), 0/8 idea wins, permutation p=0.0081, verdict idea worse (significant).

Benchmark result

Significantly WORSE than the tuned baseline (+291.6%, p=0.0081, wins 0 / 8 paired seeds).

Benchmark
Dynamics forecasting
Model
rnn_small
Paired seeds
8
Baseline mean
0.0002
Idea mean
0.0008
Effect (Δ)
0.0006 (+291.6%; negative = idea better)
Wins
0 / 8 paired seeds
p-value
0.0081 (permutation test, 20 000 shuffles)
Smallest detectable effect
±103.2%
Mechanism
Not confirmed ✗
Practical effect
Hurts
Baseline tuning
swept over 6 configs
Limitations:

Only the built-in actuated-pendulum dynamics track was tested; no sensor-degradation shift or longer free-running rollout benchmark was included. The intervention used GRU hidden-state innovations as a residual proxy rather than a separately trained decoder residual, and the custom loop was evaluated for 10 epochs with the small benchmark dataset.

How to run: python3 bench_experiment.py

Artifacts

Implementation overview ⬇ Download all as ZIP 6 files · code, reports and structured results