13#include <MachineLearning/FgLikelihoodBaseLayer.h>
17 namespace MachineLearning
49 template<
typename Scalar>
86 Scalar ComputeLogZ(
const af::array& mout,
const af::array& vout,
const af::array& y,
Scalar alpha = 1.0, af::array* dlogZ_dm =
nullptr,
87 af::array* dlogZ_dv =
nullptr, af::array* dlogZ_dm2 =
nullptr);
101 void ComputeLogZGradients(
const af::array& mout,
const af::array& vout,
const af::array& y, af::array* dlogZ_dm =
nullptr,
102 af::array* dlogZ_dv =
nullptr, af::array* dlogZ_dm2 =
nullptr,
Scalar alpha = 1.0);
104 Scalar ComputeLogLikExp(
const af::array& mout,
const af::array& vout,
const af::array& y);
106 void ComputeLogLikExpGradients(
const af::array& mout,
const af::array& vout,
const af::array& y, af::array* de_dm =
nullptr, af::array* de_dv =
nullptr);
108 Scalar BackpropagationGradients(
const af::array& mout,
const af::array& vout, af::array& dmout, af::array& dvout,
Scalar alpha = 1.0,
Scalar scale = 1.0);
110 Scalar BackpropagationGradientsLogLikExp(
const af::array& mout,
const af::array& vout, af::array& dmout, af::array& dvout, af::array& y,
Scalar scale = 1.0);
112 void ProbabilisticOutput(
const af::array& mf,
const af::array& vf, af::array& myOut, af::array& vyOut,
Scalar alpha = 1.0f);
161 friend class boost::serialization::access;
163 template<
class Archive>
164 void serialize(Archive& ar,
unsigned int version)
166 ar& boost::serialization::base_object<LikelihoodBaseLayer<Scalar>>(*this);
168 ar& BOOST_SERIALIZATION_NVP(_sn);
Likelihood estimation based on Gaussian distribution.
virtual int GetNumParameters() override
Gets number of parameters to be optimized.
void ComputeLogZGradients(const af::array &mout, const af::array &vout, const af::array &y, af::array *dlogZ_dm=nullptr, af::array *dlogZ_dv=nullptr, af::array *dlogZ_dm2=nullptr, Scalar alpha=1.0)
Calculates the logZ gradients.
Scalar ComputeLogZ(const af::array &mout, const af::array &vout, const af::array &y, Scalar alpha=1.0, af::array *dlogZ_dm=nullptr, af::array *dlogZ_dv=nullptr, af::array *dlogZ_dm2=nullptr)
Calculates the logZ.
GaussLikLayer(int numPoints, int outputDim)
Constructor.
~GaussLikLayer()
Destructor.
GaussLikLayer()
Default constructor.
virtual void UpdateParameters() override
Updates the parameters.
virtual af::array GetParameters() override
Gets the parameters for each optimization iteration.
virtual void SetParameters(const af::array ¶m) override
Sets the parameters for each optimization iteration.
Abstract class for different GP likelihood layers.