SHOGUN  4.2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
VarDTCInferenceMethod.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) The Shogun Machine Learning Toolbox
3  * Written (W) 2015 Wu Lin
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  *
9  * 1. Redistributions of source code must retain the above copyright notice, this
10  * list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright notice,
12  * this list of conditions and the following disclaimer in the documentation
13  * and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
19  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25  *
26  * The views and conclusions contained in the software and documentation are those
27  * of the authors and should not be interpreted as representing official policies,
28  * either expressed or implied, of the Shogun Development Team.
29  *
30  * Code adapted from
31  * http://www.aueb.gr/users/mtitsias/code/varsgp.tar.gz
32  */
33 
34 #ifndef CVARDTCINFERENCEMETHOD_H
35 #define CVARDTCINFERENCEMETHOD_H
36 
37 
38 #include <shogun/lib/config.h>
40 
41 namespace shogun
42 {
53 {
54 public:
57 
67  CVarDTCInferenceMethod(CKernel* kernel, CFeatures* features,
68  CMeanFunction* mean, CLabels* labels, CLikelihoodModel* model,
69  CFeatures* inducing_features);
70 
71  virtual ~CVarDTCInferenceMethod();
72 
77  virtual const char* get_name() const { return "VarDTCInferenceMethod"; }
78 
84 
91 
104 
105 
118 
123  virtual bool supports_regression() const
124  {
125  check_members();
126  return m_model->supports_regression();
127  }
128 
145 
162 
164  virtual void update();
165 
170  virtual void register_minimizer(Minimizer* minimizer);
171 
172 protected:
174  virtual void check_members() const;
175 
177  virtual void update_alpha();
178 
180  virtual void update_chol();
181 
185  virtual void update_deriv();
186 
195  const TParameter* param);
196 
207  const TParameter* param);
208 
216  const TParameter* param);
217 
226  const TParameter* param);
227 
243 
245  virtual void compute_gradient();
246 protected:
265 private:
267  void init();
268 };
269 }
270 #endif /* CVARDTCINFERENCEMETHOD_H */
virtual SGVector< float64_t > get_derivative_wrt_inducing_noise(const TParameter *param)
virtual SGVector< float64_t > get_posterior_mean()
The class Labels models labels, i.e. class assignments of objects.
Definition: Labels.h:43
The inference method class based on the Titsias' variational bound. For more details, see Titsias, Michalis K. "Variational learning of inducing variables in sparse Gaussian processes." International Conference on Artificial Intelligence and Statistics. 2009.
virtual float64_t get_derivative_related_cov(SGVector< float64_t > ddiagKi, SGMatrix< float64_t > dKuui, SGMatrix< float64_t > dKui)
parameter struct
virtual SGVector< float64_t > get_diagonal_vector()
virtual SGVector< float64_t > get_derivative_wrt_mean(const TParameter *param)
An abstract class of the mean function.
Definition: MeanFunction.h:49
The sparse inference base class for classification and regression for 1-D labels (1D regression and b...
virtual SGVector< float64_t > get_derivative_wrt_likelihood_model(const TParameter *param)
double float64_t
Definition: common.h:50
static CVarDTCInferenceMethod * obtain_from_generic(CInference *inference)
virtual bool supports_regression() const
EInferenceType
Definition: Inference.h:53
virtual SGMatrix< float64_t > get_posterior_covariance()
virtual bool supports_regression() const
all of classes and functions are contained in the shogun namespace
Definition: class_list.h:18
The Inference Method base class.
Definition: Inference.h:81
virtual EInferenceType get_inference_type() const
The class Features is the base class of all feature objects.
Definition: Features.h:68
virtual const char * get_name() const
The Kernel base class.
Definition: Kernel.h:159
virtual SGVector< float64_t > get_derivative_wrt_inducing_features(const TParameter *param)
The minimizer base class.
Definition: Minimizer.h:43
virtual float64_t get_negative_log_marginal_likelihood()
CLikelihoodModel * m_model
Definition: Inference.h:475
The Likelihood model base class.
virtual void register_minimizer(Minimizer *minimizer)

SHOGUN Machine Learning Toolbox - Documentation