NPL
Neurological Programs and Libraries
npl::LBFGSOpt Class Reference

Limited-Memory Broyden–Fletcher–Goldfarb–Shanno Algorithm based on "A Limited Memory Algorithm for Bound Constrained Optimization" Richard H. Byrd, Peihuang Lu, Jorge Nocedal, and Ciyou Zhu http://dx.doi.org/10.1137/0916069. More...

#include <lbfgs.h>

Inherits npl::Optimizer.

Public Member Functions

 LBFGSOpt (size_t dim, const ValFunc &valfunc, const GradFunc &gradfunc, const CallBackFunc &callback=noopCallback)
 
 LBFGSOpt (size_t dim, const ValFunc &valfunc, const GradFunc &gradfunc, const ValGradFunc &gradAndValFunc, const CallBackFunc &callback=noopCallback)
 
StopReason optimize ()
 Perform LBFGS optimization. More...
 
void reset_history ()
 Reset the history. More...
 

Static Public Member Functions

static std::string explainStop (StopReason r)
 Provides a string that describes the stop reason. More...
 

Public Attributes

int opt_histsize
 Number of updates to store for the purposes of estimating the hessian matrix. More...
 
double opt_ls_s
 Maximum step during line search. More...
 
double opt_ls_beta
 How quickly to reduce linesearch distance. Power function base, values closer to 0 will decrease step size faster than ones close to 1. More...
 
double opt_ls_sigma
 Theshold for stopping linesearch. More...
 
VectorXd opt_H0inv
 Default (initial) value for inverse hessian matrix. More...
 
VectorXd state_x
 State variable, set to initialize. More...
 
double stop_G
 Stop when graient magnitde falls below this value. More...
 
double stop_X
 Stop when step size drops below this value. More...
 
double stop_F
 Stop when change in function value drops below this value. More...
 
double stop_F_over
 Stop immediately when value goes above this. More...
 
double stop_F_under
 Stop immediately when value goes below this. More...
 
int stop_Its
 Stop after this many iterations (does not include linesearch) More...
 

Protected Attributes

ValGradFunc m_compFG
 
GradFunc m_compG
 
ValFunc m_compF
 
CallBackFunc m_callback
 

Detailed Description

Limited-Memory Broyden–Fletcher–Goldfarb–Shanno Algorithm based on "A Limited Memory Algorithm for Bound Constrained Optimization" Richard H. Byrd, Peihuang Lu, Jorge Nocedal, and Ciyou Zhu http://dx.doi.org/10.1137/0916069.

Definition at line 45 of file lbfgs.h.

Constructor & Destructor Documentation

npl::LBFGSOpt::LBFGSOpt ( size_t  dim,
const ValFunc valfunc,
const GradFunc gradfunc,
const CallBackFunc callback = noopCallback 
)
npl::LBFGSOpt::LBFGSOpt ( size_t  dim,
const ValFunc valfunc,
const GradFunc gradfunc,
const ValGradFunc gradAndValFunc,
const CallBackFunc callback = noopCallback 
)

Member Function Documentation

static std::string npl::Optimizer::explainStop ( StopReason  r)
staticinherited

Provides a string that describes the stop reason.

Parameters
r
StopReason npl::LBFGSOpt::optimize ( )
virtual

Perform LBFGS optimization.

Returns

Reimplemented from npl::Optimizer.

void npl::LBFGSOpt::reset_history ( )
inline

Reset the history.

Definition at line 69 of file lbfgs.h.

Member Data Documentation

CallBackFunc npl::Optimizer::m_callback
protectedinherited

Definition at line 245 of file opt.h.

ValFunc npl::Optimizer::m_compF
protectedinherited

Definition at line 244 of file opt.h.

ValGradFunc npl::Optimizer::m_compFG
protectedinherited

Definition at line 242 of file opt.h.

GradFunc npl::Optimizer::m_compG
protectedinherited

Definition at line 243 of file opt.h.

VectorXd npl::LBFGSOpt::opt_H0inv

Default (initial) value for inverse hessian matrix.

Definition at line 96 of file lbfgs.h.

int npl::LBFGSOpt::opt_histsize

Number of updates to store for the purposes of estimating the hessian matrix.

Definition at line 69 of file lbfgs.h.

double npl::LBFGSOpt::opt_ls_beta

How quickly to reduce linesearch distance. Power function base, values closer to 0 will decrease step size faster than ones close to 1.

Definition at line 86 of file lbfgs.h.

double npl::LBFGSOpt::opt_ls_s

Maximum step during line search.

Definition at line 80 of file lbfgs.h.

double npl::LBFGSOpt::opt_ls_sigma

Theshold for stopping linesearch.

Definition at line 91 of file lbfgs.h.

VectorXd npl::Optimizer::state_x
inherited

State variable, set to initialize.

Definition at line 162 of file opt.h.

double npl::Optimizer::stop_F
inherited

Stop when change in function value drops below this value.

Definition at line 177 of file opt.h.

double npl::Optimizer::stop_F_over
inherited

Stop immediately when value goes above this.

Definition at line 182 of file opt.h.

double npl::Optimizer::stop_F_under
inherited

Stop immediately when value goes below this.

Definition at line 187 of file opt.h.

double npl::Optimizer::stop_G
inherited

Stop when graient magnitde falls below this value.

Definition at line 167 of file opt.h.

int npl::Optimizer::stop_Its
inherited

Stop after this many iterations (does not include linesearch)

Definition at line 192 of file opt.h.

double npl::Optimizer::stop_X
inherited

Stop when step size drops below this value.

Definition at line 172 of file opt.h.


The documentation for this class was generated from the following file: