Reference · Algorithm guarantees
rainbow.algorithms.proofs.levenberg-marquardt
Levenberg-Marquardt as the general descent skeleton with a damped Hessian-inverse step size. The step size at a point is `1 / (hessian(point) + lambda)`, interpolating between Newton's method (lambda = 0) and small gradient steps (large lambda). The damping parameter lambda keeps the step well-defined even when the Hessian is small, using exact rational division and addition (AHoF O31). Only the step-size function is new; the descent loop is the O13 skeleton. Scope (measured by the kernel): this module has 1 definitional unfoldings (true by unfolding a definition). None of its theorems is a guarantee about the algorithm for all inputs; `lein verify rainbow.algorithms.proofs.levenberg-marquardt` prints this classification.
optimization/levenberg-marquardt-rate
optimization/levenberg-marquardt-rate : (hessian : ℚ → ℚ≥0) (lambda : ℚ≥0) (point : ℚ) → ℚ≥0
ℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational
optimization/levenberg-marquardt-rate-unfold
optimization/levenberg-marquardt-rate-unfold : (hessian : ℚ → ℚ≥0) (lambda : ℚ≥0) (point : ℚ) → optimization/levenberg-marquardt-rate hessian lambda point = nnrat/reciprocal (hessian point + lambda)
+ = nnrat/add= = equality/Eqℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational