Documentation of 'org.ddogleg.optimization.impl.LevenbergMarquardtDampened' Java class
LevenbergMarquardtDampened
org.ddogleg.optimization.impl

Class LevenbergMarquardtDampened



  • public class LevenbergMarquardtDampened
    extends LevenbergDenseBase

    Modification of LevenbergDampened which incorporates the insight of Marquardt. The insight was to use the function's curvature information to increase dampening along directions with a larger gradient. In practice this method seems to do better on nearly singular systems.

    The step 'x' is computed using the following formula: [J(k)'*J(k) + μ*diag(J(k)'*J(k))]x = -g = -J'*f
    where J is the Jacobian, μ is the damping coefficient, g is the gradient, f is the functions output.

    The linear solver it uses is specified in the constructor. Cholesky based solver will be the fastest but can fail if the J(x)'J(x) matrix is nearly singular. In those situations a pseudo inverse type solver should be used, which is immune to that type of problem but much more expensive.

    • Constructor Detail

      • LevenbergMarquardtDampened

        public LevenbergMarquardtDampened(org.ejml.interfaces.linsol.LinearSolver<org.ejml.data.DenseMatrix64F> solver,
                                          double initialDampParam)
        Specifies termination condition and linear solver. Selection of the linear solver an effect speed and robustness.
        Parameters:
        solver - Linear solver. Cholesky or pseudo-inverse are recommended.
        initialDampParam - Initial value of the dampening parameter. Tune.. try 1e-3;

DataMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.