Gauss-Newton Optimization
GMRFs.GaussNewtonOptimizer — TypeGaussNewtonOptimizerTunable Gauss-Newton optimization routine to find the maximum a posteriori (MAP) estimate under nonlinear observations and a GMRF prior. TODO: Explain parameters.
GMRFs.optimize — Functionoptimize(optim::GaussNewtonOptimizer)Iterate until the stopping criterion is fulfilled.
GMRFs.take_step — Functiontake_step(optim::GaussNewtonOptimizer)Take a Gauss-Newton step in the optimization process.
Solvers
GMRFs.GNLinearSolverBlueprint — TypeGNLinearSolverBlueprintAbstract type for the specification of a solver for the linear systems arising in Gauss-Newton optimization.
GMRFs.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.
GMRFs.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
GMRFs.AbstractLineSearch — TypeAbstractLineSearchAbstract type for the specification of a line search scheme for optimization.
GMRFs.BacktrackingLineSearch — TypeBacktrackingLineSearchSpecification of a line search based on backtracking via the Armijo condition. TODO: Description of parameters
GMRFs.NoLineSearch — TypeNoLineSearchA 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
GMRFs.AbstractStoppingCriterion — TypeAbstractStoppingCriterionAbstract type for the specification of a criterion that tells an optimization algorithm when to stop iterating.
GMRFs.NewtonDecrementCriterion — TypeNewtonDecrementCriterion(threshold)Stops the optimization procedure when ∇f(xₖ) ∇²f(xₖ)⁻¹ ∇f(xₖ) < threshold.
GMRFs.StepNumberCriterion — TypeStepNumberCriterion(max_steps)Stops the optimization procedure when a maximum number of iterations / steps is reached.
GMRFs.OrCriterion — TypeOrCriterion(criteria)Stops the optimization procedure when any of the criteria in criteria are fulfilled.