13#include <MachineLearning/FgLikelihoodBaseLayer.h>
17 namespace MachineLearning
49 template<
typename Scalar>
76 Scalar ComputeLogZ(
const af::array& mout,
const af::array& vout,
const af::array& y,
Scalar alpha = 1.0, af::array* dlogZ_dm =
nullptr,
77 af::array* dlogZ_dv =
nullptr, af::array* dlogZ_dm2 =
nullptr);
91 void ComputeLogZGradients(
const af::array& mout,
const af::array& vout,
const af::array& y, af::array* dlogZ_dm =
nullptr,
92 af::array* dlogZ_dv =
nullptr, af::array* dlogZ_dm2 =
nullptr,
Scalar alpha = 1.0);
94 Scalar ComputeLogLikExp(
const af::array& mout,
const af::array& vout,
const af::array& y);
96 void ComputeLogLikExpGradients(
const af::array& mout,
const af::array& vout,
const af::array& y, af::array* de_dm =
nullptr, af::array* de_dv =
nullptr);
98 Scalar BackpropagationGradientsLogLikExp(
const af::array& mout,
const af::array& vout, af::array& dmout, af::array& dvout, af::array& y,
Scalar scale = 1.0);
100 Scalar BackpropagationGradients(
const af::array& mout,
const af::array& vout, af::array& dmout, af::array& dvout,
Scalar alpha = 1.0,
Scalar scale = 1.0);
102 void ProbabilisticOutput(
const af::array& mf,
const af::array& vf, af::array& myOut, af::array& vyOut,
Scalar alpha = 1.0f);
112 friend class boost::serialization::access;
114 template<
class Archive>
115 void serialize(Archive& ar,
unsigned int version)
117 ar& boost::serialization::base_object<LikelihoodBaseLayer<Scalar>>(*this);
Abstract class for different GP likelihood layers.
Likelihood estimation based on Probit distribution.
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.
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.
ProbitLikLayer(int numPoints, int outputDim)
Constructor.