Koopman Skew-Dilation RNN
Implementation & benchmark of arXiv:2608.11591 — Measure-free Koopman-von Neumann Dynamics and Noncommutative Geometry
Source paper: Measure-free Koopman-von Neumann Dynamics and Noncommutative Geometry arXiv:2608.11591 ⓘ · analyzed Sep 1, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Replace an unconstrained recurrent generator with a skew-adjoint block lift whose projected first channel implements a non-skew effective generator. The hidden state evolves unitarily in the enlarged space, preventing exponential norm blow-up, while the projection can express transient amplification, damping, and non-normal dynamics unavailable to a purely orthogonal recurrent matrix.
Formulas
Mathematical statement
For a Hilbert-space generator V, define its symmetric and antisymmetric parts S=(V+V*)/2 and A=(V-V*)/2, so S*=S, A*=-A, and V=S+A. The paper constructs a skew operator on the lifted space H_lift=ell^2(N) tensor H with diagonal blocks A, upper-diagonal blocks S, and lower-diagonal blocks -S. Therefore L*=-L and exp(tL) is unitary, implying norm preservation in the lifted space. Let P project onto the first channel and let E embed the original state into several channels. The embedding is chosen so that PLE x=(A+S)x=Vx for the first derivative. In a neural implementation, S is a learned symmetric matrix, A is a learned skew-symmetric matrix, L is the resulting block-tridiagonal lift, E is a fixed or learned channel embedding, and P is a decoder projection.
Implementation notes
1. Integration point: implement this as a recurrent cell or linear latent state-space module. For hidden width d, use two to eight lifted channels, giving z in R^(md). Parameterize A=B-B^T and S=C+C^T, where B and C are trainable d by d matrices. Assemble the block-tridiagonal L with diagonal A, upper diagonal S, and lower diagonal -S. Use a fixed embedding E(x)=(x,x,0,...,0) and projection Pz=z^(1), or learn the projection only after validating the fixed version. 2. Pseudocode: construct L; form M=I-eta L/2 and N=I+eta L/2; solve M z_next=N z+E(u); output h=Pz_next; apply the task head to h. Use a dense solve for small models or a block-tridiagonal solver at larger widths. 3. Computed from the paper: the S/A decomposition, skew-adjoint block structure, unitary lifted flow, and projection identity. Estimated empirically: the projected Jacobian PLE, singular values, gradient norms, and approximation error to a target transition map. 4. First cheap experiment: train on sequential MNIST and a length-200 noisy linear-system prediction task, comparing vanilla RNN, orthogonal RNN, and the two-channel lift with matched parameter counts. Measure hidden norms, gradient norms, and prediction error as eta increases. The predicted signature is exact lifted norm preservation, ||z_k||_2=||z_0||_2 up to numerical tolerance for every eta under the Cayley update. Replacing Cayley by explicit Euler should produce norm growth approximately eta^2 ||Lz_k||_2^2 per step. The projected state may transiently amplify, but its gain is bounded by ||P|| ||E||.
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Confirmed ✓
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 finite-channel Koopman skew-dilation module with symmetric/skew parameter decomposition, block-tridiagonal lift, Cayley update, and a PyTorch toy sequence model. Quantitative predictions manifested: ||L+L^T||∞=0 and projection derivative error=1.1e-16; Cayley relative norm error stayed below 5.6e-16 for gamma∈{0,.25,.5,1,2} and eta∈{.05,.2,.5}; the explicit-Euler one-step norm increment exactly matched eta²||Lz||², while 10-step norm ratio grew from 1.04 at gamma=.25 to 12.95 at gamma=2. The toy task ended at MSE 0.0284 for vanilla RNN versus 0.000106 for the lift, but this is only a promising signal because parameter counts and architecture capacity were not strictly matched.
- Agent confidence
- 9/10
- Baseline
- Vanilla RNN final toy MSE 0.0283883; explicit Euler 10-step norm ratio at gamma=2: 12.9465
- Idea
- Cayley relative norm error <=5.6e-16 across 15 scale/timestep settings; Euler observed/predicted one-step increments match to <=5e-16; lift final toy MSE 0.000105752; projected gain remained bounded (reported normalized max 0.7071, corresponding unnormalized gain 1.0)
Limitations: No sequential MNIST experiment, no long-horizon benchmark, no wall-clock/FLOP comparison, and the toy lift has a larger latent state and more parameters than the baseline. The finite lift and dense linear solve do not test the infinite-dimensional theorem or scalable block-tridiagonal implementation.
How to run: python3 koopman_experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2608.11591)
Significantly WORSE than the tuned baseline (+1055.9%, p=0.0081, wins 0 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0015
- Idea mean
- 0.0178
- Effect (Δ)
- 0.0163 (+1055.9%; negative = idea better)
- Wins
- 0 / 8 paired seeds
- p-value
- 0.0081 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±914.6%
- Mechanism
- Confirmed ✓
- Practical effect
- Hurts
- Baseline tuning
- swept over 3 configs
Only the built-in dynamics track was tested. The lift has a two-channel latent state (128 dimensions) versus the GRU's 64-dimensional hidden state, so parameter/capacity matching is imperfect; no long-horizon rollout, wall-clock/FLOP, larger channel counts, block-tridiagonal solver, or sequential-MNIST test was run.
How to run: python3 stage2_bench.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 two-channel Koopman skew-dilation RNN using symmetric/skew parameterization and Cayley recurrence, evaluated end-to-end on the structurally matched actuated-pendulum dynamics track. The mechanism signature was confirmed on a trained model: Cayley relative norm error was 5.96e-7 while 20-step explicit-Euler norm ratio was 1.0036. However, the lift was significantly worse on test MSE than the tuned GRU baseline (delta_mean=+0.01630, permutation p=0.0081), so the promised training benefit did not transfer.
- Baseline
- dynamics/rnn_small, tuned lr=0.01 and 12 epochs; 8-seed mean test MSE 0.0015438102, std 0.0006459184
- Idea
- two-channel Cayley lift, best tested lr=0.01 and 12 epochs; 8-seed mean test MSE 0.0178441483, std 0.0168653353
- Mechanism signature
- map[confirmed:true observed_cayley_relative_norm_error:5.960464477539062e-07 observed_euler_20_step_norm_ratio:1.003595232963562]
- Paired delta
- idea - baseline = +0.0163003380 MSE; idea wins 0/8; permutation p=0.0081
Benchmark result
Significantly WORSE than the tuned baseline (+1055.9%, p=0.0081, wins 0 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0015
- Idea mean
- 0.0178
- Effect (Δ)
- 0.0163 (+1055.9%; negative = idea better)
- Wins
- 0 / 8 paired seeds
- p-value
- 0.0081 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±914.6%
- Mechanism
- Confirmed ✓
- Practical effect
- Hurts
- Baseline tuning
- swept over 3 configs
Only the built-in dynamics track was tested. The lift has a two-channel latent state (128 dimensions) versus the GRU's 64-dimensional hidden state, so parameter/capacity matching is imperfect; no long-horizon rollout, wall-clock/FLOP, larger channel counts, block-tridiagonal solver, or sequential-MNIST test was run.
How to run: python3 stage2_bench.py
Artifacts
- bench_report.json 5.4 KB View Raw
- koopman_experiment.py 5.6 KB View Raw
- report.md 1.7 KB View
- report_bench_2026-09-01T102800.md 4.8 KB View
- results.json 2.6 KB View Raw
- stage2_bench.py 4.6 KB View Raw