pyproximal.projection.NuclearBallProj#
- class pyproximal.projection.NuclearBallProj(n, radius, maxiter=100, xtol=1e-05)[source]#
Nuclear ball projection
- Parameters
- n
int
Number of elements of input vector
- radius
float
Radius
- maxiter
int
, optional Maximum number of iterations used by
scipy.optimize.bisect
- xtol
float
, optional Absolute tolerance of
scipy.optimize.bisect
- n
Notes
Given a Nuclear ball defined as:
\[N_{r} = \{ \mathbf{X}: ||\mathbf{X}||_* \leq r \}\]its orthogonal projection is:
\[P_{N_{r}} (\mathbf{X}) = \mathbf{U} diag(P_{L1_{r}} (\sigma(\mathbf{X}))) \mathbf{V}^H\]where \(\mathbf{U} diag(\sigma(\mathbf{X})) \mathbf{V}^H\) is the SVD decomposition of \(\mathbf{X}\).
Methods
__init__
(n, radius[, maxiter, xtol])