Solved – Soft-thresholding for the LASSO with complex valued data

complex numberselastic netlassoregularization

I'm currently implementing coordinate descent for the LASSO with complex-valued data. For this, one needs a complex version of the soft-thresholding operator, which seems hardly available on the net.

For real-valued data, the definition of the soft-thresholding operator is given in the famous paper of Friedmann, Hastie und Tibshirani, Regularization Paths for Generalized Linear Models via Coordinate Descent, as
\begin{aligned}
S(z, \lambda) \ = \ \text{sign}(z)\, (|z|-\gamma)_+ \qquad \text{for } z, \, \gamma\in \mathbb R.
\end{aligned}

From this, I think it is straightforward to extend it to the complex domain as
\begin{aligned}
S(z, \lambda) \ = \ e^{i\,\text{arg}(z)} \,(|z|-\gamma)_+ \qquad \text{for } z\in \mathbb C, \, \gamma \in \mathbb R.\\
\end{aligned}

Is this complex-version of the soft-thresholding operator correct?

From a geometric view, this extension seems obvious: all one does is to rotate the real soft-thresholding curve into the complex domain, as visualized in the following picture, which shows the penalization of the radial part for $S(z,5)$:

enter image description here

Best Answer

Yes, you're absolutely correct. In Foucart's book ("A mathematical introduction to compressive sensing") you can find this exact same expression on page 72 when they define the soft thresholding operator in the complex case.