pyproximal.L0#
- class pyproximal.L0(sigma=1.0)[source]#
\(L_0\) norm proximal operator.
Proximal operator of the \(\ell_0\) norm: \(\sigma\|\mathbf{x}\|_0 = \text{count}(x_i \ne 0)\).
- Parameters
- sigma
float
orlist
ornp.ndarray
orfunc
, optional Multiplicative coefficient of L0 norm. This can be a constant number, a list of values (for multidimensional inputs, acting on the second dimension) or a function that is called passing a counter which keeps track of how many times the
prox
method has been invoked before and returns a scalar (or a list of)sigma
to be used.
- sigma
Notes
The \(\ell_0\) proximal operator is defined as:
\[\begin{split}\prox_{\tau \sigma \|\cdot\|_0}(\mathbf{x}) = \operatorname{hard}(\mathbf{x}, \tau \sigma) = \begin{cases} x_i, & x_i < -\tau \sigma \\ 0, & -\tau\sigma \leq x_i \leq \tau\sigma \\ x_i, & x_i > \tau\sigma\\ \end{cases}\end{split}\]where \(\operatorname{hard}\) is the so-called called hard thresholding.
Methods
__init__
([sigma])affine_addition
(v)Affine addition
chain
(g)Chain
grad
(x)Compute gradient
postcomposition
(sigma)Postcomposition
precomposition
(a, b)Precomposition
prox
(*args, **kwargs)proxdual
(**kwargs)