What is the difference bewtween CVX (Lasso) and Yall1

(Saleh Alawsh) #1

Hi brothers,
I’m using CVX to solve an optimization problem "Lasso"
min 1/2||Ax-b||_2+lambda*||x||_1

  1. Is there a square in the first term because I have found two different ways of writing this in the literature.
  2. If I want to handle this with Yall1 instead. Whta is the closest L1-minimization problems? Is it:
    (L1/L2) min ||Wx||w,1 + (1/2ρ)||Ax - b||_2^2 -->

What is the difference bewtween CVX (Lasso) and Yall1? and why the speed of the later is very high compared with CVX???


(Mark L. Stone) #2

The original and standard definition of LASSO has a square on the 2-norm term. But there is a variant procedure, whether or not it is considered “LASSO”, in which that term is not squared. Either way, and many other variants, can be done in CVX.

CVX is a fairly general modeling tool for convex problems which obey its DCP rules. Human moideling ease, speed and flexibility are its goals rather than solution speed. YALL1 is a more specialized tool for a much more limited scope of problems - perhaps it is faster for the problems which it addresses. I suppose if L1/L2 is the problem you want to solve, then you should use it. However, this forum does not address YALL1, so if you want assistance with that, you should seek help elsewhere.

Your post was originally labeled by you as MIDCP. CVX allows you to specify integer constraints on one or more variables in LASSO (and other) problems. I don’t recall ever seeing that done for LASSO, but it could be.

(Saleh Alawsh) #3

Thanks a lot Mr. Mark