pyproximal.Huber#

class pyproximal.Huber(alpha)[source]#

Huber norm proximal operator.

Proximal operator of the Huber norm defined as:

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

which behaves like a \(\ell_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:

\[\prox^*_{\tau H_\alpha(\cdot)}(\mathbf{x}) = \left( 1 - \frac{\tau}{\max\{\|\mathbf{x}\|_2, \tau\} + \alpha} \right) \mathbf{x}\]

Methods

__init__(alpha)

affine_addition(v)

Affine addition

chain(g)

Chain

grad(x)

Compute gradient

postcomposition(sigma)

Postcomposition

precomposition(a, b)

Precomposition

prox(**kwargs)

proxdual(**kwargs)