pyproximal.SingularValuePenalty#
- class pyproximal.SingularValuePenalty(dim, penalty)[source]#
Proximal operator of a penalty acting on the singular values.
Generic regularizer \(\mathcal{R}_f\) acting on the singular values of a matrix,
\[\mathcal{R}_f(\mathbf{X}) = f(\boldsymbol\lambda)\]where \(\mathbf{X}\) is a matrix of size \(M \times N\) and \(\boldsymbol\lambda\) is the corresponding singular value vector.
- Parameters
- dim
tuple
Size of matrix \(\mathbf{X}\).
- penalty
pyproximal.ProxOperator
Function acting on the singular values.
- dim
Notes
The pyproximal implementation allows
penalty
to be anypyproximal.ProxOperator
acting on the singular values; however, not all penalties will result in a mathematically accurate proximal operator defined this way. Given a penalty \(f\), the proximal operator is assumed to be\[\prox_{\tau \mathcal{R}_f}(\mathbf{X}) = \mathbf{U} \diag\left( \prox_{\tau f}(\boldsymbol\lambda)\right) \mathbf{V}^H\]where \(\mathbf{X} = \mathbf{U}\diag(\boldsymbol\lambda)\mathbf{V}^H\), is an SVD of \(\mathbf{X}\). It is the user’s responsibility to check that this is true for their particular choice of
penalty
.Methods
__init__
(dim, penalty)affine_addition
(v)Affine addition
chain
(g)Chain
grad
(x)Compute gradient
postcomposition
(sigma)Postcomposition
precomposition
(a, b)Precomposition
prox
(**kwargs)proxdual
(**kwargs)