[mlpack-git] [mlpack] evaluate various changes to L-BFGS optimizer (#370)

Ryan Curtin notifications at github.com
Wed Jan 14 23:41:14 EST 2015


Okay; I understand the changes you've made then.  Thanks for the explanation.  One thing I overlooked, though---you've split out the line search termination conditions in order to give better failure messages; but on those failures, it no longer returns false, it just breaks.  Is there a particular reason for this?  I think that this could cause `L_BFGS` to iterate forever with no improvement, although the relative improvement termination condition should catch that.  Which then implies that there's no need for `LineSearch()` to return anything at all or check whether or not it failed.  If you agree with that line of reasoning, then after I merge it I'll make `LineSearch()` `void` and remove the checks.

> In fact, if you email sam burer asking about these heuristics, he will tell you he can't even quite piece them together unless he spends quite a bit of time looking at his code.

Hah, I have one of those emails too! :)

He suggested that he avoided the R=0 problem by using the determinant of R^T R, and linked to a Mathematical Programming paper titled "Local Minima and Convergence in Low-Rank Semidefinite Programming":
http://www.researchgate.net/publication/225703502_Local_Minima_and_Convergence_in_Low-Rank_Semidefinite_Programming/file/d912f508148a86b469.pdf

and also suggested a (slightly) more recent paper:
http://link.springer.com/article/10.1007%2Fs10898-008-9328-4

It has been a very long time since I have done so much as open those papers, though...

I do think a more robust LRSDP would definitely be paperworthy and of high interest.  It would also allow mlpack to provide faster implementations of SDP-based algorithms that actually work.  (This is better than the old rejected code that was fast but didn't work...)  A dual solver would definitely help us know when a restart was necessary, but I don't know if this would cause the entire algorithm to be slower overall than just a regular SDP solver.  Either way, that is certainly an interesting avenue to investigate.

---
Reply to this email directly or view it on GitHub:
https://github.com/mlpack/mlpack/issues/370#issuecomment-70039134
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.cc.gatech.edu/pipermail/mlpack-git/attachments/20150114/0d5f1df6/attachment-0001.html>


More information about the mlpack-git mailing list