pyproximal.Huber#

class pyproximal.Huber(alpha)[source]#

Huber norm proximal operator.

Proximal operator of the Huber norm defined as \(H_\alpha(\mathbf{x}) = \sum_i H_\alpha(x_i)\) where:

\[\begin{split}H_\alpha(x_i) = \begin{cases} \frac{|x_i|^2}{2 \alpha}, & |x_i| \leq \alpha \\ |x_i| - \frac{\alpha}{2}, & |x_i| > \alpha \end{cases}\end{split}\]

which behaves like a \(\ell_2^2\) norm for \(|x_i| \leq \alpha\) and a \(\ell_1\) norm for \(|x_i| > \alpha\).

Parameters
alphafloat

Huber parameter

Notes

The Huber proximal operator is defined as:

\[\begin{split}\prox_{\tau H_\alpha(\cdot)}(\mathbf{x}) = \begin{cases} \prox_{\frac{\tau}{2 \alpha} |x_i|^2}(x_i), & |x_i| \leq \alpha \\ \prox_{\tau |x_i|}(x_i), & |x_i| > \alpha \end{cases}\end{split}\]

Methods

__init__(alpha)

affine_addition(v)

Affine addition

chain(g)

Chain

grad(x)

Compute gradient of the Moreau envelope of the function.

postcomposition(sigma)

Postcomposition

precomposition(a, b)

Precomposition

prox(**kwargs)

proxdual(**kwargs)