Coulomb transport loss for anti-collapse generation
Implementation & benchmark of arXiv:2607.12579 — Wasserstein gradient flows for Coulomb discrepancies
Source paper: Wasserstein gradient flows for Coulomb discrepancies arXiv:2607.12579 ⓘ · analyzed Aug 30, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Train a generator with a Coulomb discrepancy rather than, or in addition to, a local adversarial or reconstruction loss. The induced force attracts generated mass toward the target while repelling excess source mass, giving a geometry-aware anti-collapse regularizer.
Formulas
Mathematical statement
The paper evolves a source probability measure \(\rho_t\) toward a target probability measure \(\mu\) by \(\partial_t\rho-\operatorname{div}(\rho\nabla \mathsf g*(\rho-\mu))=0\). Here \(\rho\) is the generated-data distribution, \(\mu\) is the target distribution, \(\mathsf g\) is the Coulomb Green's function, and \(*\) denotes convolution. The corresponding velocity is \(v_\rho(x)=-\nabla\mathsf g*(\rho-\mu)(x)\). On the torus, \(-\Delta\mathsf g=\delta_0-1\), so if \(\sigma=\rho-\mu\) and \(u=\mathsf g*\sigma\), then \(-\Delta u=\sigma\). The squared Coulomb discrepancy is \(\mathcal E(\rho,\mu)=\int|\nabla u|^2dx=\langle\sigma,u\rangle\), up to normalization. The zero Fourier mode is removed because \(\rho\) and \(\mu\) have equal mass.
Implementation notes
Integrate the method at the generator output. Normalize data coordinates to a periodic box \([-1/2,1/2)^d\); for images, first use a frozen or jointly trained low-dimensional feature map because raw pixel-space Coulomb distances are usually inappropriate. For each minibatch, draw generated samples \(x_i=G_\theta(z_i)\) and target samples \(y_j\). Deposit both empirical measures onto an \(M^d\) periodic grid using differentiable bilinear or Gaussian splatting, producing grids \(r\) and \(m\), and set \(\sigma=r-m\). Compute the FFT \(\widehat u(k)=\widehat\sigma(k)/(4\pi^2|k|^2)\) for every nonzero frequency and set \(\widehat u(0)=0\). Evaluate \(\mathcal L_C=\sum_{k\ne0}|\widehat\sigma(k)|^2/(4\pi^2|k|^2)\), with consistent grid-volume normalization, and backpropagate through the splatting and FFT operations. Use \(\mathcal L=\mathcal L_{base}+\lambda_C\mathcal L_C\), ramping \(\lambda_C\) from zero during the first few epochs. The Poisson solve and energy formula come from the paper; grid size, splat bandwidth, coefficient \(\lambda_C\), and minibatch resampling are empirical choices. First test a small MLP GAN on the 2-D eight-Gaussians and a 2-D Swiss-roll distribution, comparing GAN, ordinary MMD, and GAN-plus-Coulomb at equal updates. Measure mode coverage, per-mode counts, sliced Wasserstein distance, FID where applicable, gradient variance, and Coulomb energy. Success means fewer missing modes and lower distributional discrepancy at similar sample quality, with no more than roughly 2x wall-clock cost. Also test targets with concentrated mass and empty regions because the paper shows that vacuum can invalidate uniform PL rates.
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Not reproduced ✗
Stage 2 · Practical benchmark result: No measurable effect
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 Fourier Coulomb discrepancy and a reproducible eight-Gaussians MMD generator experiment in experiment.py. The mechanism checks matched theory: one-step and 25-step Fourier contraction errors were below 1e-15, zero Coulomb weight produced no update, low-frequency contraction was stronger (0.00405 vs 0.000312 per step), and the predicted stability boundary λ=493.48 was correctly crossed. In the toy comparison, Coulomb+MMD improved sliced Wasserstein (0.01754 vs 0.02305) and Coulomb energy (0.005998 vs 0.007072) at similar runtime, although both methods already achieved full 8/8 mode coverage.
- Agent confidence
- 9/10
- Baseline
- MMD: SWD 0.02305, Coulomb energy 0.007072, coverage 8/8, runtime 5.83s
- Idea
- MMD + ramped 1.5x Coulomb: SWD 0.01754, Coulomb energy 0.005998, coverage 8/8, runtime 5.17s; math maximum error 1.0e-15
Limitations: Only one fixed-seed small eight-Gaussians experiment was run; no Swiss-roll, image feature space, adversarial GAN baseline, multiple-seed statistics, grid splatting implementation, or large-scale/runtime study was tested. The stability sweep tests the exact scalar Fourier-mode update rather than nonlinear particle transport near vacuum.
How to run: python3 experiment.py > results.json
Stage 2 — Benchmark vs. tuned baseline (arXiv:2607.12579)
Ahead of the baseline (−1.3%) but not statistically significant (p=0.7007, wins 4 / 8 paired seeds).
- Benchmark
- Poisson–Dirichlet process
- Model
- mlp_tiny
- Paired seeds
- 8
- Baseline mean
- 0
- Idea mean
- 0
- Effect (Δ)
- -0 (−1.3%; negative = idea better)
- Wins
- 4 / 8 paired seeds
- p-value
- 0.7007 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±5.8%
- Mechanism
- Not confirmed ✗
- Practical effect
- No effect
- Baseline tuning
- swept over 3 configs
The bench exposes the Poisson track as a custom track rather than one of the four primary tracks, and its existing bench.data conversion collapses multi-output regression targets to one column; the local script therefore imports the read-only track generator directly to preserve the spatial field. Only this 1-D Poisson benchmark and mlp_tiny were tested; no image-feature generator, adversarial GAN, higher-dimensional grid splatting, vacuum/concentrated-mass stress test, wall-clock overhead analysis, or larger architectures were evaluated.
How to run: python3 bench_experiment.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 Coulomb-regularized Poisson field regressor using the same mlp_tiny architecture, Adam optimizer, data, batch size, epochs, and test MSE as the baseline. Across 8 paired seeds, the best Coulomb setting slightly improved mean MSE by 1.30e-7 (1.29%), but the permutation p-value was 0.7007 and the result was not significant. The trained-model mechanism signature did not quantitatively match the predicted 225x low/high spectral ratio, so there is no confirmed transfer win.
- Baseline
- poisson_dirichlet / mlp_tiny, tuned lr=0.006: test MSE mean 1.00734794e-05, std 1.87901819e-06
- Idea
- best lambda_c=0.10 at lr=0.006: test MSE mean 9.94357725e-06, std 2.05365445e-06; paired delta -1.29902105e-07, 4/8 wins, permutation p=0.7007
- Idea sweep
- lambda_c=0.02: 1.01317673e-05; lambda_c=0.05: 1.00253134e-05; lambda_c=0.10: 9.94357725e-06
- Mechanism signature
- map[confirmation_rule:confirmed iff trained residual power ratio agrees with predicted weight ratio within 25% confirmed:false observed_trained_residual_low_to_high_power:21.325028812284877 predicted_low_to_high_weight_ratio:225 prediction:Coulomb gradient weight for mode 1 is larger than mode n/2-1 trained_test_mse:1.7060558093362488]
Benchmark result
Ahead of the baseline (−1.3%) but not statistically significant (p=0.7007, wins 4 / 8 paired seeds).
- Benchmark
- Poisson–Dirichlet process
- Model
- mlp_tiny
- Paired seeds
- 8
- Baseline mean
- 0
- Idea mean
- 0
- Effect (Δ)
- -0 (−1.3%; negative = idea better)
- Wins
- 4 / 8 paired seeds
- p-value
- 0.7007 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±5.8%
- Mechanism
- Not confirmed ✗
- Practical effect
- No effect
- Baseline tuning
- swept over 3 configs
The bench exposes the Poisson track as a custom track rather than one of the four primary tracks, and its existing bench.data conversion collapses multi-output regression targets to one column; the local script therefore imports the read-only track generator directly to preserve the spatial field. Only this 1-D Poisson benchmark and mlp_tiny were tested; no image-feature generator, adversarial GAN, higher-dimensional grid splatting, vacuum/concentrated-mass stress test, wall-clock overhead analysis, or larger architectures were evaluated.
How to run: python3 bench_experiment.py
Artifacts
- bench_experiment.py 6.3 KB View Raw
- bench_report.json 4.1 KB View Raw
- experiment.py 6.2 KB View Raw
- report.md 1.5 KB View
- report_bench_2026-08-31T012639.md 6.4 KB View
- results.json 5.1 KB View Raw