14#include <MachineLearning/FgGPBaseModel.h>
18 namespace MachineLearning
30 template<
typename Scalar>
49 Scalar priorVariance = 1.0, af::array& xControl = af::array(), PropagationMode probMode = PropagationMode::MomentMatching,
50 LogLikType lType = LogLikType::Gaussian,
bool GPemission =
true,
bool controlToEmiss =
true, XInit emethod = XInit::pca);
80 OptimizerType method = L_BFGS,
82 bool reinit_hypers =
true,
85 LineSearchType lsType = MoreThuente,
97 virtual bool Init(af::array& mx);
144 void GetLatents(af::array& mx, af::array& vx);
146 virtual void AddWindowData(af::array data);
173 bool bControlToEmiss;
184 af::array afXControl;
185 af::array afDynIndexes;
207 PropagationMode pMode;
209 friend class boost::serialization::access;
211 template<
class Archive>
212 void serialize(Archive& ar,
unsigned int version)
214 ar& boost::serialization::base_object<GPBaseModel<Scalar>>(*this);
217 ar& BOOST_SERIALIZATION_NVP(iq);
218 ar& BOOST_SERIALIZATION_NVP(iDControlEmiss);
219 ar& BOOST_SERIALIZATION_NVP(iDControlDyn);
220 ar& BOOST_SERIALIZATION_NVP(bGPemission);
221 ar& BOOST_SERIALIZATION_NVP(bControlToEmiss);
222 ar& BOOST_SERIALIZATION_NVP(afXControl);
223 ar& BOOST_SERIALIZATION_NVP(afDynIndexes);
224 ar& BOOST_SERIALIZATION_NVP(dPriorMean);
225 ar& BOOST_SERIALIZATION_NVP(dPriorVariance);
226 ar& BOOST_SERIALIZATION_NVP(afFactorX1);
227 ar& BOOST_SERIALIZATION_NVP(afFactorX2);
228 ar& BOOST_SERIALIZATION_NVP(eEmMethod);
229 ar& BOOST_SERIALIZATION_NVP(pMode);
Base class with abstract and basic function definitions. All GP models will be derived from this clas...
Base class with abstract and basic function definitions. All GP state space models will be derived fr...
virtual void PosteriorLatents(af::array &mx, af::array &vx)
Get posterior distribution of latent variables /f$\mathbf{X}/f$.
Scalar dPriorX1
prior /f$x_1/f$
af::array afFactorX2
natural parameter factor 2 for latent variable
af::array afPriorVarianceCav
prior variance for hierarchy mode
void UpdateDynamicIndexes()
Updates the dynamic indexes.
Scalar dPriorVariance
prior variance
virtual void SetParameters(const af::array ¶m) override
Sets the parameters for each optimization iteration.
virtual af::array GetParameters() override
Gets the parameters for each optimization iteration.
virtual int GetNumParameters() override
Gets number of parameters.
af::array afGradVarianceCav
prior variance gradient for hiersrchy mode
Scalar dPriorMean
prior mean
GPSSBaseModel(const af::array &Y, int latentDimension, Scalar priorMean=0.0, Scalar priorVariance=1.0, af::array &xControl=af::array(), PropagationMode probMode=PropagationMode::MomentMatching, LogLikType lType=LogLikType::Gaussian, bool GPemission=true, bool controlToEmiss=true, XInit emethod=XInit::pca)
Constructor.
af::array afPosteriorX2
posterior natural parameter 2 for latent variable
af::array afPriorX1
prior /f$x_1/f$
virtual void UpdateParametersInternal()
Updates the parameters.
af::array afPriorX2
prior /f$x_2/f$
virtual af::array PosteriorGradientLatents(const af::array &dmx, const af::array &dvx)
Posterior gradient of latent inputs /f$\mathbf{X}/f$.
af::array afPosteriorX1
posterior natural parameter 1 for latent variable
af::array afGradVariance
prior variance gradient for hiersrchy mode
af::array afPriorVariance
prior variance for hierarchy mode
af::array afGradMean
prior mean gradient for hiersrchy mode
virtual ~GPSSBaseModel()
Destructor.
af::array afFactorX1
natural parameter factor 1 for latent variable
af::array afPriorMean
prior mean for hierarchy mode
af::array afPriorX1Cav
prior /f$x_1/f$
Scalar dPriorX2
prior /f$x_2/f$
af::array afLatentGradientX
top down gradient
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) override
Optimizes the model parameters for best fit.
af::array afPriorMeanCav
prior mean for hierarchy mode
GPSSBaseModel()
Default constructor.
af::array afGradMeanCav
prior mean gradient for hiersrchy mode
af::array afPriorX2Cav
prior /f$x_2/f$
virtual bool Init(af::array &mx)
Initializes the model.
This class represents grouping nodes in a hiearchy.