NuclearNorm
- class odl.functionals.default_functionals.NuclearNorm(*args, **kwargs)[source]
Bases:
FunctionalNuclear 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
.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.
- __init__(space, outer_exp=1, singular_vector_exp=2)[source]
Initialize a new instance.
Parameters
- space
ProductSpaceofProductSpaceofTensorSpace 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.
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.
>>> r3 = odl.rn(3) >>> space = odl.ProductSpace(odl.ProductSpace(r3, 2), 2) >>> norm = NuclearNorm(space) >>> norm(space.one()) 6.0
- space