proximal_l1_l2

odl.solvers.nonsmooth.proximal_operators.proximal_l1_l2(space, lam=1, g=None)[source]

Proximal operator factory of the group-L1-L2 norm/distance.

Implements the proximal operator of the functional

F(x) = lam || |x - g|_2 ||_1

with x and g elements in space, and scaling factor lam. Here, |.|_2 is the pointwise Euclidean norm of a vector-valued function.

Parameters:
spaceLinearSpace or ProductSpace

Domain of the functional.

lampositive float, optional

Scaling factor or regularization parameter.

gspace element, optional

Element to which the L1-L2 distance is taken. Default: space.zero.

Returns:
prox_factoryfunction

Factory for the proximal operator to be initialized

See also

proximal_l1

Scalar or non-isotropic vectorial variant

Notes

For the functional

F(x) = \lambda \| |x - g|_2 \|_1,

and a step size \sigma, the proximal operator of \sigma F is given as the "soft-shrinkage" operator

\mathrm{prox}_{\sigma F}(x) =
\begin{cases}
    g, & \text{where } |x - g|_2 \leq \sigma\lambda, \\
    x - \sigma\lambda \frac{x - g}{|x - g|_2}, & \text{elsewhere.}
\end{cases}

Here, all operations are to be read pointwise.