IndicatorNuclearNormUnitBall¶
- class odl.solvers.functional.default_functionals.IndicatorNuclearNormUnitBall(*args, **kwargs)[source]¶
Bases:
Functional
Indicator on unit ball of nuclear norm for matrix valued functions.
Notes
For a matrix-valued function , the nuclear norm with parameters and is defined by
where is the vector of singular values of the matrix and is the usual -norm on .
This function is defined as the indicator on the unit ball of the nuclear norm, that is, 0 if the nuclear norm is less than 1, and infinity else.
For a detailed description of its properties, e.g, its proximal, convex conjugate and more, see [Du+2016].
References
[Du+2016] J. Duran, M. Moeller, C. Sbert, and D. Cremers. Collaborative Total Variation: A General Framework for Vectorial TV Models SIAM Journal of Imaging Sciences 9(1): 116--151, 2016.
- Attributes:
adjoint
Adjoint of this operator (abstract).
convex_conj
Convex conjugate of the unit ball indicator of the nuclear norm.
domain
Set of objects on which this operator can be evaluated.
grad_lipschitz
Lipschitz constant for the gradient of the functional.
gradient
Gradient operator of the functional.
inverse
Return the operator inverse.
is_functional
True
if this operator's range is aField
.is_linear
True
if this operator is linear.proximal
The proximal operator.
range
Set in which the result of an evaluation of this operator lies.
Methods
__call__
(x[, out])Return
self(x[, out, **kwargs])
.bregman
(point, subgrad)Return the Bregman distance functional.
derivative
(point)Return the derivative operator in the given point.
norm
([estimate])Return the operator norm of this operator.
translated
(shift)Return a translation of the functional.
- __init__(space, outer_exp=1, singular_vector_exp=2)[source]¶
Initialize a new instance.
- Parameters:
- space
ProductSpace
ofProductSpace
ofTensorSpace
Domain of the functional.
- outer_exp{1, 2, inf}, optional
Exponent for the outer norm.
- singular_vector_exp{1, 2, inf}, optional
Exponent for the norm for the singular vectors.
- space
Examples
Simple example, nuclear norm of matrix valued function with all ones in 3 points. The singular values are [2, 0], which has squared 2-norm 2. Since there are 3 points, the expected total value is 6. Since the nuclear norm is larger than 1, the indicator is infinity.
>>> r3 = odl.rn(3) >>> space = odl.ProductSpace(odl.ProductSpace(r3, 2), 2) >>> norm = IndicatorNuclearNormUnitBall(space) >>> norm(space.one()) inf