13#include <MachineLearning/FgSparseGPBaseLayer.h>
17 namespace MachineLearning
36 template<
typename Scalar>
50 SGPLayer2nd(
int numPoints,
int numPseudos,
int outputDim,
int inputDim);
87 virtual void ForwardPredictionPost(
const af::array* mx,
const af::array* vx, af::array& mout, af::array& vout)
override;
89 void BackpropGradientsReg(af::array& m, af::array& v, af::array& dlogZ_dm, af::array& dlogZ_dv, af::array& x, std::map<std::string,
90 af::array>& grad_hyper, std::map<std::string, af::array>& grad_cav,
Scalar alpha = 1.0);
112 void ForwardPredictionDeterministicPost(af::array& mx, af::array* mout, af::array* vout);
174 void ComputeCavity(af::array& idx, af::array& muhat, af::array& Suhat, af::array& T1uHat, af::array& T2uHat,
Scalar alpha = 1.0f);
187 af::array afInvSuHat;
188 af::array afInvSuMuHat;
191 friend class boost::serialization::access;
193 template<
class Archive>
194 void serialize(Archive& ar,
unsigned int version)
196 ar& boost::serialization::base_object<SparseGPBaseLayer<Scalar>>(*this);
198 ar& BOOST_SERIALIZATION_NVP(gamma);
199 ar& BOOST_SERIALIZATION_NVP(beta);
200 ar& BOOST_SERIALIZATION_NVP(afMuHat);
201 ar& BOOST_SERIALIZATION_NVP(afSuHat);
202 ar& BOOST_SERIALIZATION_NVP(afInvSuHat);
203 ar& BOOST_SERIALIZATION_NVP(afInvSuMuHat);
virtual ~SGPLayer2nd()
Destructor.
void UpdateFactor(af::array &n, std::map< std::string, af::array > grad_cav, Scalar alpha, Scalar decay=0)
Update step of PowerEP.
SGPLayer2nd(int numPoints, int numPseudos, int outputDim, int inputDim)
Constructor.
virtual void ForwardPredictionPost(const af::array *mx, const af::array *vx, af::array &mout, af::array &vout) override
Prediction of posterior function values.
void ComputeCavity(af::array &idx, af::array &muhat, af::array &Suhat, af::array &T1uHat, af::array &T2uHat, Scalar alpha=1.0f)
Calculates the cavity.
void ForwardPredictionCavity(af::array &mout, af::array &vout, af::array &n, af::array &mx, af::array *vx=nullptr, Scalar alpha=1.0)
Forward prediction through cavity.
virtual void InitParameters(af::array *X=nullptr) override
Initializes the parameters.
void ForwardPredictionRandomCavity(af::array &mout, af::array &vout, af::array &idx, af::array &mx, af::array &vx, Scalar alpha=1.0)
Forward prediction through random cavity.
void ForwardPredictionDeterministicCavity(af::array &mout, af::array &vout, af::array &idx, af::array &mx, Scalar alpha=1.0)
Forward prediction through deterministic cavity.
virtual void UpdateParameters() override
Updates the parameters.
Abstract class for different GP likelihood layers.