|  | OpenANN
    1.1.0
    An open source library for artificial neural networks. | 
Levenberg-Marquardt Algorithm. More...
#include <LMA.h>
 Inheritance diagram for OpenANN::LMA:
 Inheritance diagram for OpenANN::LMA:| 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:
 stop.minimalSearchSpaceStep
 stop.minimalSearchSpaceStep stop.minimalValueDifferences
 stop.minimalValueDifferences 
 stop.maximalIterations
 stop.maximalIterationsThe 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 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:
, 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.
 1.8.4
 1.8.4