Woodbury Data-Consistency Layer for Multiplexed Unrolling
Implementation & benchmark of arXiv:2607.01654 — Plug-and-Play Volumetric Reconstruction for Compressive Sensing Light-Sheet Microscopy
Source paper: Plug-and-Play Volumetric Reconstruction for Compressive Sensing Light-Sheet Microscopy arXiv:2607.01654 ⓘ · analyzed Aug 30, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Replace the usual gradient-descent or conjugate-gradient data-fidelity step in an unrolled reconstruction network with an exact Woodbury proximal layer for grouped multiplexed measurements. The layer can be inserted between learned denoising blocks and should provide stronger measurement consistency at a fixed number of unrolled stages, while avoiding inner iterative linear solves.
Formulas
Mathematical statement
The paper models the j-th compressed measurement as $\bm{b}_{j}=\sum_{r=1}^{R}\bm{\phi}_{r}\bm{v}_{(j-1)R+r}+\bm{\eta}_{j}$, where $\bm{b}_{j}\in\mathbb{R}^{p}$ is the observed image for exposure j, $R$ is the number of multiplexed slices, $\bm{v}_{(j-1)R+r}\in\mathbb{R}^{p}$ is the r-th latent slice in group j, $\bm{\phi}_{r}\in\mathbb{R}^{p\times p}$ is a diagonal masking matrix, and $\bm{\eta}_{j}$ is measurement noise. Define the grouped latent vector $\bm{x}_{j}=[\bm{v}_{(j-1)R+1};\ldots;\bm{v}_{jR}]\in\mathbb{R}^{Rp}$ and the forward operator $A_{j}=[\bm{\phi}_{1},\ldots,\bm{\phi}_{R}]\in\mathbb{R}^{p\times Rp}$, so that $\bm{b}_{j}=A_{j}\bm{x}_{j}+\bm{\eta}_{j}$. For a denoiser output $\bm{z}_{j}$ and penalty $\rho>0$, use the quadratic proximal data step $\bm{x}_{j}^{+}=\arg\min_{\bm{x}}\frac{1}{2}\|A_{j}\bm{x}-\bm{b}_{j}\|_{2}^{2}+\frac{\rho}{2}\|\bm{x}-\bm{z}_{j}\|_{2}^{2}$. Woodbury gives $\bm{x}_{j}^{+}=\bm{z}_{j}+A_{j}^{\top}(A_{j}A_{j}^{\top}+\rho I_{p})^{-1}(\bm{b}_{j}-A_{j}\bm{z}_{j})$. Because every $\bm{\phi}_{r}$ is diagonal, $A_{j}A_{j}^{\top}=\sum_{r=1}^{R}\bm{\phi}_{r}^{2}$ is diagonal. At pixel k, with mask value $\phi_{r,k}$, the update is $x_{j,r,k}^{+}=z_{j,r,k}+\frac{\phi_{r,k}}{\rho+\sum_{s=1}^{R}\phi_{s,k}^{2}}\left(b_{j,k}-\sum_{s=1}^{R}\phi_{s,k}z_{j,s,k}\right)$. The denominator is strictly positive for $\rho>0$, giving a stable exact correction even when the multiplexed forward operator is rank deficient.
Implementation notes
Integrate this as the data-consistency operation in an unrolled network for multiplexed images, multi-channel compressed sensing, coded aperture data, or grouped sensor measurements. Use tensors x,z with shape [batch, groups, R, height, width], measurements b with shape [batch, groups, height, width], and masks phi with shape [R, height, width]. At each unrolled stage, first compute a learned denoiser output z = D_theta(x, optional_context). Then apply the exact correction: pred = sum_r(phi[r] * z[:, :, r]); residual = b - pred; denom = rho + sum_r(phi[r]**2); and set x_next[:, :, r] = z[:, :, r] + phi[r] * residual / denom. This is the pixelwise Woodbury update, so do not construct the large matrix A, perform a matrix inverse, or run conjugate gradients. Parameterize rho as softplus(raw_rho)+1e-6, either globally or separately for each stage, and optionally tie it to the known noise variance. The exact quantities are the forward projection, diagonal Gram term, and proximal correction; only denoiser weights and optional rho values are learned. For the first experiment, train a five-stage residual CNN or small U-Net on synthetic CIFAR-sized or microscopy image patches with random binary masks, groups of R equal to 4 or 8 slices, and additive Gaussian noise. Compare against the same unrolled model using one or ten gradient-descent data steps, conjugate-gradient data consistency, and no physics layer. Record PSNR, SSIM, measurement residual, GPU memory, and wall-clock time. Success is equal-or-better reconstruction quality with fewer inner iterations, lower memory and latency, and a lower measurement residual after every consistency block.
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Confirmed ✓
Stage 2 · Practical benchmark result: Significant win ✓
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 the pixelwise Woodbury proximal layer and verified it against dense proximal solves, including rank-deficient operators, with maximum absolute error 8.97e-11. Predicted residual contractions matched observations to numerical precision across rho and mask-scale sweeps, and the toy inverse problem improved both reconstruction error and measurement consistency over one gradient step and no physics layer. This demonstrates the mechanism, but not yet a trained multi-stage neural-network gain.
- Agent confidence
- 9/10
- Baseline
- One gradient data step: MSE 0.35347, PSNR 4.516 dB, measurement RMSE 0.42433, runtime 0.00128 s.
- Idea
- Exact Woodbury step: MSE 0.33620, PSNR 4.734 dB, measurement RMSE 0.31419, runtime 0.00081 s; residual-ratio prediction relative error was at most 2.9e-15 and dense-solve maximum error was 8.97e-11.
Limitations: Only a synthetic grouped pixelwise reconstruction benchmark was tested. No learned CNN denoiser, five-stage training, CIFAR or microscopy data, SSIM, CUDA memory, conjugate-gradient baseline, or realistic-scale GPU timing was evaluated.
How to run: python3 experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2607.01654)
Beats the tuned baseline by -0.0062 metric points (p=0.0081, wins 8 / 8 paired seeds; metric: lower is better).
- Benchmark
- Multiplexed inverse problem
- Model
- local_mlp
- Paired seeds
- 8
- Baseline mean
- 0
- Idea mean
- 0
- Effect (Δ)
- -0.0062 (n/a; negative = idea better)
- Wins
- 8 / 8 paired seeds
- p-value
- 0.0081 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- n/a
- Mechanism
- Confirmed ✓
- Practical effect
- Helps
- Baseline tuning
- swept over 0 configs
This is a small synthetic custom track with R=4 and P=8, a local MLP rather than a CNN/U-Net, 15 epochs, and no CIFAR/microscopy, SSIM, conjugate-gradient, memory, or large-scale latency evaluation. The custom track is structurally matched but does not establish performance on real multiplexed imagery.
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 Worked ✓
Agent confidence: 8/10
Built a structurally matched custom multiplexed inverse-problem track and trained identical MLP systems differing only in their data-consistency operation. Across 8 paired seeds, the tuned Woodbury layer improved test MSE significantly over the swept gradient-step baseline (all 8 wins, permutation p=0.0081); its trained-model measurement-residual contraction prediction was also quantitatively confirmed.
- Baseline
- Tuned gradient step, lr=0.003 and alpha=0.5; full 8-seed test MSE is reported in bench_report.json.
- Idea
- Woodbury proximal step, best lr=0.01 and rho=0.1; full 8-seed test MSE is reported in bench_report.json; paired delta=-0.0062477924, p=0.0081, 8/8 wins. Residual-ratio relative error mean was 6.96e-08.
Benchmark result
Beats the tuned baseline by -0.0062 metric points (p=0.0081, wins 8 / 8 paired seeds; metric: lower is better).
- Benchmark
- Multiplexed inverse problem
- Model
- local_mlp
- Paired seeds
- 8
- Baseline mean
- 0
- Idea mean
- 0
- Effect (Δ)
- -0.0062 (n/a; negative = idea better)
- Wins
- 8 / 8 paired seeds
- p-value
- 0.0081 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- n/a
- Mechanism
- Confirmed ✓
- Practical effect
- Helps
- Baseline tuning
- swept over 0 configs
This is a small synthetic custom track with R=4 and P=8, a local MLP rather than a CNN/U-Net, 15 epochs, and no CIFAR/microscopy, SSIM, conjugate-gradient, memory, or large-scale latency evaluation. The custom track is structurally matched but does not establish performance on real multiplexed imagery.
How to run: python3 bench_experiment.py
Artifacts
- bench_experiment.py 4.7 KB View Raw
- bench_report.json 7.9 KB View Raw
- experiment.py 4.0 KB View Raw
- multiplex_track.py 1.2 KB View Raw
- report.md 1.3 KB View
- report_bench_2026-08-30T144844.md 3.1 KB View
- results.json 2.5 KB View Raw