Re: [eigen] New Levenberg Marquardt stuff

[ Thread Index | Date Index | More Archives ]

On 07.12.2012 23:44, Victor Liu wrote:
[moved your response to the bottom]
On 12/07/2012 02:36 PM, Thomas Capricelli wrote:
Il 07/12/2012 23:18, Sameer Agarwal ha scritto:
Eigen is a linear algebra library (or atleast thats how most people
think about it).
why should a full fledged nonlinear least squares library be included
in it?

Sure it would be insane to include the "full-fledged" ceres in eigen.
But i disagree that some LM implementation has nothing to do in eigen :
as most nonlinear algorithm, it's mostly "do a lot of linear operations
in loops". Very much in the topic of eigen.

I have often thought about using Eigen for my own scientific computing
projects, but each time I have been deterred by what I consider its
enormous size (don't even get me started about Boost). To include a
nonlinear optimizer in it would just make things that much worse. I know
there are a lot of projects out there that use Eigen only for fixed size
3x3 or 4x4 matrices for use in graphics, or some that use it for basic
matrix multiplication/inversion and such. Including LM would be far
outside the realm of relevance for them.

I agree that putting a full-fledged non-linear LS solver into Eigen is way out-of-scope. And implementing "just Levenberg-Marquardt" within Eigen has a quite limited use IMHO, as I think that for all non-trivial optimization problems there are still the tasks of variable management and calculating the Jacobian.

Actually, I would suggest starting a side-project for non-linear least squares problems, joining the efforts of all existing algorithms -- having a nice Eigen-like API using the most efficient solvers under the hood. I might write a separate mail regarding this to the authors of g2o, iSAM and ceres the next days (if someone else wants to join, just tell so)


Dipl.-Inf. Christoph Hertzberg
Cartesium 0.049
Universität Bremen
Enrique-Schmidt-Straße 5
28359 Bremen

Tel: +49 (421) 218-64252

Mail converted by MHonArc 2.6.19+