SHOGUN  4.1.0
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
LogitVGPiecewiseBoundLikelihood.h
浏览该文件的文档.
1 /*
2  * Copyright (c) The Shogun Machine Learning Toolbox
3  * Written (w) 2014 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  * https://github.com/emtiyaz/VariationalApproxExample
32  * and the reference paper is
33  * Marlin, Benjamin M., Mohammad Emtiyaz Khan, and Kevin P. Murphy.
34  * "Piecewise Bounds for Estimating Bernoulli-Logistic Latent Gaussian Models." ICML. 2011.
35  */
36 
37 #ifndef _LOGITVGPIECEWISEBOUNDLIKELIHOOD_H_
38 #define _LOGITVGPIECEWISEBOUNDLIKELIHOOD_H_
39 
40 #include <shogun/lib/config.h>
41 
42 #ifdef HAVE_EIGEN3
43 
46 
47 namespace shogun
48 {
65 {
66 public:
68 
70 
75  virtual const char* get_name() const { return "LogitVGPiecewiseBoundLikelihood"; }
76 
81  virtual void set_variational_bound(SGMatrix<float64_t> bound);
82 
92 
104 
117 
124  virtual bool supports_derivative_wrt_hyperparameter() const { return false; }
125 
126 
136 
139 
140 protected:
141 
143  virtual void init_likelihood();
144 
145 private:
147  void init();
148 
153  void precompute();
154 
156  SGMatrix<float64_t> m_bound;
157 
159  SGMatrix<float64_t> m_pl;
160 
162  SGMatrix<float64_t> m_ph;
163 
165  SGMatrix<float64_t> m_cdf_diff;
166 
168  SGMatrix<float64_t> m_l2_plus_s2;
169 
171  SGMatrix<float64_t> m_h2_plus_s2;
172 
174  SGMatrix<float64_t> m_weighted_pdf_diff;
175 };
176 }
177 #endif /* HAVE_EIGEN3 */
178 #endif /* _LOGITVGPIECEWISEBOUNDLIKELIHOOD_H_ */
The class Labels models labels, i.e. class assignments of objects.
Definition: Labels.h:43
The variational Gaussian Likelihood base class. The variational distribution is Gaussian.
parameter struct
Class that models Logit likelihood and uses variational piecewise bound to approximate the following ...
virtual void set_variational_bound(SGMatrix< float64_t > bound)
virtual SGVector< float64_t > get_variational_first_derivative(const TParameter *param) const
virtual SGVector< float64_t > get_first_derivative_wrt_hyperparameter(const TParameter *param) const
all of classes and functions are contained in the shogun namespace
Definition: class_list.h:18
virtual bool set_variational_distribution(SGVector< float64_t > mu, SGVector< float64_t > s2, const CLabels *lab)

SHOGUN 机器学习工具包 - 项目文档