This forum has been archived. All content is frozen. Please use KDE Discuss instead.

LevenbergMarquardt algorithm

Tags: None
(comma "," separated)
parepalli
Registered Member
Posts
2
Karma
0

LevenbergMarquardt algorithm

Thu Nov 01, 2018 8:50 am
Why is that number of observations should be more than the number of parameters?

In line number 137 of LevenbergMarquardt.h
if (n <= 0 || m < n || tol < 0.)
return LevenbergMarquardtSpace::ImproperInputParameters;

Is it the problem with implementation of algorithm in Eigen or the constraint of algorithm itself?

Thank you
User avatar
scummos
Global Moderator
Posts
1175
Karma
7
OS

Re: LevenbergMarquardt algorithm

Thu Nov 01, 2018 9:59 am
Technically neither, it's logically required to have more observations than parameters in order for the possible solutions to be points in the solution space. If you have more parameters than observations, you cannot find points any more where the solution is locally the best solution; instead you get lines, or planes, etc depending on the amount of observations missing. Since the output of the algorithm is optimum points, you could say it is a limitation of the algorithm.

In general for any non-trivial problem, you want to have a *lot* more observations than parameters for using any least squares method. Applying LM to find 8 parameters for an equation using 15 observation points will in my experience pretty much always yield utter nonsense.


I'm working on the KDevelop IDE.
parepalli
Registered Member
Posts
2
Karma
0

Re: LevenbergMarquardt algorithm

Fri Nov 02, 2018 1:40 am
I do understand that more the observations, better is the output.

You can refer https://stackoverflow.com/questions/53038963/find-optimal-rigid-transformation-given-correspondece-pairs-of-points for my prroblem. I actually have weights too for each pair. Number of observations I have can be as low as "1" for 6 Degrees of Freedom. Can you recommend any other solution for this problem?

Thank you
User avatar
scummos
Global Moderator
Posts
1175
Karma
7
OS

Re: LevenbergMarquardt algorithm

Sat Nov 03, 2018 11:51 am
You cannot solve this problem. You simply do not have enough information to find a single solution. This is not a problem of the algorithm, but of your understanding of the issue.

If I ask you to find me a specific point on a map, and all the information how to identify the point is "it's 12 degrees north", you cannot do that, can you? That is exactly the same situation.


I'm working on the KDevelop IDE.


Bookmarks



Who is online

Registered users: Bing [Bot], Evergrowing, Google [Bot], rblackwell