### CVX: Convex optimization made simple

My first experience with this convex optimization package was the computation of the rate regions of a Multiple Access Channel and I was amazed how easy was to perform such complicated optimization problems. However the applications of CVX cover all scientific fields were a given optimization must be performed, even if the problem is non-convex it may be possible to relax it into a convex one.

For example currently I've been working in a problem of maximum likelihood estimation of a sparse set of parameters that results into an expression with a norm 0 term in it. The optimization problem can be simplified and relaxed to obtain a convex problem similar to the basis pursuit algorithm presented in [T06].

I will use the algorithm in [T06] to show how simple is the learning curve of CVX. The proposed algorithm is based on a norm 1 penalty:

Writing this optimization problem in Matlab reduces to

`cvx_begin`

variable b(N,1);

minimize( 1/2 * square_pos(norm(s-Phi*b,2)) + gamma * norm(b,1) )

cvx_end

Done.

[T06] | Joel A. Tropp. Just Relax: Convex Programming Methods for Identifying Sparse Signals in Noise. IEEE Transactions on Information Theory, 2006. |

Labels: basis pursuit, compressed sensing, convex optimization, cvx, matlab, research

## 0 Comments:

## Post a Comment

Note: Only a member of this blog may post a comment.

Subscribe to Post Comments [Atom]

<< Back to blog's front page.