#include <GradientDescent.h>
Public Member Functions | |
virtual void | Function (ObjectiveFunction *) |
Set objective function. | |
GradientDescent (ObjectiveFunction *=NULL) | |
Constructor. | |
GradientDescent (const GradientDescent &) | |
Copy constructor. | |
virtual void | Initialize () |
virtual void | LineSearch (class LineSearch *, bool=false) |
Set line search object. | |
GradientDescent & | operator= (const GradientDescent &) |
Assignment operator. | |
virtual ParameterList | Parameter () const |
Get parameters as key/value as string map. | |
virtual double | Run () |
Optimize objective function using gradient descent. | |
virtual bool | Set (const char *, const char *) |
Set parameter value from string. | |
virtual | ~GradientDescent () |
Destructor. | |
Public Member Functions inherited from mirtk::LocalOptimizer | |
void | AddStoppingCriterion (StoppingCriterion *) |
Add stopping criterion and take over ownership of the object. | |
void | ClearStoppingCriteria () |
Delete all stopping criteria. | |
int | NumberOfStoppingCriteria () const |
Get number of stopping criteria. | |
virtual enum OptimizationMethod | OptimizationMethod () const =0 |
Optimization method implemented by this optimizer. | |
void | RemoveStoppingCriterion (StoppingCriterion *) |
Remove stopping criterion and revoke ownership of the object. | |
class StoppingCriterion * | StoppingCriterion (int) |
Get the n-th stopping criterion. | |
const class StoppingCriterion * | StoppingCriterion (int) const |
Get the n-th stopping criterion. | |
virtual | ~LocalOptimizer () |
Destructor. | |
Public Member Functions inherited from mirtk::Observable | |
void | AddObserver (Observer &) |
Add observer. | |
void | Broadcast (Event, const void *=NULL) |
Broadcast event to observers. | |
void | ClearObservers () |
Delete all observers. | |
void | DeleteObserver (Observer &) |
Delete observer. | |
void | NotifyObservers (Event, const void *=NULL) |
Notify all observers about given event if this object has changed. | |
int | NumberOfObservers () const |
Number of current observers. | |
virtual | ~Observable () |
Destructor. | |
Public Member Functions inherited from mirtk::Object | |
virtual const char * | NameOfClass () const =0 |
Get name of class, which this object is an instance of. | |
bool | Parameter (const ParameterList &) |
Set parameters from name/value pairs. | |
virtual | ~Object () |
Destructor. | |
Protected Member Functions | |
virtual void | Finalize () |
Finalize gradient descent. | |
virtual void | Gradient (double *, double=.0, bool *=NULL) |
Compute descent direction. | |
Protected Member Functions inherited from mirtk::LocalOptimizer | |
virtual bool | Converged (int iter, double value, const double *delta) |
bool | IsImprovement (double prev, double value) const |
LocalOptimizer (ObjectiveFunction *=NULL) | |
Constructor. | |
LocalOptimizer (const LocalOptimizer &) | |
Copy constructor. | |
LocalOptimizer & | operator= (const LocalOptimizer &) |
Assignment operator. | |
Protected Member Functions inherited from mirtk::Observable | |
Observable () | |
Default constructor. | |
Observable (const Observable &) | |
Copy constructor. | |
Observable & | operator= (const Observable &) |
Assignment operator. | |
Protected Member Functions inherited from mirtk::Object | |
template<typename... Args> | |
void | Throw (ErrorType err, const char *func, Args... args) const |
Protected Attributes | |
bool * | _AllowSignChange |
double * | _Gradient |
Allocated memory for line search direction. | |
Additional Inherited Members | |
Public Types inherited from mirtk::LocalOptimizer | |
typedef ObjectFactory< enum OptimizationMethod, LocalOptimizer > | FactoryType |
Type of optimizer factory. | |
Static Public Member Functions inherited from mirtk::LocalOptimizer | |
static FactoryType & | Factory () |
Get global optimizer factory instance. | |
static LocalOptimizer * | New (enum OptimizationMethod, ObjectiveFunction *=NULL) |
Construct optimizer. | |
Static Public Member Functions inherited from mirtk::Object | |
static const char * | NameOfType () |
Get name of this class type. | |
Static Protected Member Functions inherited from mirtk::Object | |
template<typename... Args> | |
static void | ThrowStatic (ErrorType err, const char *cls, const char *func, Args... args) |
Minimizes objective function using gradient descent
Definition at line 35 of file GradientDescent.h.
|
virtual |
Initialize gradient descent
This member funtion is implicitly called by Run. It can, however, be called prior to Run explicitly in order to be able to set up the line search instance. Otherwise, use the generic Set member function to change the line search parameters and simply have Run call Initialize.
Reimplemented from mirtk::LocalOptimizer.
Reimplemented in mirtk::ConjugateGradientDescent.
|
protected |
Whether to allow function parameter sign to change
If false
for a particular function parameter, the line search sets the function parameter to zero whenever the sign of the parameter would change when taking a full step along the scaled gradient direction.
Definition at line 76 of file GradientDescent.h.