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.