ISS-Constrained Modular Recurrent Network
Implementation & benchmark of arXiv:2607.14078 — A modular state-space model of human perception, cognition, and decision dynamics
Source paper: A modular state-space model of human perception, cognition, and decision dynamics arXiv:2607.14078 ⓘ · analyzed Aug 30, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Replace an unconstrained recurrent block with two coupled modules: a contractive perceptual estimator and an input-to-state-stable cognitive state transition. Spectral normalization and a controlled Euler residual step enforce a quantitative gain condition, preventing hidden-state explosion while retaining long memory when the contraction factor is chosen close to one.
Formulas
Mathematical statement
Let z_k in R^p be a perceptual latent state, x_k in R^n a cognitive state, and u_k the input. Use z_{k+1}=P_theta(z_k,u_k) and x_{k+1}=C_theta(x_k,z_{k+1},u_k). If P_theta is Lipschitz in z with constant alpha<1, then two perceptual trajectories under the same input satisfy ||z_k-z_tilde_k|| <= alpha^k ||z_0-z_tilde_0||. If the cognitive block satisfies ||C_theta(x,z,u)-C_theta(x_tilde,z_tilde,u)|| <= a||x-x_tilde||+b||z-z_tilde|| with a<1, then its state difference is input-to-state stable. For a residual Euler cognitive update x_{k+1}=x_k+dt[f_theta(x_k,z_{k+1},u_k)-gamma x_k], a sufficient contraction condition is ||I+dt(J_f-gamma I)||_2 <= a<1, where J_f is the Jacobian of f_theta with respect to x and gamma>0 is leak. Under bounded input, the state has a geometric input-to-state bound.
Implementation notes
1. Integration point: implement a recurrent sequence model with a perception block producing z and a cognition block producing x; attach the prediction head to x or to the concatenation [z,x]. Use tanh or another 1-Lipschitz activation. Spectrally normalize every recurrent and input matrix in the perception block so its estimated state Jacobian norm is at most alpha. Implement cognition as a leaky residual update with explicit step size dt and leak gamma. 2. Pseudocode: compute z_next = Perception(z,u); compute f = CognitionMLP(x,z_next,u); compute x_next = x + dt*(f - gamma*x); compute y = Head(x_next); backpropagate task loss plus a penalty max(0,J_bound-a)^2. Estimate J_bound with one or two power iterations on Jacobian-vector products, or conservatively bound it using the product of spectral norms of the cognition layers. Reduce dt or increase gamma whenever the bound exceeds the target a. 3. Computed from the mechanism: the contraction inequalities, geometric decay rate a, and steady-state ISS bound (L_z Z_max + L_u U)/(1-a). Estimated empirically: local Jacobian norms, hidden-state norms, and perturbation decay from paired rollouts. 4. First cheap experiment: compare a vanilla GRU, a spectrally normalized GRU, and this modular model on Sequential MNIST or adding-memory MNIST with matched parameter counts and identical Adam settings. Sweep dt or gamma across the predicted boundary where the measured Jacobian norm reaches one. For two trajectories initialized with perturbation delta_0, the predicted signature is ||delta_k|| approximately proportional to a^k below the boundary and non-decaying or growing above it; fit the slope of log ||delta_k|| and test agreement with log(a) within 20%. Also verify that maximum hidden-state norm remains below the predicted ISS bound and that long-horizon loss degrades more slowly in the stable regime.
Verification
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 9/10
Built and ran an ISS-constrained modular recurrent MVP with scalar Euler verification and a small sequence-sum comparison against a vanilla GRU. The mechanism manifested: the observed stability transition occurred at the predicted gamma=2.0 boundary, decay slopes matched log|q| with relative error below 6e-16, perceptual decay matched log(alpha) to numerical precision, and forced steady-state values agreed with the ISS bound within 0.66%. The modular model did not beat the GRU on this task, so the result supports the stability mechanism but not an accuracy win.
- Agent confidence
- 9/10
- Baseline
- Vanilla GRU: 1,969 parameters, final train MSE 0.0502, test MSE 0.03886.
- Idea
- ISS modular residual model: 1,129 parameters, final train MSE 0.0890, test MSE 0.05825. Toy verification: gamma=2.0 gives the |q|=1 boundary; gamma=2.1 contracts with |q|=0.99; observed decay slopes match predictions; ISS steady-state relative errors are 0.66%, approximately 1e-15, and approximately 4e-16 for gamma 2.1, 3, and 5.
Limitations: The mechanism verification is an analytically matched scalar linear Euler system rather than a full Jacobian sweep of a trained high-dimensional network. The learning comparison used one fixed seed, a short synthetic sequence-sum task, CPU execution after shared-CUDA allocation errors, and did not test Sequential MNIST, matched FLOPs, multiple seeds, or long-horizon generalization.
How to run: python3 iss_experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2607.14078)
Significantly WORSE than the tuned baseline (+99.2%, p=0.0469, wins 2 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0068
- Idea mean
- 0.0135
- Effect (Δ)
- 0.0067 (+99.2%; negative = idea better)
- Wins
- 2 / 8 paired seeds
- p-value
- 0.0469 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±99.1%
- Mechanism
- Not confirmed ✗
- Practical effect
- Hurts
- Baseline tuning
- swept over 3 configs
The standard 4000-train/1000-test, 30-epoch protocol exceeded the environment time budget, so the completed full eight-seed protocol used 400 train/400 test samples and 8 epochs. The systems were not parameter-count matched (baseline 13313 versus idea 6689 parameters); only the registered dynamics track and three gamma values were tested, with no long-horizon rollout metric or full Jacobian spectral-norm sweep.
How to run: python3 iss_bench.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
The ISS modular recurrent system was tested on the structurally correct registered dynamics track with eight paired seeds and a tuned baseline sweep. It performed significantly worse than the GRU baseline, and the trained-model perturbation signature did not confirm the predicted contraction bound; therefore the idea did not produce a benchmark win.
- Baseline
- GRU rnn_small, best lr=0.003; full 8-seed test MSE mean 0.0067647010, std 0.0039439644.
- Idea
- ISS modular residual model, best gamma=1.5, dt=0.1, lr=0.003; full 8-seed test MSE mean 0.0134742440, std 0.0050545781; paired delta +0.0067095430; p=0.04685.
Benchmark result
Significantly WORSE than the tuned baseline (+99.2%, p=0.0469, wins 2 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0068
- Idea mean
- 0.0135
- Effect (Δ)
- 0.0067 (+99.2%; negative = idea better)
- Wins
- 2 / 8 paired seeds
- p-value
- 0.0469 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±99.1%
- Mechanism
- Not confirmed ✗
- Practical effect
- Hurts
- Baseline tuning
- swept over 3 configs
The standard 4000-train/1000-test, 30-epoch protocol exceeded the environment time budget, so the completed full eight-seed protocol used 400 train/400 test samples and 8 epochs. The systems were not parameter-count matched (baseline 13313 versus idea 6689 parameters); only the registered dynamics track and three gamma values were tested, with no long-horizon rollout metric or full Jacobian spectral-norm sweep.
How to run: python3 iss_bench.py
Artifacts
- bench_report.json 2.9 KB View Raw
- iss_bench.py 6.6 KB View Raw
- iss_experiment.py 5.4 KB View Raw
- report.md 1.7 KB View
- report_bench_2026-08-31T095443.md 4.7 KB View
- results.json 2.8 KB View Raw