Home  

Random  

Nearby  



Log in  



Settings  



Donate  



About Wikipedia  

Disclaimers  



Wikipedia





BroydenFletcherGoldfarbShanno algorithm





Article  

Talk  



Language  

Watch  

Edit  





Innumerical optimization, the Broyden–Fletcher–Goldfarb–Shanno (BFGS) algorithm is an iterative method for solving unconstrained nonlinear optimization problems.[1] Like the related Davidon–Fletcher–Powell method, BFGS determines the descent directionbypreconditioning the gradient with curvature information. It does so by gradually improving an approximation to the Hessian matrix of the loss function, obtained only from gradient evaluations (or approximate gradient evaluations) via a generalized secant method.[2]

Since the updates of the BFGS curvature matrix do not require matrix inversion, its computational complexity is only , compared to inNewton's method. Also in common use is L-BFGS, which is a limited-memory version of BFGS that is particularly suited to problems with very large numbers of variables (e.g., >1000). The BFGS-B variant handles simple box constraints.[3]

The algorithm is named after Charles George Broyden, Roger Fletcher, Donald Goldfarb and David Shanno.[4][5][6][7]

Rationale

edit

The optimization problem is to minimize  , where   is a vector in  , and   is a differentiable scalar function. There are no constraints on the values that   can take.

The algorithm begins at an initial estimate   for the optimal value and proceeds iteratively to get a better estimate at each stage.

The search direction pk at stage k is given by the solution of the analogue of the Newton equation:

 

where   is an approximation to the Hessian matrixat , which is updated iteratively at each stage, and   is the gradient of the function evaluated at xk. A line search in the direction pk is then used to find the next point xk+1 by minimizing   over the scalar  

The quasi-Newton condition imposed on the update of  is

 

Let   and  , then   satisfies

 ,

which is the secant equation.

The curvature condition   should be satisfied for   to be positive definite, which can be verified by pre-multiplying the secant equation with  . If the function is not strongly convex, then the condition has to be enforced explicitly e.g. by finding a point xk+1 satisfying the Wolfe conditions, which entail the curvature condition, using line search.

Instead of requiring the full Hessian matrix at the point   to be computed as  , the approximate Hessian at stage k is updated by the addition of two matrices:

 

Both   and   are symmetric rank-one matrices, but their sum is a rank-two update matrix. BFGS and DFP updating matrix both differ from its predecessor by a rank-two matrix. Another simpler rank-one method is known as symmetric rank-one method, which does not guarantee the positive definiteness. In order to maintain the symmetry and positive definiteness of  , the update form can be chosen as  . Imposing the secant condition,  . Choosing   and  , we can obtain:[8]

 
 

Finally, we substitute   and   into   and get the update equation of  :

 

Algorithm

edit

Consider the following unconstrained optimization problem   where   is a nonlinear objective function.

From an initial guess   and an initial guess of the Hessian matrix   the following steps are repeated as   converges to the solution:

  1. Obtain a direction   by solving  .
  2. Perform a one-dimensional optimization (line search) to find an acceptable stepsize   in the direction found in the first step. If an exact line search is performed, then   . In practice, an inexact line search usually suffices, with an acceptable   satisfying Wolfe conditions.
  3. Set   and update  .
  4.  .
  5.  .

Convergence can be determined by observing the norm of the gradient; given some  , one may stop the algothim when  If  is initialized with  , the first step will be equivalent to a gradient descent, but further steps are more and more refined by  , the approximation to the Hessian.

The first step of the algorithm is carried out using the inverse of the matrix  , which can be obtained efficiently by applying the Sherman–Morrison formula to the step 5 of the algorithm, giving

 

This can be computed efficiently without temporary matrices, recognizing that   is symmetric, and that   and   are scalars, using an expansion such as

 

Therefore, in order to avoid any matrix inversion, the inverse of the Hessian can be approximated instead of the Hessian itself:  [9]

From an initial guess   and an approximate inverted Hessian matrix   the following steps are repeated as   converges to the solution:

  1. Obtain a direction   by solving  .
  2. Perform a one-dimensional optimization (line search) to find an acceptable stepsize   in the direction found in the first step. If an exact line search is performed, then   . In practice, an inexact line search usually suffices, with an acceptable   satisfying Wolfe conditions.
  3. Set   and update  .
  4.  .
  5.  .

In statistical estimation problems (such as maximum likelihood or Bayesian inference), credible intervalsorconfidence intervals for the solution can be estimated from the inverse of the final Hessian matrix [citation needed]. However, these quantities are technically defined by the true Hessian matrix, and the BFGS approximation may not converge to the true Hessian matrix.[10]

Further developments

edit

The BFGS update formula heavily relies on the curvature   being strictly positive and bounded away from zero. This condition is satisfied when we perform a line search with Wolfe conditions on a convex target. However, some real-life applications (like Sequential Quadratic Programming methods) routinely produce negative or nearly-zero curvatures. This can occur when optimizing a nonconvex target or when employing a trust-region approach instead of a line search. It is also possible to produce spurious values due to noise in the target.

In such cases, one of the so-called damped BFGS updates can be used (see [11]) which modify   and/or   in order to obtain a more robust update.

Notable implementations

edit

Notable open source implementations are:

Notable proprietary implementations include:

See also

edit
  • Davidon–Fletcher–Powell formula
  • Gradient descent
  • L-BFGS
  • Levenberg–Marquardt algorithm
  • Nelder–Mead method
  • Pattern search (optimization)
  • Quasi-Newton methods
  • Symmetric rank-one
  • References

    edit
    1. ^ Fletcher, Roger (1987), Practical Methods of Optimization (2nd ed.), New York: John Wiley & Sons, ISBN 978-0-471-91547-8
  • ^ Dennis, J. E. Jr.; Schnabel, Robert B. (1983), "Secant Methods for Unconstrained Minimization", Numerical Methods for Unconstrained Optimization and Nonlinear Equations, Englewood Cliffs, NJ: Prentice-Hall, pp. 194–215, ISBN 0-13-627216-9
  • ^ Byrd, Richard H.; Lu, Peihuang; Nocedal, Jorge; Zhu, Ciyou (1995), "A Limited Memory Algorithm for Bound Constrained Optimization", SIAM Journal on Scientific Computing, 16 (5): 1190–1208, CiteSeerX 10.1.1.645.5814, doi:10.1137/0916069
  • ^ Broyden, C. G. (1970), "The convergence of a class of double-rank minimization algorithms", Journal of the Institute of Mathematics and Its Applications, 6: 76–90, doi:10.1093/imamat/6.1.76
  • ^ Fletcher, R. (1970), "A New Approach to Variable Metric Algorithms", Computer Journal, 13 (3): 317–322, doi:10.1093/comjnl/13.3.317
  • ^ Goldfarb, D. (1970), "A Family of Variable Metric Updates Derived by Variational Means", Mathematics of Computation, 24 (109): 23–26, doi:10.1090/S0025-5718-1970-0258249-6
  • ^ Shanno, David F. (July 1970), "Conditioning of quasi-Newton methods for function minimization", Mathematics of Computation, 24 (111): 647–656, doi:10.1090/S0025-5718-1970-0274029-X, MR 0274029
  • ^ Fletcher, Roger (1987), Practical methods of optimization (2nd ed.), New York: John Wiley & Sons, ISBN 978-0-471-91547-8
  • ^ Nocedal, Jorge; Wright, Stephen J. (2006), Numerical Optimization (2nd ed.), Berlin, New York: Springer-Verlag, ISBN 978-0-387-30303-1
  • ^ Ge, Ren-pu; Powell, M. J. D. (1983). "The Convergence of Variable Metric Matrices in Unconstrained Optimization". Mathematical Programming. 27 (2). 123. doi:10.1007/BF02591941. S2CID 8113073.
  • ^ Jorge Nocedal; Stephen J. Wright (2006), Numerical Optimization
  • ^ "GNU Scientific Library — GSL 2.6 documentation". www.gnu.org. Retrieved 2020-11-22.
  • ^ "R: General-purpose Optimization". stat.ethz.ch. Retrieved 2020-11-22.
  • ^ "scipy.optimize.fmin_bfgs — SciPy v1.5.4 Reference Guide". docs.scipy.org. Retrieved 2020-11-22.
  • ^ "Optim.jl Configurable options". julianlsolvers.
  • Further reading

    edit

    Retrieved from "https://en.wikipedia.org/w/index.php?title=Broyden–Fletcher–Goldfarb–Shanno_algorithm&oldid=1227712547"
     



    Last edited on 7 June 2024, at 11:43  





    Languages

     


    Deutsch
    فارسی
    Français

    Русский
    Українська

     

    Wikipedia


    This page was last edited on 7 June 2024, at 11:43 (UTC).

    Content is available under CC BY-SA 4.0 unless otherwise noted.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Terms of Use

    Desktop