Differentiable Persistence Landscape Layer
Implementation & benchmark of arXiv:2608.08858 — A Hilbert space embedding of persistence diagrams and barcodes
Source paper: A Hilbert space embedding of persistence diagrams and barcodes arXiv:2608.08858 ⓘ · analyzed Sep 1, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Convert each persistence diagram produced from an input, intermediate feature map, or graph filtration into a discretized persistence landscape and feed it to an MLP or concatenate it with ordinary neural features. Unlike a variable-size list of birth-death pairs, the landscape has a fixed tensor shape and is provably nonexpansive with respect to the diagram Wasserstein distance.
Formulas
Mathematical statement
For a point or interval \(x=(b,d)\) with \(b<d\), define its tent function by \(\triangle_x(t)=\max\{0,\min(t-b,d-t)\}\). For a finite diagram \(\alpha=\sum_{j=1}^{n}x_j\), Definition 2.6 defines the persistence landscape by \(\Lambda_\alpha(k,t)=\operatorname{kmax}_{j=1}^{n}(\triangle_{x_j}(t))\), where \(\operatorname{kmax}\) is the \(k\)-th largest value and missing values are zero. Theorem 4.6 states that for \(1\le p\le\infty\), \(\|\Lambda_\alpha-\Lambda_\beta\|_{L^p(\mathbb{N}\times\mathbb{R})}\le W_p^\triangle(\alpha,\beta)\), where \(W_p^\triangle\) is the \(p\)-Wasserstein matching distance using the diagonal cost \(d_q(x,y)=\|\triangle_x-\triangle_y\|_q\). For \(p=2\), discretizing \(t\) gives a Euclidean Hilbert feature vector. The inequality means diagram perturbations cannot be amplified by the landscape map.
Implementation notes
Integrate this after a differentiable or frozen topological preprocessing step that produces a persistence diagram per example, graph, image, or intermediate feature channel. The tensor input is a padded diagram \(\{(b_j,d_j)\}_{j=1}^{N}\), with points of persistence below a threshold optionally removed. Choose a fixed grid \(t_r=t_{\min}+r\Delta t\), retain the first \(K\) landscape levels, and mask padded points. Compute v[j,r] = max(0, min(t[r]-birth[j], death[j]-t[r])), sort the \(N\) values along the point axis, and set L[k,r] to the \(k\)-th largest value, padding nonexistent levels with zero. Flatten or average-pool L, normalize by the grid measure, and concatenate it with the baseline neural representation before the prediction head. In pseudocode: v = relu(min(t[None,:]-birth[:,None], death[:,None]-t[None,:])); L = topk(v, K, dim=points); z = concat(backbone(x), flatten(L)). The paper supplies the stability guarantee; estimate only grid truncation error, persistence threshold effects, and finite-\(K\) truncation empirically. Start with MUTAG or a small CIFAR-10 filtration model, comparing landscapes against persistence images, padded birth-death coordinates, and a diagram-distance baseline. Measure clean accuracy and degradation under synthetic birth/death noise, diagram cardinality changes, and input perturbations. Success is equal or better clean accuracy with smoother predictions and lower accuracy degradation as perturbation magnitude increases.
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 9/10
Built a differentiable PyTorch persistence-landscape layer with masking, fixed grid, top-K levels, flattening, and a NumPy reference implementation. The mechanism manifested: single-point landscape distance divided by matched tent distance was 0.9995–0.99999, the 100 multi-point trials had maximum ratio 0.99970 and mean 0.90268, and grid integration error decreased from 3.46e-4 at dt=0.02 to 2.98e-6 at dt=0.00125. The toy classifier showed no accuracy win: both padded birth-death coordinates and landscapes achieved 1.0 clean and noisy accuracy.
- Agent confidence
- 9/10
- Baseline
- Padded birth-death MLP: 1.0 clean accuracy and 1.0 at noise sigma 0.01, 0.03, and 0.07.
- Idea
- Landscape MLP: 1.0 clean accuracy and 1.0 at noise sigma 0.01, 0.03, and 0.07. Stability checks: single-point ratios 0.9995–0.99999; multi-point maximum ratio 0.99970 and mean 0.90268; finite nonzero autograd gradients; grid error 3.46e-4 to 2.98e-6 as dt decreases.
Limitations: The benchmark uses synthetic equal-cardinality diagrams and a tiny MLP, not MUTAG, CIFAR-10, or diagrams generated by an actual persistence algorithm. It does not compare persistence images, input perturbations, varying cardinality with real padding masks, diagonal matching, finite-K truncation error, or end-to-end differentiable topological preprocessing.
How to run: python3 landscape_experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2608.08858)
No significant difference vs. the tuned baseline (+200.0%, p=0.1196, wins 0 / 8 paired seeds).
- Benchmark
- Persistence_diagrams
- Model
- mlp_tiny
- Paired seeds
- 8
- Baseline mean
- 0.0012
- Idea mean
- 0.0037
- Effect (Δ)
- 0.0025 (+200.0%; negative = idea better)
- Wins
- 0 / 8 paired seeds
- p-value
- 0.1196 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- n/a
- Mechanism
- Not confirmed ✗
- Practical effect
- Inconclusive
- Baseline tuning
- swept over 3 configs
The registered custom task uses synthetic diagrams rather than diagrams generated from real images or graphs. Persistence images, diagonal matching, larger backbones, input perturbations, and end-to-end differentiable topological preprocessing were not tested. The mechanism signature is a direct layer probe rather than valid trained-model behavioral evidence.
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: 10/10
Implemented and benchmarked a differentiable persistence landscape layer in a separately trained MLP system on the registered persistence_diagrams custom track. The baseline achieved lower test error than the landscape system, with paired delta +0.00250 and permutation p=0.11955, so there was no significant win. The observed stability-probe ratio was 1.342 versus the claimed bound 1.0, so that mechanism check was not confirmed.
- Baseline
- Best lr=0.003; full 8-seed mean error 0.00125, std 0.00217; sweep means: lr=0.001 -> 0.03625, lr=0.003 -> 0.00250, lr=0.01 -> 0.00250.
- Idea
- Best lr=0.001; 8-seed mean error 0.00375, std 0.00331; per-seed errors [0.0,0.005,0.005,0.01,0.0,0.005,0.0,0.005].
Benchmark result
No significant difference vs. the tuned baseline (+200.0%, p=0.1196, wins 0 / 8 paired seeds).
- Benchmark
- Persistence_diagrams
- Model
- mlp_tiny
- Paired seeds
- 8
- Baseline mean
- 0.0012
- Idea mean
- 0.0037
- Effect (Δ)
- 0.0025 (+200.0%; negative = idea better)
- Wins
- 0 / 8 paired seeds
- p-value
- 0.1196 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- n/a
- Mechanism
- Not confirmed ✗
- Practical effect
- Inconclusive
- Baseline tuning
- swept over 3 configs
The registered custom task uses synthetic diagrams rather than diagrams generated from real images or graphs. Persistence images, diagonal matching, larger backbones, input perturbations, and end-to-end differentiable topological preprocessing were not tested. The mechanism signature is a direct layer probe rather than valid trained-model behavioral evidence.
How to run: python3 stage2_bench.py
Artifacts
- bench_report.json 3.4 KB View Raw
- landscape_experiment.py 6.8 KB View Raw
- persistence_track.py 1.1 KB View Raw
- report.md 1.6 KB View
- report_bench_2026-09-01T111728.md 4.0 KB View
- results.json 2.3 KB View Raw
- stage2_bench.py 4.3 KB View Raw