# pyproximal.Log1#

class pyproximal.Log1(sigma, delta=1e-10)[source]#

Logarithmic penalty 2.

The logarithmic penalty (Log) is defined as

$\mathrm{Log}_{\sigma,\delta}(\mathbf{x}) = \sigma \sum_i \log(|x_i| + \delta)$

where $${\sigma>0}$$, $${\gamma>0}$$.

Parameters
sigmafloat

Multiplicative coefficient of Log norm.

deltafloat, optional

Regularization parameter. Default is 1e-10.

Notes

The logarithmic penalty gives rise to a log-thresholding that is a smooth alternative falling in between the hard and soft thresholding.

The proximal operator is defined as [1]:

$\begin{split}\prox_{\tau \sigma log}(\mathbf{x}) = \begin{cases} 0.5 (x_i + \delta - \sqrt{(x_i-\delta)^2-2\tau \sigma}), & x_i < -x_0 \\ 0, & -x_0 \leq x_i \leq x_0 \\ 0.5 (x_i - \delta + \sqrt{(x_i+\delta)^2-2\tau \sigma}), & x_i > x_0\\ \end{cases}\end{split}$

where $$x_0=\sqrt{2 \tau \sigma} - \delta$$.

1

Malioutov, D., and Aravkin, A. “Iterative log thresholding”, Arxiv, 2013.

Methods

 __init__(sigma[, delta]) affine_addition(v) Affine addition chain(g) Chain elementwise(x) grad(x) Compute gradient postcomposition(sigma) Postcomposition precomposition(a, b) Precomposition prox(**kwargs) proxdual(**kwargs)