How to differentiate $l_1$ norm of a transformation?

51 Views Asked by At

Assume I have a vector $c$ and a transformation $\Sigma V^T $ and I want to minimize $|\Sigma V^T c|_1$ with respect to $c$ with gradient descent.

I want to take it's derivative.

Is this the right choice? - $sign(\Sigma V^T c)\Sigma V^T$

Will the step would be? - $c_{t+1} = c_t -\alpha \cdot sign(\Sigma V^T c)\Sigma V^T$

Edit: The full objective is:

$min |Jc-y|_2^2 + \lambda|\Sigma V^Tc|_1$

Where $J=U\Sigma V^T$ and $U,V$ are two unitary matrices.

1

There are 1 best solutions below

0
On BEST ANSWER

Define the vectors $$\eqalign{ &x\doteq\Sigma V^Tc,\quad s\doteq{\rm sign}(x) \\ &\|x\|_1\doteq s:x \\ }$$ where $(\odot)$ is the Hadamard product and $(:)$ is the trace product, i.e. $\;A:B={\rm Tr}(A^TB)$

Write the objective function in terms of these new variables. Then calculate the (sub)gradient. $$\eqalign{ \phi &= (Jc-y):(Jc-y) + \lambda s:x \\ d\phi &= 2(Jc-y):(J\,dc) + \lambda s:dx \\ &= 2(Jc-y):(J\,dc) + \lambda s:(\Sigma V^Tdx) \\ &= \Big(2J^T(Jc-y) + \lambda V\Sigma^T s\Big):dc \\ g=\frac{\partial \phi}{\partial c} &= 2J^T(Jc-y) + \lambda V\Sigma^T\,{\rm sign}\big(\Sigma V^Tc\big) \\ }$$ The gradient vector $g$ is a column vector (like $c$), so the gradient descent step looks like $$c_{k+1} = c_k - \alpha_k\,g_k$$