Closed prozaeck closed 6 years ago
First of all, FISTA is not my article, I implemented this based on the algorithm proposed there.
For the problems I'm considering, projection is indeed the solution for the optimization problem of pL. If you want to work on different optimization problems other than those in examples, you probably need to implement your own solution for pL.
I don't really understand what is (1.5 1.4), could you please clarify.
1.5 1.4 is the formula from the article you REFER.
Hi,
I'm following the algorithm in the box stated in page 193: FISTA with constant stepsize.
By the way, people don't often mention every piece of equations in the paper, they just need to follow the final algorithm. As long as it works as expected.
I'm sure that your FISTA implementation is not optimal for problems with L1 norm. https://www2.eecs.berkeley.edu/Pubs/TechRpts/2010/EECS-2010-13.pdf page 7
Hi friend,
There are more than one ways to solve any problem. That a solution is different from others doesn't mean it's not optimal. I compared my implementation with SPAMS (http://spams-devel.gforge.inria.fr) which is a well-known Sparse Modeling Toolbox, and obtained similar results.
I don't know what you mean by 'not optimal', but if you say you're sure about something, please provide solid evidence.
Bests
By the way, I just looked at the algorithm in page 7 of the file you sent. There are two things I want to say:
The projection function in my implementation is a combination of Step 6 and Step 7 in your document.
My implementation is "FISTA with constant stepsize" which is located in page 193 of the document I referred. In this case, Lipschitz coefficient is determined. The algorithm you're saying is basically "FISTA with backtracking" (see page 194 in my document) when Lipschitz coefficient is hard to find.
For problems where Lipschitz coefficient could be determined, "FISTA with constant stepsize" should be preferred since we do not need to calculate L in each iteration. For l1 problem, the Lipschitz coefficient is easy to calculate, that is why I used "FISTA with constant stepsize", which is better than "FISTA with backtracking", at least in terms of computational complexity. In other words, "FISTA with constant stepsize" is 'more' optimal than "FISTA with constant stepsize" with l1 norm.
I hope this comment addresses your concern.
Bests,
For the problem with L1 norm, the EXACT solution of pL = argmin (...) minimization problem exists. You solve this problem approximately, so your implementation is not optimal.
"The projection function in my implementation is a combination of Step 6 and Step 7" I don't think so. I thik it is coarse approximation 6,7 steps in L1 case.
How do you say that I solved the problem approximately? That is a soft thresholding function.
Please understand that the step 7 in your document:
is this one: https://github.com/tiepvupsu/FISTA/blob/master/proj/proj_l1.m
Please read the comment in this file.