RobustSplittingLoss#

class deepinv.loss.mri.RobustSplittingLoss(mask_generator, physics_generator, noise_model=GaussianNoise(sigma=0.1), alpha=0.75, eps=1e-9, metric=torch.nn.MSELoss())[source]#

Bases: WeightedSplittingLoss

Robust Weighted Splitting Loss

Implements the Robust-SSDU loss from “Clean self-supervised MRI reconstruction from noisy, sub-sampled training data with Robust SSDU”. The loss is designed for problems where measurements are observed as \(y_i=M_iAx+\epsilon\), where \(M_i\) is a random mask, such as in MRI where A is the Fourier transform, and \(\epsilon\) is Gaussian noise. The loss is related to the deepinv.loss.mri.WeightedSplittingLoss as follows:

\[\mathcal{L}_\text{Robust-SSDU}=\mathcal{L}_\text{Weighted-SSDU}(\tilde{y};y) + \lVert(1+\frac{1}{\alpha^2}) M_1 M (\forw{\inverse{\tilde{y},A} - y}\rVert_2^2\]

where \(\tilde{y}\sim\mathcal{N}(y,\alpha^2\sigma^2\mathbf{I})\) is further noised (i.e. “noisier”) measurement, and \(\alpha\) is a hyperparameter. This is derived from Eqs. 34 & 35 of the paper. At inference, the original measurement \(y\) is used as input.

Note

See deepinv.loss.mri.WeightedSplittingLoss on what is expected of the input measurements, and the mask_generator.

Parameters: