optim.Tikhonov

Contents

optim.Tikhonov#

class bartorch.optim.Tikhonov#

Bases:

A quadratic penalty weight * ||operator x - bias||^2.

Generalized Tikhonov regularization, minimized by CG alongside the data-fidelity term. Without an operator the penalty is on the image itself; without a bias it penalizes the norm rather than the distance from a reference.

Every combination remains a linear least-squares problem and is solved by conjugate gradients: the terms are stacked beneath the encoding, and the normal operator of the stack is the sum of the parts’ normals, so a Toeplitz encoding keeps its point spread function convolution.

Parameters:
  • weight (float) – The weight, not its square root. Must not be negative.

  • operator (LinearOperator, default=None) – What the penalty is on, mapping the image somewhere. By default the image itself.

  • bias (tensor, default=None) – What the penalty pulls towards, of the operator’s codomain shape. By default zero, which is the ordinary penalty on size.

Examples

Pull towards a prior image rather than towards zero:

>>> CG(terms=Tikhonov(0.1, bias=prior))(y, A)

Penalize the first differences, which is quadratic total variation:

>>> CG(terms=Tikhonov(0.1, operator=linop.Gradient(A.ishape, (-1, -2))))(y, A)