DMP_BBO library
Public Member Functions | Friends | List of all members

LWR (Locally Weighted Regression) function approximator. More...

#include <FunctionApproximatorLWR.hpp>

Inheritance diagram for FunctionApproximatorLWR:
Inheritance graph
[legend]
Collaboration diagram for FunctionApproximatorLWR:
Collaboration graph
[legend]

Public Member Functions

 FunctionApproximatorLWR (const MetaParametersLWR *const meta_parameters, const ModelParametersLWR *const model_parameters=NULL)
 Initialize a function approximator with meta- and model-parameters. More...
 
 FunctionApproximatorLWR (const ModelParametersLWR *const model_parameters)
 Initialize a function approximator with model parameters. More...
 
FunctionApproximatorclone (void) const
 Return a pointer to a deep copy of the FunctionApproximator object. More...
 
void train (const Eigen::Ref< const Eigen::MatrixXd > &inputs, const Eigen::Ref< const Eigen::MatrixXd > &targets)
 Train the function approximator with corresponding input and target examples. More...
 
void predict (const Eigen::Ref< const Eigen::MatrixXd > &inputs, Eigen::MatrixXd &outputs)
 Query the function approximator to make a prediction. More...
 
std::string getName (void) const
 Get the name of this function approximator. More...
 
bool saveGridData (const Eigen::VectorXd &min, const Eigen::VectorXd &max, const Eigen::VectorXi &n_samples_per_dim, std::string directory, bool overwrite=false) const
 Generate a grid of inputs, and output the response of the basis functions and line segments for these inputs. More...
 
- Public Member Functions inherited from FunctionApproximator
 FunctionApproximator (const MetaParameters *const meta_parameters, const ModelParameters *const model_parameters=NULL)
 Initialize a function approximator with meta- and optionally model-parameters. More...
 
 FunctionApproximator (const ModelParameters *const model_parameters)
 Initialize a function approximator with model-parameters. More...
 
void train (const Eigen::Ref< const Eigen::MatrixXd > &inputs, const Eigen::Ref< const Eigen::MatrixXd > &targets, std::string save_directory, bool overwrite=false)
 Train the function approximator with corresponding input and target examples (and write results to file). More...
 
void reTrain (const Eigen::Ref< const Eigen::MatrixXd > &inputs, const Eigen::Ref< const Eigen::MatrixXd > &targets)
 Re-train the function approximator with corresponding input and target examples. More...
 
void reTrain (const Eigen::Ref< const Eigen::MatrixXd > &inputs, const Eigen::Ref< const Eigen::MatrixXd > &targets, std::string save_directory, bool overwrite=false)
 Re-train the function approximator with corresponding input and target examples (and write results to file). More...
 
virtual void predict (const Eigen::Ref< const Eigen::MatrixXd > &inputs, Eigen::MatrixXd &outputs, Eigen::MatrixXd &variances)
 Query the function approximator to make a prediction, and also to predict its variance. More...
 
virtual void predict (const Eigen::Ref< const Eigen::MatrixXd > &inputs, Eigen::MatrixXd &outputs, std::vector< Eigen::MatrixXd > &variances)
 Query the function approximator to make a prediction, and also to predict its variance. More...
 
virtual void predictVariance (const Eigen::Ref< const Eigen::MatrixXd > &inputs, Eigen::MatrixXd &variances)
 Query the function approximator to get the variance of a prediction This function is not implemented by all function approximators. More...
 
bool isTrained (void) const
 Determine whether the function approximator has already been trained with data or not. More...
 
int getExpectedInputDim (void) const
 The expected dimensionality of the input data. More...
 
int getExpectedOutputDim (void) const
 The expected dimensionality of the output data. More...
 
void getSelectableParameters (std::set< std::string > &selected_values_labels) const
 Return all the names of the parameter types that can be selected. More...
 
void setSelectedParameters (const std::set< std::string > &selected_values_labels)
 Determine which subset of parameters is represented in the vector returned by Parameterizable::getParameterVectorSelected. More...
 
void getParameterVectorSelectedMinMax (Eigen::VectorXd &min, Eigen::VectorXd &max) const
 Get the minimum and maximum of the selected parameters in one vector. More...
 
int getParameterVectorSelectedSize (void) const
 Get the size of the vector of selected parameters, as returned by getParameterVectorSelected(. More...
 
void setParameterVectorSelected (const Eigen::VectorXd &values, bool normalized=false)
 Set all the values of the selected parameters with one vector. More...
 
void getParameterVectorSelected (Eigen::VectorXd &values, bool normalized=false) const
 Get the values of the selected parameters in one vector. More...
 
void getParameterVectorMask (const std::set< std::string > selected_values_labels, Eigen::VectorXi &selected_mask) const
 Get a mask for selecting parameters. More...
 
int getParameterVectorAllSize (void) const
 Get the size of the parameter values vector when it contains all available parameter values. More...
 
void getParameterVectorAll (Eigen::VectorXd &values) const
 Return a vector that returns all available parameter values. More...
 
void setParameterVectorAll (const Eigen::VectorXd &values)
 Set all available parameter values with one vector. More...
 
UnifiedModelgetUnifiedModel (void) const
 Return a representation of this function approximator's model as a unified model. More...
 
std::string toString (void) const
 Returns a string representation of the object. More...
 
const MetaParametersgetMetaParameters (void) const
 Accessor for FunctionApproximator::meta_parameters_. More...
 
const ModelParametersgetModelParameters (void) const
 Accessor for FunctionApproximator::model_parameters_. More...
 
void setParameterVectorModifierPrivate (std::string modifier, bool new_value)
 Turn certain modifiers on or off, see Parameterizable::setParameterVectorModifier(). More...
 
- Public Member Functions inherited from Parameterizable
virtual ~Parameterizable (void)
 Destructor.
 
virtual void getParameterVectorSelectedNormalized (Eigen::VectorXd &values) const
 Get the normalized values of the selected parameters in one vector. More...
 
void getParameterVectorSelectedMinMax (Eigen::VectorXd &min, Eigen::VectorXd &max) const
 Get the minimum and maximum of the selected parameters in one vector. More...
 
void getParameterVectorAllMinMax (Eigen::VectorXd &min, Eigen::VectorXd &max) const
 Get the minimum and maximum values of the current parameter vector. More...
 
void getParameterVectorSelectedRanges (Eigen::VectorXd &ranges) const
 Get the ranges of the selected parameters, i.e. More...
 
virtual void setParameterVectorSelectedNormalized (const Eigen::VectorXd &values)
 Set all the values of the selected parameters with one vector of normalized values. More...
 
void setSelectedParametersOne (std::string selected)
 Set the parameters that are currently selected. More...
 
void setParameterVectorModifier (std::string modifier, bool new_value)
 Turn certain modifiers on or off. More...
 
void setVectorLengthsPerDimension (const Eigen::VectorXi &lengths_per_dimension)
 The vector (VectorXd) with parameter values can be split into different parts (as vector<VectorXd>; this function specifices the length of each sub-vector. More...
 
Eigen::VectorXi getVectorLengthsPerDimension (void) const
 Get the specified length of each vector in each dimension. More...
 
void getParameterVectorSelected (std::vector< Eigen::VectorXd > &values, bool normalized=false) const
 Get the values of the selected parameters in one vector. More...
 
void setParameterVectorSelected (const std::vector< Eigen::VectorXd > &values, bool normalized=false)
 Set all the values of the selected parameters with a vector of vectors. More...
 

Friends

class boost::serialization::access
 Give boost serialization access to private members. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from FunctionApproximator
static void generateInputsGrid (const Eigen::VectorXd &min, const Eigen::VectorXd &max, const Eigen::VectorXi &n_samples_per_dim, Eigen::MatrixXd &inputs_grid)
 Generate a input samples that lie on a grid (much like Matlab's meshgrid) For instance, if min = [2 6], and max = [3 8], and n_samples_per_dim = [3 5] then this function first makes linearly spaces samples along each dimension, e.g. More...
 
- Protected Member Functions inherited from FunctionApproximator
void setModelParameters (ModelParameters *model_parameters)
 Accessor for FunctionApproximator::model_parameters_. More...
 
 FunctionApproximator (void)
 Default constructor. More...
 

Detailed Description

LWR (Locally Weighted Regression) function approximator.

Definition at line 43 of file FunctionApproximatorLWR.hpp.

Constructor & Destructor Documentation

FunctionApproximatorLWR ( const MetaParametersLWR *const  meta_parameters,
const ModelParametersLWR *const  model_parameters = NULL 
)

Initialize a function approximator with meta- and model-parameters.

Parameters
[in]meta_parametersThe training algorithm meta-parameters
[in]model_parametersThe parameters of the trained model. If this parameter is not passed, the function approximator is initialized as untrained. In this case, you must call FunctionApproximator::train() before being able to call FunctionApproximator::predict(). Either meta_parameters XOR model-parameters can passed as NULL, but not both.

Definition at line 51 of file FunctionApproximatorLWR.cpp.

52 :
53  FunctionApproximator(meta_parameters,model_parameters)
54 {
55  if (model_parameters!=NULL)
56  preallocateMemory(model_parameters->getNumberOfBasisFunctions());
57 }
FunctionApproximator(void)
Default constructor.

Here is the call graph for this function:

FunctionApproximatorLWR ( const ModelParametersLWR *const  model_parameters)

Initialize a function approximator with model parameters.

Parameters
[in]model_parametersThe parameters of the (previously) trained model.

Definition at line 59 of file FunctionApproximatorLWR.cpp.

60 :
61  FunctionApproximator(model_parameters)
62 {
63  preallocateMemory(model_parameters->getNumberOfBasisFunctions());
64 }
FunctionApproximator(void)
Default constructor.

Here is the call graph for this function:

Member Function Documentation

FunctionApproximator * clone ( void  ) const
virtual

Return a pointer to a deep copy of the FunctionApproximator object.

Returns
Pointer to a deep copy

Implements FunctionApproximator.

Definition at line 76 of file FunctionApproximatorLWR.cpp.

76  {
77  // All error checking and cloning is left to the FunctionApproximator constructor.
78  return new FunctionApproximatorLWR(
79  dynamic_cast<const MetaParametersLWR*>(getMetaParameters()),
80  dynamic_cast<const ModelParametersLWR*>(getModelParameters())
81  );
82 };
FunctionApproximatorLWR(const MetaParametersLWR *const meta_parameters, const ModelParametersLWR *const model_parameters=NULL)
Initialize a function approximator with meta- and model-parameters.
const MetaParameters * getMetaParameters(void) const
Accessor for FunctionApproximator::meta_parameters_.
const ModelParameters * getModelParameters(void) const
Accessor for FunctionApproximator::model_parameters_.

Here is the call graph for this function:

void train ( const Eigen::Ref< const Eigen::MatrixXd > &  inputs,
const Eigen::Ref< const Eigen::MatrixXd > &  targets 
)
virtual

Train the function approximator with corresponding input and target examples.

Parameters
[in]inputsInput values of the training examples
[in]targetsTarget values of the training examples

Implements FunctionApproximator.

void predict ( const Eigen::Ref< const Eigen::MatrixXd > &  inputs,
Eigen::MatrixXd &  outputs 
)
virtual

Query the function approximator to make a prediction.

Parameters
[in]inputsInput values of the query
[out]outputsPredicted output values
Remarks
This method should be const. But third party functions which is called in this function have not always been implemented as const (Examples: LWPRObject::predict). Therefore, this function cannot be const.

This function is realtime if inputs.rows()==1 (i.e. only one input sample is provided), and the memory for outputs is preallocated.

Implements FunctionApproximator.

std::string getName ( void  ) const
inlinevirtual

Get the name of this function approximator.

Returns
Name of this function approximator

Implements FunctionApproximator.

Definition at line 79 of file FunctionApproximatorLWR.hpp.

79  {
80  return std::string("LWR");
81  };

Here is the call graph for this function:

bool saveGridData ( const Eigen::VectorXd &  min,
const Eigen::VectorXd &  max,
const Eigen::VectorXi &  n_samples_per_dim,
std::string  directory,
bool  overwrite = false 
) const
virtual

Generate a grid of inputs, and output the response of the basis functions and line segments for these inputs.

This function is not pure virtual, because this might not make sense for every model parameters class.

Parameters
[in]minMinimum values for the grid (one for each dimension)
[in]maxMaximum values for the grid (one for each dimension)
[in]n_samples_per_dimNumber of samples in the grid along each dimension
[in]directoryDirectory to which to save the results to.
[in]overwriteWhether to overwrite existing files. true=do overwrite, false=don't overwrite and give a warning.
Returns
Whether saving the data was successful.

Reimplemented from FunctionApproximator.

Friends And Related Function Documentation

friend class boost::serialization::access
friend

Give boost serialization access to private members.

Definition at line 92 of file FunctionApproximatorLWR.hpp.


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