bartorch.optim.Tikhonov#
- class bartorch.optim.Tikhonov(weight, operator=None, bias=None)#
A quadratic penalty
weight * ||operator x - bias||^2.What generalized Tikhonov regularization is, and what
CGminimizes alongside the data term. Without an operator the penalty is on the image itself, and without a bias it is on its size rather than its distance from something.Every combination is still a least-squares problem, so it is still conjugate gradients that solves it: the terms are stacked under the encoding and the normal operator is the sum of the terms’ own, which is what keeps a Toeplitz encoding’s normal the convolution it was.
- Parameters:
weight (float) – The weight, not its square root. Must not be negative.
operator (LinearOperator, optional) – What the penalty is on, mapping the image somewhere. By default the image itself.
bias (tensor, optional) – 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)))(y, A)
- __init__(weight, operator=None, bias=None)#
Methods
__init__(weight[, operator, bias])Attributes
biasoperatorweight