# Forward-Intersection Spectral Latent Dynamics

- ID: 1719
- Canonical URL: https://synthcore.org/idea/1719/forward-intersection-spectral-latent-dynamics
- API JSON: https://synthcore.org/api/idea/1719.json
- API Markdown: https://synthcore.org/api/idea/1719.md
- Verification status: mech_ok_no_baseline
- Source: [arXiv:2608.02661](https://arxiv.org/abs/2608.02661)
- Category: dynamics
- Solves: stability, accuracy, generalization
- ML areas: ssm, world-model, training-dynamics
- Math tags: dynamical-systems, linear-algebra, numerical-analysis, spectral-theory
- Ratings: usefulness 7/10; difficulty 5/10; novelty 7/10

## Idea description

Replace the raw transition matrix of a Koopman-inspired latent model or linear state-space model by its restriction to a data-derived forward-compatible subspace. The subspace is obtained by repeatedly intersecting the current latent dictionary with its image under the learned dynamics, suppressing directions that generate spurious or unsupported eigenmodes while retaining nonzero Koopman modes represented by the dictionary.

## Mathematical statement

The paper defines the forward-intersection chain by S_0 := G and S_{j+1} := S_j ∩ K S_j, where G is the finite-dimensional dictionary subspace, K is the Koopman action, and S_j is the level-j compatible subspace. The spaces are nested, so each additional level requires a latent direction to be both in the current representation and reachable as the image of another represented direction. For a learned finite-dimensional transition matrix A acting on coefficient space R^d, use the adapted projected operator A_j := Q_j^T A Q_j, where Q_j in R^{d×r_j} has orthonormal columns spanning S_j; the actual latent update is z_{t+1} = Q_j A_j Q_j^T z_t. Numerically, if Q_j spans S_j, compute S_{j+1} from the intersection range(Q_j) ∩ range(A Q_j). A basis can be extracted from the nullspace of [Q_j, -A Q_j]: for [u;v] in ker([Q_j, -A Q_j]), the vector Q_j u lies in the intersection. The paper's preservation claim is that represented Koopman eigenpairs with nonzero eigenvalue are preserved by compatible filtered levels; in the neural adaptation this motivates checking whether useful eigenvalues of A remain unchanged while unsupported modes disappear. The coordinate projector uses the fixed coefficient-space Euclidean geometry and therefore needs no estimated feature Gram matrix, but it is basis-dependent.

## Key formulas

- $$\mathcal{S}_{0}:=\mathcal{G},\qquad \mathcal{S}_{j+1}:=\mathcal{S}_{j}\cap K\mathcal{S}_{j}.$$
- $$A_j:=Q_j^{\top}A Q_j,\qquad z_{t+1}=Q_jA_jQ_j^{\top}z_t,$$
- $$\mathcal{S}_{j+1}=\operatorname{range}(Q_j)\cap\operatorname{range}(AQ_j),\qquad [Q_j\; -AQ_j]\begin{bmatrix}u\\v\end{bmatrix}=0,$$
- $$\widehat A=Y X^{\dagger},\qquad X=[\phi(x_0),\ldots,\phi(x_{T-1})],\quad Y=[\phi(x_1),\ldots,\phi(x_T)].$$

## Implementation notes

Integrate this at the transition layer of a latent world model or structured state-space model. Let an encoder produce z_t = phi_theta(x_t) in R^d, and learn a matrix A such that z_{t+1} approximately equals A z_t. Construct X and Y from a rolling buffer of consecutive latent states and estimate the transition with either the trainable A or the least-squares estimate \widehat A = YX^\dagger. Every N optimizer steps, freeze A and compute the compatible subspace. Start with Q_0 = I_d. For level j, form M = [Q_j, -A Q_j], compute an SVD M = U Sigma V^T, retain right-singular vectors associated with singular values below tolerance tau, and map their first r_j coordinates through Q_j to obtain candidate intersection vectors. More robustly under noise, compute principal angles between range(Q_j) and range(AQ_j), retain directions whose angles are below tau, and orthonormalize them with QR to obtain Q_{j+1}. Stop when r_{j+1}=r_j or after J levels. During subsequent forward passes use z_next = Q_j(Q_j^T A Q_j)Q_j^T z rather than Az. Add the usual one-step and multi-step reconstruction losses; optionally add a penalty ||(I-Q_jQ_j^T)Az_t||^2 so the learned transition respects the selected subspace. Recompute Q periodically and initially stop gradients through the SVD basis. The paper supplies the intersection construction and projected operator; tau, refresh period N, rollout horizon, and penalty weight are empirical. First test a 2-layer MLP encoder on Lorenz-63 or nonlinear pendulum trajectories with d=32, comparing j=0, 1, and 2 against the unfiltered baseline for 1-, 10-, and 100-step prediction. Success means lower long-horizon error, fewer transition eigenvalues with modulus above one, and less rollout drift at equal parameter count.

## Verification

- Status: mech_ok_no_baseline
- Mechanism evidence: yes
- Mechanism confirmed: yes
- Practical verdict: harms
- Verdict: Built forward_intersection.py with SVD nullspace intersections and normalized principal-angle filtering, plus mini_experiment.py for noisy least-squares snapshots. The toy predictions matched: the finite-tolerance transition occurred at alpha=0.26536 predicted versus between 0.263 and 0.270 observed, supported eigenvalue error was 2.22e-16, and exact intersection dimensions were 4 at alpha=0 and 3 for nonzero leakage. In the noisy comparison, spectral radius fell from 1.29825 to 0.90145, while 10-step MSE only changed from 0.085465 to 0.085447, so stability filtering is real but an accuracy gain was not demonstrated.

### Mechanism check

- Verdict: Built forward_intersection.py with SVD nullspace intersections and normalized principal-angle filtering, plus mini_experiment.py for noisy least-squares snapshots. The toy predictions matched: the finite-tolerance transition occurred at alpha=0.26536 predicted versus between 0.263 and 0.270 observed, supported eigenvalue error was 2.22e-16, and exact intersection dimensions were 4 at alpha=0 and 3 for nonzero leakage. In the noisy comparison, spectral radius fell from 1.29825 to 0.90145, while 10-step MSE only changed from 0.085465 to 0.085447, so stability filtering is real but an accuracy gain was not demonstrated.
- Confidence: 8/10
- Limitations: No neural encoder or learned nonlinear world model was trained; the experiment uses a hand-constructed linear toy with one unstable nuisance mode and a small noisy least-squares snapshot test. It does not test computational overhead, multi-level learned refresh schedules, Lorenz/pendulum data, or generalization beyond the supported-mode setup.

### Practical benchmark

- Paired seeds: 8
- Baseline mean: 0
- Idea mean: 0
- p-value: 0.0081
- Paired wins: 0/8
- Benchmark verdict: idea worse (significant)

## Artifacts

- [bench_output.json](https://synthcore.org/code/635/bench_output.json)
- [bench_runner.py](https://synthcore.org/code/635/bench_runner.py)
- [forward_intersection.py](https://synthcore.org/code/635/forward_intersection.py)
- [mini_experiment.py](https://synthcore.org/code/635/mini_experiment.py)
- [report.md](https://synthcore.org/code/635/report.md)
- [report_bench_2026-08-31T201756.md](https://synthcore.org/code/635/report_bench_2026-08-31T201756.md)
- [Download all files as ZIP](https://synthcore.org/download/635)

## Disclaimer

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