This algorithm does a gradient descent by feeling a small distance out in each dimension to measure the gradient. For efficiency reasons, it only measures the gradient in one dimension (which it cycles round-robin style) per iteration and uses the remembered gradient in the other dimensions.
More...
#include <GHillClimber.h>
This algorithm does a gradient descent by feeling a small distance out in each dimension to measure the gradient. For efficiency reasons, it only measures the gradient in one dimension (which it cycles round-robin style) per iteration and uses the remembered gradient in the other dimensions.
GClasses::GEmpiricalGradientDescent::GEmpiricalGradientDescent |
( |
GTargetFunction * |
pCritic, |
|
|
GRand * |
pRand |
|
) |
| |
virtual GClasses::GEmpiricalGradientDescent::~GEmpiricalGradientDescent |
( |
| ) |
|
|
virtual |
virtual double* GClasses::GEmpiricalGradientDescent::currentVector |
( |
| ) |
|
|
inlinevirtual |
virtual double GClasses::GEmpiricalGradientDescent::iterate |
( |
| ) |
|
|
virtual |
Performs a little more optimization. (Call this in a loop until acceptable results are found.)
Implements GClasses::GOptimizer.
void GClasses::GEmpiricalGradientDescent::reset |
( |
| ) |
|
|
protected |
void GClasses::GEmpiricalGradientDescent::setLearningRate |
( |
double |
d | ) |
|
|
inline |
void GClasses::GEmpiricalGradientDescent::setMomentum |
( |
double |
d | ) |
|
|
inline |
double GClasses::GEmpiricalGradientDescent::m_dFeelDistance |
|
protected |
double GClasses::GEmpiricalGradientDescent::m_dLearningRate |
|
protected |
double GClasses::GEmpiricalGradientDescent::m_dMomentum |
|
protected |
size_t GClasses::GEmpiricalGradientDescent::m_nDimensions |
|
protected |
double* GClasses::GEmpiricalGradientDescent::m_pDelta |
|
protected |
double* GClasses::GEmpiricalGradientDescent::m_pGradient |
|
protected |
GRand* GClasses::GEmpiricalGradientDescent::m_pRand |
|
protected |
double* GClasses::GEmpiricalGradientDescent::m_pVector |
|
protected |