13#include <MachineLearning/FgIModel.h>
14#include <MachineLearning/FgGaussLikelihoodLayer.h>
15#include <MachineLearning/FgProbitLikelihoodLayer.h>
20 namespace MachineLearning
24 template<
typename Scalar>
27 template<
typename Scalar>
38 template<
typename Scalar>
50 GPBaseModel(
const af::array& Y, LogLikType lType = LogLikType::Gaussian, ModelType mtype = ModelType::GPR);
81 OptimizerType method = L_BFGS,
83 bool reinit_hypers =
true,
86 LineSearchType lsType = MoreThuente,
109 virtual void PredictF(
const af::array& testInputs, af::array& mf, af::array& vf);
120 virtual void PredictY(
const af::array& testInputs, af::array& my, af::array& vy);
131 virtual void SampleY(
const af::array inputs,
int numSamples, af::array& outFunctions);
246 friend class boost::serialization::access;
251 template<
class Archive>
252 void serialize(Archive& ar,
unsigned int version)
254 ar& boost::serialization::base_object<IModel<Scalar>>(*this);
260 ar& BOOST_SERIALIZATION_NVP(afY);
261 ar& BOOST_SERIALIZATION_NVP(afBias);
262 ar& BOOST_SERIALIZATION_NVP(afSegments);
263 ar& BOOST_SERIALIZATION_NVP(bInit);
264 ar& BOOST_SERIALIZATION_NVP(likLayer);
Base class with abstract and basic function definitions. All GP models will be derived from this clas...
GPBaseModel()
Default Constructor.
virtual void PredictF(const af::array &testInputs, af::array &mf, af::array &vf)
Predict noise free functions values .
virtual bool Init()
Initializes the model.
virtual void PredictY(const af::array &testInputs, af::array &my, af::array &vy)
Prediction of test outputs .
virtual void AddData(const af::array Ytrain)
Adds training data to the model.
bool bInit
check if model is initialized
virtual af::array GetParameters()
Gets the parameters for each optimization iteration.
LikelihoodBaseLayer< Scalar > * likLayer
liklihood layer
virtual int GetNumParameters()
Gets number of parameters.
virtual void Optimise(OptimizerType method=L_BFGS, Scalar tol=0.0, bool reinit_hypers=true, int maxiter=1000, int mb_size=0, LineSearchType lsType=MoreThuente, bool disp=true, int *cycle=nullptr)
Optimizes the model parameters for best fit.
af::array GetTrainingData()
Gets the training data set Y.
virtual void UpdateParameters()
Updates the parameters.
virtual ~GPBaseModel()
Destructor.
af::array GetSegments()
Gets the start index array for the sequences.
GPBaseModel(const af::array &Y, LogLikType lType=LogLikType::Gaussian, ModelType mtype=ModelType::GPR)
Constructor.
void SetSegments(af::array segments)
Sets fixation for hyperparameters.
af::array afY
training dataset, mean substracted
void SetTrainingData(af::array &data)
Sets training data Y.
virtual void SampleY(const af::array inputs, int numSamples, af::array &outFunctions)
Generate function samples from posterior.
virtual void SetParameters(const af::array ¶m)
Sets the parameters for each optimization iteration.
virtual void FixLikelihoodParameters(bool isfixed)
Sets the likelihood parameters to be fixed or not for optimization.
af::array afSegments
Index of starting positions for all trials.
Likelihood estimation based on Gaussian distribution.
Abstract class for different GP likelihood layers.
Likelihood estimation based on Probit distribution.
Base class with abstract and basic function definitions. All models will be derived from this class.