-
Notifications
You must be signed in to change notification settings - Fork 6
Levmar
Levmar is an Open Source implementation of the Levenberg-Marquardt optimization algorithm. This method combines the properties of both the steepest decent and Gauss Newton methods to quickly converge upon local solution of a function that is expressed as the sum of squares of non-linear functions.
Levmar may be selected from within the GUI or specified by levmar
on the command line.
In addition to the standard output files
produced at the end of the minimization, this minimizer also generates
output on the console that is worth monitoring
Levmar is distributed under GPL v2 license. The developer (Manolis Lourakis) requests that if you use Levmar in your work you include a citation to the Levmar website. Please see the Levmar website for further details.
After loading the data and creating a suitable model, the user should select which parameters should be explored (by checking "Free") and then specify the minimum and maximum for each free parameter. All of this may be done in either the GUI or in the JSON save file. Once this step has been completed it is advised that the user save the file and then begin the minimization process.
Because the algorithm finds local solutions, it is suggested you choose your parameter space wisely and inspect the resulting output to ensure Levmar has converted on a valid solution.
Levmar is a very powerful general minimization engine which we have found is
particularly sensitive to topology in "chi-squared space." Because of this,
we have altered the default configuration for Levmar to be better suited
for the models and data sets we have encountered. Unfortunately, we have
yet to expose any configuration options to the user in the GUI. If you find
that you need to tweak the gradient decent step size or convergence detection
criteria, please see the CLevmar::run
function in src/minimizers/CLevmar.cpp
and the documentation of the parameters on
the Levmar website.