Dual-Ensemble Latent Transition Model
Implementation & benchmark of arXiv:2607.19452 — Markov state models revisited: Principles and algorithms for unbiased observables
Source paper: Markov state models revisited: Principles and algorithms for unbiased observables arXiv:2607.19452 ⓘ · analyzed Aug 30, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Train a latent recurrent or state-space model with separate equilibrium and source-sink transition matrices instead of forcing one transition matrix to explain all latent dynamics. Use the equilibrium matrix for stationary occupancy and reversible statistics, and use a recycling matrix for directed hitting times, committors, and source-to-target flow; this should remove fixed-lag coarse-graining bias in latent world models.
Formulas
Mathematical statement
Let $z_t$ be a discrete or softly clustered latent state with states $i,j\in\{1,\ldots,K\}$. The equilibrium transition matrix is $P_{ij}=\Pr(z_{t+\tau}=j\mid z_t=i)$ under the equilibrium data distribution, while the source-sink recycling matrix is $Q_{ij}=\Pr(z_{t+\tau}=j\mid z_t=i)$ under trajectories initialized in source set $A$ and reset to the source after first entering sink set $B$. Let $\pi$ satisfy $\pi^\top P=\pi^\top$ and let $\tilde\pi$ satisfy $\tilde\pi^\top Q=\tilde\pi^\top$. For membership weights $C_{i\alpha}\geq0$ assigning microscopic state $\alpha$ to coarse state $i$, the unbiased coarse equilibrium operator is $P^c_{ij}=\frac{\sum_{\alpha,\beta}C_{i\alpha}\pi_\alpha P_{\alpha\beta}C_{j\beta}}{\sum_\alpha C_{i\alpha}\pi_\alpha}$, and the source-sink operator is $Q^c_{ij}=\frac{\sum_{\alpha,\beta}C_{i\alpha}\tilde\pi_\alpha Q_{\alpha\beta}C_{j\beta}}{\sum_\alpha C_{i\alpha}\tilde\pi_\alpha}$. The transferable property is ensemble matching: $P^c$ estimates equilibrium observables, whereas $Q^c$ estimates recycling or nonequilibrium observables.
Implementation notes
1. Integration point: insert the module between an encoder and a latent transition model. Encode each observation as soft memberships $c_t=\mathrm{softmax}(f_\theta(x_t))\in\mathbb{R}^K$. Use one transition-logit head $g_P(h_t)$ for ordinary trajectories and a second head $g_Q(h_t,a_t,b_t)$ for trajectories carrying source and sink labels. Apply a row-wise softmax to obtain $P_\theta$ and $Q_\theta$. 2. Pseudocode: collect equilibrium pairs $(c_t,c_{t+\tau})$ and accumulate $N^P_{ij}\mathrel{+}=c_{t,i}c_{t+\tau,j}$; set $P_{ij}=N^P_{ij}/(\sum_jN^P_{ij}+\epsilon)$ and optimize transition cross-entropy. Generate source-sink rollouts; whenever a rollout first enters $B$, record its transition and reset its latent state to a source sample. Accumulate $N^Q$ identically and fit $Q$. At evaluation, obtain stationary vectors by power iteration $v_{n+1}=v_nP$ or $v_{n+1}=v_nQ$, selecting the operator according to the observable. 3. Taken from the paper: two ensemble-specific transition matrices, stationary weighted averaging, and recycling semantics. Estimated empirically: memberships, counts, stationary vectors, and bootstrap uncertainty. 4. First cheap experiment: construct the paper's eight-state Markov chain, merge adjacent microscopic states into four coarse states, and compare a single-matrix latent model with this dual model at lag $\tau=1$. Repeat on a small grid-world or MuJoCo dataset with source and target regions. Measure stationary occupancy, mean first-passage time, committors, and directed flux. The falsifiable prediction is that the dual model's coarse stationary vector converges to the aggregated microscopic vector $(18,12,6,1)/37\approx(0.486,0.324,0.162,0.027)$, whereas the single-matrix model retains a fixed-lag bias. Increasing data should reduce dual-model error approximately as $N^{-1/2}$ without requiring a longer lag.
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Not reproduced ✗
Stage 2 · Practical benchmark result: Inconclusive
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 dual-operator finite-state MVP with equilibrium matrix P and source-sink recycling matrix Q, plus stationary-weighted coarse-graining and MFPT evaluation. Matched operators recovered their respective coarse stationary distributions across lags 1–32 to about 1e-15 error, and the recycling MFPT matched the direct first-passage value to 3.8e-11 while the equilibrium-only estimate had errors around 797–806 steps. Finite-sample dual occupancy error decreased with N, although the fitted slope was -0.368 rather than the predicted -0.5, so that scaling claim is only partially supported.
- Agent confidence
- 8/10
- Baseline
- Equilibrium-only P used for NESS MFPT: absolute errors 805.667, 803.583, 801.500, 799.417, 797.333 across reset-mixture sweep; NESS occupancy RMS errors 0.1344, 0.1192, 0.0937, 0.0795 for N=400,1600,6400,25600.
- Idea
- Matched dual P/Q stationary errors <=6.1e-15 across lags 1–32; recycling MFPT error 0.000000 numerically versus direct MFPT 837.5; dual NESS occupancy RMS errors 0.1093, 0.0793, 0.0493, 0.0234, with fitted log-log slope -0.368.
Limitations: Synthetic eight-state Markov chain only; no learned encoder, soft memberships, neural training, optimization comparison, wall-clock benchmark, grid-world/MuJoCo data, or joint P/Q learning. The recycling operator is specified from exact dynamics rather than learned from raw source-sink rollouts, and the finite-sample scaling sweep is limited by rare-sink effects and four sample sizes.
How to run: python3 dual_ensemble_experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2607.19452)
Ahead of the baseline (−4.0%) but not statistically significant (p=0.7975, wins 4 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0014
- Idea mean
- 0.0014
- Effect (Δ)
- -0.0001 (−4.0%; negative = idea better)
- Wins
- 4 / 8 paired seeds
- p-value
- 0.7975 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- n/a
- Mechanism
- Not confirmed ✗
- Practical effect
- Inconclusive
- Baseline tuning
- swept over 3 configs
The fixed dynamics track has no explicit source/sink labels or recycling rollouts. The implementation therefore cannot validly test latent occupancy, committors, MFPT, or directed flux. Its Q evaluation mask uses observed targets and is target leakage; no custom track was built.
How to run: python3 bench_dual.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
Implemented a local dual-head GRU benchmark on the structurally matched dynamics track, with parity-matched learning-rate sweeps and eight paired seeds. Overall test MSE improved from 0.0014198302 to 0.0013625476, but the paired permutation test was non-significant (delta=-5.73e-05, p=0.7975), so there is no validated benchmark win. The source-sink subset improvement is invalid evidence because Q selection used observed test targets, creating evaluation leakage.
- Baseline
- Best lr=0.01; full 8-seed test MSE mean 0.0014198302379, std 0.0003983911490.
- Idea
- Best lr=0.01; full 8-seed test MSE mean 0.0013625475767, std 0.0004764418205; paired delta=-0.0000572826611, 4/8 wins, permutation p=0.7975.
- Mechanism signature
- Leaky target-selected subset MSE: baseline=0.0010878387475, idea=0.0006060761043; rejected as valid confirmation.
Benchmark result
Ahead of the baseline (−4.0%) but not statistically significant (p=0.7975, wins 4 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0014
- Idea mean
- 0.0014
- Effect (Δ)
- -0.0001 (−4.0%; negative = idea better)
- Wins
- 4 / 8 paired seeds
- p-value
- 0.7975 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- n/a
- Mechanism
- Not confirmed ✗
- Practical effect
- Inconclusive
- Baseline tuning
- swept over 3 configs
The fixed dynamics track has no explicit source/sink labels or recycling rollouts. The implementation therefore cannot validly test latent occupancy, committors, MFPT, or directed flux. Its Q evaluation mask uses observed targets and is target leakage; no custom track was built.
How to run: python3 bench_dual.py
Artifacts
- REPORT.md 3.4 KB View
- bench_dual.py 6.1 KB View Raw
- bench_report.json 3.7 KB View Raw
- dual_ensemble_experiment.py 3.6 KB View Raw
- report.md 1.8 KB View
- report_bench_2026-08-31T124819.md 3.8 KB View