Computing Library › Optimization
Optimization

Trust-Region Methods

Build a local model, trust it only within a region, and expand or shrink that region based on how well the model predicted reality.

Trust the model locally

Line-search methods pick a direction, then a step length. Trust-region methods instead choose a region of radius delta around the current point in which a quadratic model is believed accurate, then find the best step within that region. If the model predicts the actual decrease well, the region grows; if not, it shrinks.

The subproblem

Kronos motion — pid vs model

At each iteration solve: minimize m(p) = f + grad^T p + (1/2) p^T B p subject to ||p|| <= delta, where B is the Hessian or an approximation. This trust-region subproblem is well posed even when B is indefinite, which is a key advantage over pure Newton steps near saddle points.

Adapting the radius

Compute the ratio rho of actual reduction in f to reduction predicted by the model. If rho is close to 1 the model is trustworthy: accept the step and possibly enlarge delta. If rho is small or negative the model is poor: reject the step and shrink delta. This feedback loop makes trust-region methods robust.

Solving the subproblem

Strengths

Trust-region methods handle nonconvex objectives and indefinite Hessians gracefully, converge globally to a stationary point, and retain fast local convergence. They are the basis of derivative-free trust-region methods and of robust nonlinear least-squares solvers like Levenberg-Marquardt, which is a trust-region method in disguise.

python
from scipy.optimize import minimize
res = minimize(f, x0, method='trust-ncg', jac=grad, hess=hess)

Trust-region and Levenberg-Marquardt solvers robustly fit nonlinear physics models to data even when curvature estimates are unreliable.