pyproximal.HuberCircular#

class pyproximal.HuberCircular(alpha)[source]#

Circular Huber norm proximal operator.

Proximal operator of the Circular 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 \(\|\mathbf{x}\|_2 \leq \alpha\) and a \(\ell_1\) norm for \(\|\mathbf{x}\|_2 > \alpha\).

Parameters
alphafloat

Huber parameter

Notes

The Circular Huber proximal operator is defined as [1]:

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

O’Donoghue, B. and Stathopoulos, G. and Boyd, S. “A Splitting Method for Optimal Control”, In the IEEE Transactions on Control Systems Technology, 2013.

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)