koraykv / optim

Some optimization packages for torch7
11 stars 5 forks source link

fista.lua: line search condition: possible error? #5

Closed ogh closed 11 years ago

ogh commented 11 years ago

Hi,

I am currently working my way through the FISTA paper and your implementation and noticed a difference in the condition for the line search. By FISTA paper, I mean the one you cite in your implementation: http://goo.gl/bSuKQ

On page 12 (page number 194) in the box describing the FISTA algorithm the condition is stated as:

F(p_L(y)) <= Q_L(p_L(y),y)

Note the upper case F which is defined on page 6 as F(x) = f(x) + g(x).

If I am not mistaken, you only use the lower case f(x) in line 109 of fista.lua.

if fply <= Q then

There is a comment on that line which I don't quite get. Maybe it explains why you omit the g(x). Is this an error or is there a reason for omitting the g(x)?

Thanks in advance!

Best,

Hubert

koraykv commented 11 years ago

yes, I think this is correct. I am using the form given in Lemma 2.1 (I think), since the definition of Q in eq 2.5 includes g(x) anyways.

ogh commented 11 years ago

Oh, you are right. How could I miss that, I though the g was still in Q. But you simply subtracted it on both sides of the inequation. Thank you!

koraykv commented 11 years ago

No problem. Thanks.