123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /**
- * @file LikelihoodFunction.h
- * @author Erik Rodner
- * @date 02/17/2010
- */
- #ifndef _NICE_OBJREC_LIKELIHOODFUNCTIONINCLUDE
- #define _NICE_OBJREC_LIKELIHOODFUNCTIONINCLUDE
- namespace OBJREC {
-
- /** @class LikelihoodFunction
- * abstract class for squash functions phi(y,f)
- * It can be used to define noise models for Gaussian
- * process classification
- *
- * @author Erik Rodner
- */
- class LikelihoodFunction
- {
- protected:
- public:
-
- LikelihoodFunction();
- virtual ~LikelihoodFunction();
- /**
- * @brief third derivation of the likelihood function
- * The third derivation is important for Laplace approximation in
- * the GP framework.
- *
- * @param y label
- * @param f latent function value
- *
- * @return value of the third derivation
- */
- virtual double thirdgrad ( double y, double f ) const = 0;
- /**
- * @brief second derivation of the likelihood function
- *
- * @param y label
- * @param f latent function value
- *
- * @return value of the second derivation
- */
- virtual double hessian ( double y, double f ) const = 0;
- /**
- * @brief first derivation of the likelihood function
- *
- * @param y label
- * @param f latent function value
- *
- * @return value of the first derivation
- */
- virtual double gradient ( double y, double f ) const = 0;
- /**
- * @brief logarithm of the likelihood function
- *
- * @param y label
- * @param f latent function value
- */
- virtual double logLike ( double y, double f ) const = 0;
- /**
- * @brief calculate the likelihood
- *
- * @param y label
- * @param f latent function value
- *
- * @return likelihood value
- */
- virtual double likelihood ( double y, double f ) const = 0;
- };
- }
- #endif
|