OpenANN
1.1.0
An open source library for artificial neural networks.
|
Levenberg-Marquardt Algorithm. More...
#include <LMA.h>
Public Member Functions | |
LMA () | |
virtual | ~LMA () |
virtual void | setOptimizable (Optimizable &opt) |
Pass the objective function. More... | |
virtual void | setStopCriteria (const StoppingCriteria &stop) |
Pass the stop criteria. More... | |
virtual void | optimize () |
Optimize until the optimization meets the stop criteria. More... | |
virtual bool | step () |
Execute one optimization step. More... | |
virtual Eigen::VectorXd | result () |
Determine the best result. More... | |
virtual std::string | name () |
Get the name of the optimization algorithm. More... | |
Public Member Functions inherited from OpenANN::Optimizer | |
virtual | ~Optimizer () |
Levenberg-Marquardt Algorithm.
This algorithm works especially well for least squares optimization. The optimization will stop if one of the following stopping criteria is satisfied:
The optimization is cubic in each iteration, i. e. the complexity is , where L is the number of parameters to optimize. In addition, the jacobian matrix is required for this algorithm, that is the required space is in , where N is the size of the training set. However, LMA requires only a few iterations to converge. Thus, it works very well up to a few thousand parameters and a few thousand training examples. In summary, the requirements are:
[1] Kenneth Levenberg: A Method for the Solution of Certain Problems in Least Squares, Quarterly of Applied Mathematics 2, pp. 164-168, 1944.
[2] Donald Marquardt: An Algorithm for Least-Squares Estimation of Nonlinear Parameters, Journal of the Society for Industrial and Applied Mathematics 11 (2), pp. 431-441, 1963.
OpenANN::LMA::LMA | ( | ) |
|
virtual |
|
virtual |
Get the name of the optimization algorithm.
Implements OpenANN::Optimizer.
|
virtual |
Optimize until the optimization meets the stop criteria.
Implements OpenANN::Optimizer.
|
virtual |
Determine the best result.
Implements OpenANN::Optimizer.
|
virtual |
Pass the objective function.
optimizable | objective function, e. g. error function of an ANN |
Implements OpenANN::Optimizer.
|
virtual |
Pass the stop criteria.
sc | the parameters used to stop the optimization |
Implements OpenANN::Optimizer.
|
virtual |
Execute one optimization step.
Implements OpenANN::Optimizer.