IT++ Logo
mog_diag_em.h
Go to the documentation of this file.
1 
29 #ifndef MOG_DIAG_EM_H
30 #define MOG_DIAG_EM_H
31 
32 #include <itpp/stat/mog_diag.h>
33 #include <itpp/itexports.h>
34 #include <itpp/base/base_exports.h>
35 
36 namespace itpp
37 {
38 
43 class ITPP_EXPORT MOG_diag_EM_sup : public MOG_diag
44 {
45 
46 public:
47 
49  MOG_diag_EM_sup() { verbose = false; }
50 
53 
55  void ml(MOG_diag &model_in, Array<vec> &X_in, int max_iter_in = 10, double var_floor_in = 0.0, double weight_floor_in = 0.0, bool verbose_in = false);
57  void map(MOG_diag &model_in, MOG_diag &prior_model, Array<vec> &X_in, int max_iter_in = 10, double alpha_in = 0.5, double var_floor_in = 0.0, double weight_floor_in = 0.0, bool verbose_in = false);
58 
59 protected:
60 
62  bool verbose;
63 
65  int N;
66 
68  int max_iter;
69 
71  double ** c_X;
72 
74  double var_floor;
76  double weight_floor;
77 
79  void inline update_internals();
81  void inline sanitise_params();
83  double ml_update_params();
85  void ml_iterate();
86 
87 private:
88 
89  vec tmpvecK;
90  vec tmpvecD;
91  vec acc_loglhood_K;
92 
93  Array<vec> acc_means;
94  Array<vec> acc_covs;
95 
96  double * c_tmpvecK;
97  double * c_tmpvecD;
98  double * c_acc_loglhood_K;
99 
100  double ** c_acc_means;
101  double ** c_acc_covs;
102 
103 
104 };
105 
106 //
107 // convenience functions
108 
136 void MOG_diag_ML(MOG_diag &model_in, Array<vec> &X_in, int max_iter_in = 10, double var_floor_in = 0.0, double weight_floor_in = 0.0, bool verbose_in = false);
137 
156 void MOG_diag_MAP(MOG_diag &model_in, MOG_diag &prior_model_in, Array<vec> &X_in, int max_iter_in = 10, double alpha_in = 0.5, double var_floor_in = 0.0, double weight_floor_in = 0.0, bool verbose_in = false);
157 
158 }
159 
160 #endif // #ifndef MOG_DIAG_EM_H
161 
MOG_diag_EM_sup()
Default constructor.
Definition: mog_diag_em.h:49
Diagonal Mixture of Gaussians class - header file.
void MOG_diag_MAP(MOG_diag &, MOG_diag &, Array< vec > &, int, double, double, double, bool)
Diagonal Mixture of Gaussians (MOG) class.
Definition: mog_diag.h:55
Import/Export definitions for some templates defined in base folder.
void MOG_diag_ML(MOG_diag &model_in, Array< vec > &X_in, int max_iter_in, double var_floor_in, double weight_floor_in, bool verbose_in)
double var_floor
ADD DOCUMENTATION HERE.
Definition: mog_diag_em.h:74
itpp namespace
Definition: itmex.h:36
bool verbose
Whether we print the progress.
Definition: mog_diag_em.h:62
double weight_floor
ADD DOCUMENTATION HERE.
Definition: mog_diag_em.h:76
int max_iter
Maximum number of iterations.
Definition: mog_diag_em.h:68
support class for MOG_diag_ML() and MOG_diag_MAP()
Definition: mog_diag_em.h:43
int N
number of training vectors
Definition: mog_diag_em.h:65
double ** c_X
&#39;C&#39; pointers to training vectors
Definition: mog_diag_em.h:71
~MOG_diag_EM_sup()
Default destructor.
Definition: mog_diag_em.h:52

Generated on Thu Jun 21 2018 16:06:18 for IT++ by Doxygen 1.8.13