![]() |
SG++-Doxygen-Documentation
|
Gradient-based nonlinear conjugate gradient method. More...
#include <NLCG.hpp>
Static Public Attributes | |
static constexpr double | DEFAULT_BETA = 0.5 |
default beta (parameter for Armijo's rule) | |
static constexpr double | DEFAULT_EPSILON = 1e-18 |
default epsilon (parameter for Armijo's rule) | |
static constexpr double | DEFAULT_GAMMA = 1e-2 |
default gamma (parameter for Armijo's rule) | |
static constexpr double | DEFAULT_RESTART_THRESHOLD = 0.1 |
default restart threshold | |
static constexpr double | DEFAULT_TOLERANCE = 1e-8 |
default tolerance (parameter for Armijo's rule) | |
![]() | |
static const size_t | DEFAULT_N = 1000 |
default maximal number of iterations or function evaluations | |
Protected Attributes | |
double | alpha |
restart threshold | |
double | beta |
beta (parameter for Armijo's rule) | |
double | eps |
epsilon (parameter for Armijo's rule) | |
double | gamma |
gamma (parameter for Armijo's rule) | |
double | tol |
tolerance (parameter for Armijo's rule) | |
![]() | |
std::unique_ptr< base::ScalarFunction > | f |
objective function | |
std::unique_ptr< base::ScalarFunctionGradient > | fGradient |
objective function gradient | |
std::unique_ptr< base::ScalarFunctionHessian > | fHessian |
objective function Hessian | |
base::DataVector | fHist |
search history vector (optimal values) | |
double | fOpt |
result of optimization (optimal function value) | |
size_t | N |
maximal number of iterations or function evaluations | |
base::DataVector | x0 |
starting point | |
base::DataMatrix | xHist |
search history matrix (optimal points) | |
base::DataVector | xOpt |
result of optimization (location of optimum) | |
Gradient-based nonlinear conjugate gradient method.
The method is restarted with the steepest descent direction if the normalized absolute value of the inner product of two successive gradients exceeds a "restart threshold" \(\alpha\).
sgpp::optimization::optimizer::NLCG::NLCG | ( | const base::ScalarFunction & | f, |
const base::ScalarFunctionGradient & | fGradient, | ||
size_t | maxItCount = DEFAULT_N , |
||
double | beta = DEFAULT_BETA , |
||
double | gamma = DEFAULT_GAMMA , |
||
double | tolerance = DEFAULT_TOLERANCE , |
||
double | epsilon = DEFAULT_EPSILON , |
||
double | restartThreshold = DEFAULT_RESTART_THRESHOLD |
||
) |
Constructor.
f | objective function |
fGradient | objective function gradient |
maxItCount | maximal number of iterations |
beta | beta (parameter for Armijo's rule) |
gamma | gamma (parameter for Armijo's rule) |
tolerance | tolerance (parameter for Armijo's rule) |
epsilon | epsilon (parameter for Armijo's rule) |
restartThreshold | restart threshold |
sgpp::optimization::optimizer::NLCG::NLCG | ( | const NLCG & | other | ) |
Copy constructor.
other | optimizer to be copied |
|
override |
Destructor.
|
overridevirtual |
[out] | clone | pointer to cloned object |
Implements sgpp::optimization::optimizer::UnconstrainedOptimizer.
References clone().
Referenced by clone().
double sgpp::optimization::optimizer::NLCG::getBeta | ( | ) | const |
References beta.
double sgpp::optimization::optimizer::NLCG::getEpsilon | ( | ) | const |
References eps.
double sgpp::optimization::optimizer::NLCG::getGamma | ( | ) | const |
References gamma.
double sgpp::optimization::optimizer::NLCG::getRestartThreshold | ( | ) | const |
References alpha.
double sgpp::optimization::optimizer::NLCG::getTolerance | ( | ) | const |
References tol.
|
overridevirtual |
Pure virtual method for optimization of the objective function.
The result of the optimization process can be obtained by member functions, e.g., getOptimalPoint() and getOptimalValue().
Implements sgpp::optimization::optimizer::UnconstrainedOptimizer.
References alpha, sgpp::base::DataVector::append(), sgpp::base::DataMatrix::appendRow(), beta, sgpp::base::DataVector::dotProduct(), eps, sgpp::optimization::optimizer::UnconstrainedOptimizer::f, sgpp::optimization::optimizer::UnconstrainedOptimizer::fGradient, sgpp::optimization::optimizer::UnconstrainedOptimizer::fHist, sgpp::optimization::optimizer::UnconstrainedOptimizer::fOpt, gamma, sgpp::base::Printer::getInstance(), sgpp::base::DataVector::l2Norm(), sgpp::optimization::optimizer::lineSearchArmijo(), sgpp::optimization::optimizer::UnconstrainedOptimizer::N, sgpp::base::Printer::printStatusBegin(), sgpp::base::Printer::printStatusEnd(), sgpp::base::Printer::printStatusUpdate(), sgpp::base::DataMatrix::resize(), tol, sgpp::base::DataVector::toString(), sgpp::optimization::optimizer::UnconstrainedOptimizer::x0, sgpp::optimization::optimizer::UnconstrainedOptimizer::xHist, and sgpp::optimization::optimizer::UnconstrainedOptimizer::xOpt.
void sgpp::optimization::optimizer::NLCG::setBeta | ( | double | beta | ) |
beta | beta (parameter for Armijo's rule) |
References beta.
void sgpp::optimization::optimizer::NLCG::setEpsilon | ( | double | epsilon | ) |
epsilon | epsilon (parameter for Armijo's rule) |
References eps.
void sgpp::optimization::optimizer::NLCG::setGamma | ( | double | gamma | ) |
gamma | gamma (parameter for Armijo's rule) |
References gamma.
void sgpp::optimization::optimizer::NLCG::setRestartThreshold | ( | double | restartThreshold | ) |
restartThreshold | restart threshold |
References alpha.
void sgpp::optimization::optimizer::NLCG::setTolerance | ( | double | tolerance | ) |
tolerance | tolerance (parameter for Armijo's rule) |
References tol.
|
protected |
restart threshold
Referenced by python.learner.Learner.Learner::doLearningIteration(), getRestartThreshold(), python.learner.Learner.Learner::learnData(), python.learner.Learner.Learner::learnDataWithTest(), python.uq.learner.Interpolant.Interpolant::learnDataWithTest(), optimize(), python.uq.dists.SGDEdist.SGDEdist::pdf(), setRestartThreshold(), and python.uq.dists.SGDEdist.SGDEdist::toJson().
|
protected |
beta (parameter for Armijo's rule)
Referenced by getBeta(), optimize(), and setBeta().
|
staticconstexpr |
default beta (parameter for Armijo's rule)
|
staticconstexpr |
default epsilon (parameter for Armijo's rule)
|
staticconstexpr |
default gamma (parameter for Armijo's rule)
|
staticconstexpr |
default restart threshold
|
staticconstexpr |
default tolerance (parameter for Armijo's rule)
|
protected |
epsilon (parameter for Armijo's rule)
Referenced by getEpsilon(), optimize(), and setEpsilon().
|
protected |
gamma (parameter for Armijo's rule)
Referenced by getGamma(), optimize(), and setGamma().
|
protected |
tolerance (parameter for Armijo's rule)
Referenced by getTolerance(), optimize(), and setTolerance().