Difference between revisions of "Lbfgs.m"

From Spinach Documentation Wiki
Jump to: navigation, search
(Arguments)
(Sync syntax/arguments/outputs with current Spinach source)
Line 1: Line 1:
{{DISPLAYTITLE:lbfgs.m}}
+
{{DISPLAYTITLE:lbfgs.m}} __NOTOC__
 +
 
 
Calculates an approximation to the Newton-Raphson search direction using past gradients to build a serviceable substitute to a Hessian. The Hessian matrix is never explicitly formed or inverted. This function is the implementation from section 4 of http://dx.doi.org/10.1090/S0025-5718-1980-0572855-7
 
Calculates an approximation to the Newton-Raphson search direction using past gradients to build a serviceable substitute to a Hessian. The Hessian matrix is never explicitly formed or inverted. This function is the implementation from section 4 of http://dx.doi.org/10.1090/S0025-5718-1980-0572855-7
  
 
==Syntax==
 
==Syntax==
  
    direction=lbfgs(dx_hist,dg_hist,g)
+
direction=lbfgs(dx_hist,dg_hist,g)
  
 
==Arguments==
 
==Arguments==
           
+
 
    dx_hist        - history of x increments, a stack  
+
dx_hist        - history of x increments, a stack
 
                       of column vectors, from the latest
 
                       of column vectors, from the latest
 
                       to the earliest
 
                       to the earliest
+
 
 
     dg_hist        - history of gradient increments,
 
     dg_hist        - history of gradient increments,
                       a stack of column vectors, from  
+
                       a stack of column vectors, from
 
                       the latest to the earliest
 
                       the latest to the earliest
 
+
 
 
     g              - current gradient
 
     g              - current gradient
  
==Output==
+
Returns:
 +
 
 +
    direction      - LBFGS approximation to the
 +
                      maximisation step vector
  
    direction      - LBFGS approximation to the
+
david.goodwin@inano.au.dk
                      search direction
+
ilya.kuprov@weizmann.ac.il
  
 
==Notes==
 
==Notes==
 +
 
The L-BFGS algorithm is the default of [[fminnewton.m]], and is a good mix of computational efficiency and fast convergence.
 
The L-BFGS algorithm is the default of [[fminnewton.m]], and is a good mix of computational efficiency and fast convergence.
  
 
==See also==
 
==See also==
 +
 
[[fminnewton.m]], [[hessreg.m]], [[linesearch.m]]
 
[[fminnewton.m]], [[hessreg.m]], [[linesearch.m]]
  
  
 
''Version 2.2, authors: [[Ilya Kuprov]], [[David Goodwin]]''
 
''Version 2.2, authors: [[Ilya Kuprov]], [[David Goodwin]]''
 +
 +
==Output==
 +
 +
direction      - LBFGS approximation to the
 +
                      search direction

Revision as of 15:06, 5 April 2026


Calculates an approximation to the Newton-Raphson search direction using past gradients to build a serviceable substitute to a Hessian. The Hessian matrix is never explicitly formed or inverted. This function is the implementation from section 4 of http://dx.doi.org/10.1090/S0025-5718-1980-0572855-7

Syntax

direction=lbfgs(dx_hist,dg_hist,g)

Arguments

dx_hist - history of x increments, a stack

                     of column vectors, from the latest
                     to the earliest
   dg_hist         - history of gradient increments,
                     a stack of column vectors, from
                     the latest to the earliest
   g               - current gradient
Returns:
   direction       - LBFGS approximation to the
                     maximisation step vector
david.goodwin@inano.au.dk
ilya.kuprov@weizmann.ac.il

Notes

The L-BFGS algorithm is the default of fminnewton.m, and is a good mix of computational efficiency and fast convergence.

See also

fminnewton.m, hessreg.m, linesearch.m


Version 2.2, authors: Ilya Kuprov, David Goodwin

Output

direction - LBFGS approximation to the

                     search direction