Monotone CDT autoencoder bottleneck
Implementation & benchmark of arXiv:2607.17066 — Reduced Order Modeling of One-Dimensional Conservative PDEs via the Cumulative Distribution Transform
Source paper: Reduced Order Modeling of One-Dimensional Conservative PDEs via the Cumulative Distribution Transform arXiv:2607.17066 ⓘ · analyzed Aug 30, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Build an autoencoder whose decoder outputs a monotone quantile function rather than an unconstrained spatial field. The latent representation can be compressed with POD or a neural bottleneck in CDT space, while the decoder guarantees valid transport maps and therefore avoids negative densities, mass drift, and spurious oscillations common in unconstrained reduced-order neural decoders.
Formulas
Mathematical statement
The CDT of a density u is the composition \widehat u=F_u^\dagger\circ F_r, where F_r is the CDF of a fixed reference density r and F_u^\dagger is the generalized inverse of the CDF F_u. Since every quantile function is nondecreasing in p, validity can be enforced by parameterizing its discrete samples q_k as cumulative positive increments. Let z\in\mathbb R^d be the neural latent and let h_ heta(z)\in\mathbb R^K be unconstrained decoder outputs. Define \delta_k=\operatorname{softplus}(h_k)+\epsilon>0 and q_k=q_{\min}+L\sum_{j\le k}\delta_j/(\sum_{j=1}^K\delta_j), which is monotone and remains inside [q_{\min},q_{\max}] with total quantile span L. This is a discretized monotone quantile map and can be inverted to reconstruct a density by pushing the reference mass through q. The paper's POD construction is \widehat{\mathbb U}_k=W_kW_k^ op\widehat{\mathbb U}, where W_k contains the first k orthonormal CDT-space modes; this motivates using a learned or fixed low-dimensional subspace on q instead of reconstructing raw u.
Implementation notes
Use this as the bottleneck of a convolutional or MLP autoencoder for nonnegative 1D fields, especially when the downstream model must decode many transported states. At preprocessing time, normalize each training field u to mass M and compute K quantile samples \widehat q_k=F_u^\dagger(p_k) at p_k=(k-0.5)/K; these are the CDT samples in probability coordinates. The encoder E_\phi maps \widehat q to z\in\mathbb R^d. The decoder produces h=D_ heta(z)\in\mathbb R^K, then applies the exact monotonic parameterization \delta_k=softplus(h_k)+epsilon and q_k=q_min+L cumulative_sum(delta)_k/sum(delta), which is the adapted formula above. Decode q into a physical density by treating q as a piecewise-linear monotone map from reference quantile p to spatial location x: for each reference interval [p_k,p_{k+1}], distribute its mass (p_{k+1}-p_k) across the physical grid cells intersected by [q_k,q_{k+1}], or use a differentiable triangular-kernel push-forward. Train with CDT-space MSE plus physical reconstruction L1 and the explicit mass penalty; monitor the fraction of negative reconstructed cells and total-mass error, which should be zero or near machine precision by construction. For a stronger reduced model, compute an SVD of training q vectors and let E initially be the first d POD coefficients, then fine-tune the encoder and decoder. The first cheap experiment should use advected Gaussian mixtures and square pulses on a 256-point grid, comparing this decoder with a standard convolutional autoencoder at d=2,4,8. Evaluate reconstruction Wasserstein error, physical L1 error, negative-mass violations, and storage. A successful result is substantially lower error at d=2 or d=4 and elimination of decoder-induced negativity; for a translating single pulse, d=2 should be sufficient because the transformed trajectory is affine in the translation.
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 8/10
Built a reproducible monotone CDT bottleneck prototype with cumulative softplus increments, conservative quantile push-forward, invariant checks, and a shared-data POD comparison. The mechanism manifested: monotonicity was 100% across all logit temperatures, the fixed final endpoint error was 4.4e-15, the epsilon-derived increment lower bound held across the sweep, and push-forward mass error was 3.3e-16 with no negative cells. In the toy comparison, CDT-space reconstruction had lower Wasserstein proxy error at d=2, 4, and 8 while eliminating negative outputs, although this is a POD prototype rather than a trained neural autoencoder.
- Agent confidence
- 8/10
- Baseline
- d=2/4/8 physical L1 = 0.6491/0.3795/0.2102; Wasserstein proxy = 0.05450/0.02316/0.01119; negative-cell fraction = 30.9%/29.8%/26.8%; mass error approximately 1e-16.
- Idea
- d=2/4/8 physical L1 = 0.1147/0.0974/0.0925; Wasserstein error = 0.001228/0.0002744/0.0000711; negative-cell fraction = 0%; monotone fraction = 100%; mass error = 3.97e-4/7.94e-5/1.29e-16.
Limitations: The experiment uses POD projections and cumulative-maximum repair rather than training an encoder/decoder neural network. It tests synthetic 1D Gaussian mixtures only, and does not test square pulses, CUDA, optimization speed, learned bottlenecks, or higher-dimensional transport. The physical push-forward is a simple piecewise-uniform discretization.
How to run: python3 experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2607.17066)
Significantly WORSE than the tuned baseline (+89140.8%, p=0.0081, wins 0 / 8 paired seeds).
- Benchmark
- Translated_density_transport
- Model
- shared_mlp
- Paired seeds
- 8
- Baseline mean
- 0.0046
- Idea mean
- 4.1069
- Effect (Δ)
- 4.1023 (+89140.8%; negative = idea better)
- Wins
- 0 / 8 paired seeds
- p-value
- 0.0081 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±61.8%
- Mechanism
- Confirmed ✓
- Practical effect
- Hurts
- Baseline tuning
- swept over 3 configs
Only the registered 1D translated-density transport track was tested. Higher-dimensional fields, POD bottlenecks, learned latent dimensions d=2/4/8, alternative push-forward discretizations, and longer training budgets were not evaluated.
How to run: python3 stage2_transport_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
The full structurally matched benchmark was completed on the registered translated_density_transport track with independently trained baseline and monotone CDT systems, identical MLP capacity, shared learning-rate grid, and eight paired seeds. The monotone mechanism was confirmed quantitatively, but task MSE was significantly worse for the idea: 4.1069303155 versus 0.0046020751 for the baseline, delta +4.1023282403, permutation p=0.0081.
- Baseline
- Best lr=0.009; full 8-seed test MSE mean 0.004602075146976858.
- Idea
- Best lr=0.009; full 8-seed test MSE mean 4.106930315494537; monotonic fraction 1.0; negative fraction 0.0; mass proxy error 2.808868893033889e-08.
Benchmark result
Significantly WORSE than the tuned baseline (+89140.8%, p=0.0081, wins 0 / 8 paired seeds).
- Benchmark
- Translated_density_transport
- Model
- shared_mlp
- Paired seeds
- 8
- Baseline mean
- 0.0046
- Idea mean
- 4.1069
- Effect (Δ)
- 4.1023 (+89140.8%; negative = idea better)
- Wins
- 0 / 8 paired seeds
- p-value
- 0.0081 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±61.8%
- Mechanism
- Confirmed ✓
- Practical effect
- Hurts
- Baseline tuning
- swept over 3 configs
Only the registered 1D translated-density transport track was tested. Higher-dimensional fields, POD bottlenecks, learned latent dimensions d=2/4/8, alternative push-forward discretizations, and longer training budgets were not evaluated.
How to run: python3 stage2_transport_bench.py
Artifacts
- bench_report.json 5.7 KB View Raw
- custom_transport_track.py 0.9 KB View Raw
- experiment.py 4.4 KB View Raw
- report.md 1.6 KB View
- report_bench_2026-08-31T115721.md 7.7 KB View
- results.json 2.8 KB View Raw
- stage2_transport_bench.py 5.6 KB View Raw