Reinforcement Learning Toolbox 2.0
last updated:
General
Documentation
Manual
Tutorial
Class Reference
Master Thesis
Examples
Related Papers
Downloads
Links
News
mailto:webmaster
Main Page     Class Hierarchy   Compound List   File List   Compound Members   File Members

CGradientUpdateFunction Class Reference

Interface class for all function which gradient update. More...

#include <cgradientfunction.h>

Inheritance diagram for CGradientUpdateFunction:

CParameterObject CLearnDataObject CParameters CParameterObject CParameters CGradientFunction CGradientQFunction CGradientVFunction CContinuousActionGradientPolicy CTorchGradientFunction CComposedQFunction CContinuousActionQFunction CQFunction CFeatureVFunction CVFunctionFromGradientFunction CContinuousActionFeaturePolicy CContinuousActionPolicyFromGradientFunction CContinuousActionSigmoidPolicy CContinuousTimeAndActionSigmoidVMGradientPolicy CCALinearFAQFunction CQFunctionFromGradientFunction CRegressionTreeQFunction CFeatureQFunction CFeatureVRegressionTreeFunction CVTable List of all members.


Public Member Functions

  CGradientUpdateFunction ()
virtual  ~CGradientUpdateFunction ()
void  updateGradient (CFeatureList *gradientFeatures, double factor=1.0)
  Does the preprocessing for the gradient update.

virtual void  updateWeights (CFeatureList *dParams)=0
  Interface for updating the weights.

virtual int  getNumWeights ()=0
  Returns the number of weights.

virtual CAdaptiveEtaCalculator getEtaCalculator ()
  get the eta calculator for this gradient update function

virtual void  setEtaCalculator (CAdaptiveEtaCalculator *etaCalc)
  set the eta calculator for this gradient update function

virtual void  getWeights (double *parameters)=0
  Function for getting all weights.

virtual void  setWeights (double *parameters)=0
  Function for setting all weights.

virtual void  saveData (FILE *stream)
  Save weights coming from getWeights.

virtual void  loadData (FILE *stream)
  Load weights and set them with setWeights.

virtual void  resetData ()=0
  Interface for resetting the weights.

virtual void  copy (CLearnDataObject *gradientFuntion)


Protected Attributes

CFeatureList localGradientFeatureBuffer
CAdaptiveEtaCalculator etaCalc

Detailed Description

Interface class for all function which gradient update.

Gradient update function only support updating the weights of the function, given the gradient. The datastructure of the gradient is always a feature list, because for RBF networks many parts of the gradient are zero. Additionally you can retrieve and set the weights directly with the functions getWeights(double *parameters) and setWeights(double *parameters). Gradient update functions don't implement the functions itself, so you can't calculate the output of the function given an input, you also can't calculate the gradient itself. This interface is just for the update of the weights! Each subclass of CGradientUpdateFunction has to implement the functoins:

When the weights are updated, the function updateGradient(CFeatureList *gradientFeatures, double factor = 1.0) is called. The gradient is at first saved in the local gradient buffer and then multiplied by the specified factor. If an eta calculator exists the eta calulator is applied to the gradient update, after that the user-interface function updateWeights is called. Parameters of CGradientUpdateFunction: The gradient update function inherits all Parameters from its eta calculator.


Constructor & Destructor Documentation

CGradientUpdateFunction::CGradientUpdateFunction  ) 
 
virtual CGradientUpdateFunction::~CGradientUpdateFunction  )  [virtual]
 

Member Function Documentation

virtual void CGradientUpdateFunction::copy CLearnDataObject gradientFuntion  )  [virtual]
 

Reimplemented from CLearnDataObject.

Reimplemented in CGradientQFunction, CQFunction, CFeatureVRegressionTreeFunction, and CGradientVFunction.

virtual CAdaptiveEtaCalculator* CGradientUpdateFunction::getEtaCalculator  )  [virtual]
 

get the eta calculator for this gradient update function

virtual int CGradientUpdateFunction::getNumWeights  )  [pure virtual]
 

Returns the number of weights.

Implemented in CContinuousActionGradientPolicy, CContinuousActionPolicyFromGradientFunction, CContinuousActionFeaturePolicy, CContinuousActionSigmoidPolicy, CContinuousActionQFunction, CCALinearFAQFunction, CContinuousTimeAndActionSigmoidVMGradientPolicy, CQFunction, CComposedQFunction, CTorchGradientFunction, CVFunctionFromGradientFunction, CQFunctionFromGradientFunction, and CFeatureVFunction.

virtual void CGradientUpdateFunction::getWeights double *  parameters  )  [pure virtual]
 

Function for getting all weights.

The double array is assumed to be large enough. This isn't checked!

Implemented in CContinuousActionGradientPolicy, CContinuousActionPolicyFromGradientFunction, CContinuousActionFeaturePolicy, CContinuousActionSigmoidPolicy, CContinuousActionQFunction, CCALinearFAQFunction, CContinuousTimeAndActionSigmoidVMGradientPolicy, CQFunction, CComposedQFunction, CTorchGradientFunction, CVFunctionFromGradientFunction, CQFunctionFromGradientFunction, and CFeatureVFunction.

virtual void CGradientUpdateFunction::loadData FILE *  stream  )  [virtual]
 

Load weights and set them with setWeights.

Implements CLearnDataObject.

Reimplemented in CGradientQFunction, CQFunction, CComposedQFunction, CGradientVFunction, and CFeatureVFunction.

virtual void CGradientUpdateFunction::resetData  )  [pure virtual]
 

Interface for resetting the weights.

Implements CLearnDataObject.

Implemented in CContinuousActionGradientPolicy, CContinuousActionPolicyFromGradientFunction, CContinuousActionFeaturePolicy, CContinuousActionSigmoidPolicy, CContinuousTimeAndActionSigmoidVMGradientPolicy, CGradientQFunction, CQFunction, CComposedQFunction, CTorchGradientFunction, CVFunctionFromGradientFunction, CQFunctionFromGradientFunction, CRegressionTreeQFunction, CGradientVFunction, and CFeatureVFunction.

virtual void CGradientUpdateFunction::saveData FILE *  stream  )  [virtual]
 

Save weights coming from getWeights.

Implements CLearnDataObject.

Reimplemented in CGradientQFunction, CQFunction, CComposedQFunction, CGradientVFunction, and CFeatureVFunction.

virtual void CGradientUpdateFunction::setEtaCalculator CAdaptiveEtaCalculator etaCalc  )  [virtual]
 

set the eta calculator for this gradient update function

virtual void CGradientUpdateFunction::setWeights double *  parameters  )  [pure virtual]
 

Function for setting all weights.

The double array is assumed to be large enough. This isn't checked!

Implemented in CContinuousActionGradientPolicy, CContinuousActionPolicyFromGradientFunction, CContinuousActionFeaturePolicy, CContinuousActionSigmoidPolicy, CContinuousActionQFunction, CCALinearFAQFunction, CContinuousTimeAndActionSigmoidVMGradientPolicy, CQFunction, CComposedQFunction, CTorchGradientFunction, CVFunctionFromGradientFunction, CQFunctionFromGradientFunction, and CFeatureVFunction.

void CGradientUpdateFunction::updateGradient CFeatureList gradientFeatures,
double  factor = 1.0
 

Does the preprocessing for the gradient update.

When the weights are updated, the function updateGradient(CFeatureList *gradientFeatures, double factor = 1.0) is called. The gradient is at first saved in the local gradient buffer and then multiplied by the specified factor. If an eta calculator exists the eta calulator is applied to the gradient update, after that the user-interface function updateWeights is called.

virtual void CGradientUpdateFunction::updateWeights CFeatureList dParams  )  [pure virtual]
 

Interface for updating the weights.

Implemented in CContinuousActionGradientPolicy, CContinuousActionPolicyFromGradientFunction, CContinuousActionFeaturePolicy, CContinuousActionSigmoidPolicy, CCALinearFAQFunction, CContinuousTimeAndActionSigmoidVMGradientPolicy, CQFunction, CComposedQFunction, CTorchGradientFunction, CVFunctionFromGradientFunction, CQFunctionFromGradientFunction, and CFeatureVFunction.


Member Data Documentation

CAdaptiveEtaCalculator* CGradientUpdateFunction::etaCalc [protected]
 
CFeatureList* CGradientUpdateFunction::localGradientFeatureBuffer [protected]
 

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