Gauss-Newton Optimization
GaussianMarkovRandomFields.GaussNewtonOptimizer
— TypeGaussNewtonOptimizer
Tunable Gauss-Newton optimization routine to find the maximum a posteriori (MAP) estimate under nonlinear observations and a GMRF prior. TODO: Explain parameters.
GaussianMarkovRandomFields.optimize
— Functionoptimize(optim::GaussNewtonOptimizer)
Iterate until the stopping criterion is fulfilled.
GaussianMarkovRandomFields.take_step
— Functiontake_step(optim::GaussNewtonOptimizer)
Take a Gauss-Newton step in the optimization process.
Solvers
GaussianMarkovRandomFields.GNLinearSolverBlueprint
— TypeGNLinearSolverBlueprint
Abstract type for the specification of a solver for the linear systems arising in Gauss-Newton optimization.
GaussianMarkovRandomFields.GNCholeskySolverBlueprint
— TypeGNCholeskySolverBlueprint(perm)
Specification of a linear solver for Gauss-Newton systems based on the Cholesky decomposition. perm
is a node reordering (permutation) to minimize fill-in. If such a reordering is available from previous computations, it can be reused here to avoid unnecessary computational overhead. If perm
is not passed, it will be computed during the Cholesky decomposition.
GaussianMarkovRandomFields.GNCGSolverBlueprint
— TypeGNCGSolverBlueprint(; maxiter, reltol, abstol, preconditioner_fn, verbose)
Specification of a linear solver for Gauss-Newton systems based on the conjugate gradient (CG) method.
Line search strategies
GaussianMarkovRandomFields.AbstractLineSearch
— TypeAbstractLineSearch
Abstract type for the specification of a line search scheme for optimization.
GaussianMarkovRandomFields.BacktrackingLineSearch
— TypeBacktrackingLineSearch
Specification of a line search based on backtracking via the Armijo condition. TODO: Description of parameters
GaussianMarkovRandomFields.NoLineSearch
— TypeNoLineSearch
A type that communicates that no line search will be used, i.e. the initial step proposed by the optimization algorithm is the step that will be taken.
Stopping criteria
GaussianMarkovRandomFields.AbstractStoppingCriterion
— TypeAbstractStoppingCriterion
Abstract type for the specification of a criterion that tells an optimization algorithm when to stop iterating.
GaussianMarkovRandomFields.NewtonDecrementCriterion
— TypeNewtonDecrementCriterion(threshold)
Stops the optimization procedure when ∇f(xₖ) ∇²f(xₖ)⁻¹ ∇f(xₖ) < threshold.
GaussianMarkovRandomFields.StepNumberCriterion
— TypeStepNumberCriterion(max_steps)
Stops the optimization procedure when a maximum number of iterations / steps is reached.
GaussianMarkovRandomFields.OrCriterion
— TypeOrCriterion(criteria)
Stops the optimization procedure when any of the criteria in criteria
are fulfilled.