# Woodbury Data-Consistency Layer for Multiplexed Unrolling

- ID: 340
- Canonical URL: https://synthcore.org/idea/340/woodbury-data-consistency-layer-for-multiplexed-unrolling
- API JSON: https://synthcore.org/api/idea/340.json
- API Markdown: https://synthcore.org/api/idea/340.md
- Verification status: beats_baseline
- Source: [arXiv:2607.01654](https://arxiv.org/abs/2607.01654)
- Category: architecture
- Solves: speedup, stability, accuracy
- ML areas: cnn, diffusion, vae
- Math tags: linear-algebra, optimization, numerical-analysis
- Ratings: usefulness 7/10; difficulty 4/10; novelty 6/10

## 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.

## 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.

## Key formulas

- $$\bm{b}_{j}=\sum_{r=1}^{R}\bm{\phi}_{r}\bm{v}_{(j-1)R+r}+\bm{\eta}_{j}$$
- $$\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}$$
- $$\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})$$
- $$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)$$

## 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

- Status: beats_baseline
- Mechanism evidence: yes
- Mechanism confirmed: yes
- Practical verdict: helps
- Verdict: 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.

### Mechanism check

- Verdict: 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.
- Confidence: 9/10
- 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.

### Practical benchmark

- Paired seeds: 8
- Baseline mean: 0
- Idea mean: 0
- p-value: 0.0081
- Paired wins: 8/8
- Benchmark verdict: idea better (significant)

## Artifacts

- [bench_experiment.py](https://synthcore.org/code/115/bench_experiment.py)
- [bench_report.json](https://synthcore.org/code/115/bench_report.json)
- [experiment.py](https://synthcore.org/code/115/experiment.py)
- [multiplex_track.py](https://synthcore.org/code/115/multiplex_track.py)
- [report.md](https://synthcore.org/code/115/report.md)
- [report_bench_2026-08-30T144844.md](https://synthcore.org/code/115/report_bench_2026-08-30T144844.md)
- [results.json](https://synthcore.org/code/115/results.json)
- [Download all files as ZIP](https://synthcore.org/download/115)

## Disclaimer

AI-generated research hypothesis, automatically tested. Not peer-reviewed.
