IT++ 4.3.1
|
support class for MOG_diag_ML() and MOG_diag_MAP() More...
#include <itpp/stat/mog_diag_em.h>
Public Member Functions | |
MOG_diag_EM_sup () | |
Default constructor. | |
~MOG_diag_EM_sup () | |
Default destructor. | |
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) |
ADD DOCUMENTATION HERE. | |
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) |
ADD DOCUMENTATION HERE. | |
void | cleanup () |
Release memory used by the model. The model will be empty. | |
void | load (const std::string &name_in) |
Initialise the model by loading the parameters from a model file. | |
void | convert_to_full () |
Do nothing. Present for compatability with the MOG_generic class. | |
double | log_lhood_single_gaus (const double *c_x_in, const int k) const |
calculate the log likelihood of C vector c_x_in using only Gaussian k | |
double | log_lhood_single_gaus (const vec &x_in, const int k) const |
calculate the log likelihood of IT++ vector x_in using only Gaussian k | |
virtual double | log_lhood_single_gaus (const vec &x_in, const int k) |
calculate the log likelihood of vector x_in using only Gaussian k | |
double | log_lhood (const double *c_x_in) |
calculate the log likelihood of C vector c_x_in | |
double | log_lhood (const vec &x_in) |
calculate the log likelihood of IT++ vector x_in | |
double | lhood (const double *c_x_in) |
calculate the likelihood of C vector c_x_in | |
double | lhood (const vec &x_in) |
calculate the likelihood of IT++ vector x_in | |
double | avg_log_lhood (const double **c_x_in, int N) |
calculate the average log likelihood of an array of C vectors ( c_x_in ) | |
double | avg_log_lhood (const Array< vec > &X_in) |
calculate the average log likelihood of an array of IT++ vectors ( X_in ) | |
void | init () |
Initialise the model to be empty. | |
void | init (const int &K_in, const int &D_in, bool full_in=false) |
initialise the model so that all Gaussians have zero mean and unit variance for all dimensions | |
void | init (Array< vec > &means_in, bool full_in=false) |
Initialise the model using user supplied mean vectors. | |
void | init (Array< vec > &means_in, Array< vec > &diag_covs_in, vec &weights_in) |
Initialise the model using user supplied parameters (diagonal covariance version) | |
void | init (Array< vec > &means_in, Array< mat > &full_covs_in, vec &weights_in) |
Initialise the model using user supplied parameters (full covariance version) | |
bool | is_valid () const |
Returns true if the model's parameters are valid. | |
bool | is_full () const |
Returns true if the model has full covariance matrices. | |
int | get_K () const |
Return the number of Gaussians. | |
int | get_D () const |
Return the dimensionality. | |
vec | get_weights () const |
Obtain a copy of the weight vector. | |
Array< vec > | get_means () const |
Obtain a copy of the array of mean vectors. | |
Array< vec > | get_diag_covs () const |
Obtain a copy of the array of diagonal covariance vectors. | |
Array< mat > | get_full_covs () const |
Obtain a copy of the array of full covariance matrices. | |
void | set_means (Array< vec > &means_in) |
Set the means of the model. | |
void | set_diag_covs (Array< vec > &diag_covs_in) |
Set the diagonal covariance vectors of the model. | |
void | set_full_covs (Array< mat > &full_covs_in) |
Set the full covariance matrices of the model. | |
void | set_weights (vec &weights_in) |
Set the weight vector of the model. | |
void | set_means_zero () |
Set the means in the model to be zero. | |
void | set_diag_covs_unity () |
Set the diagonal covariance vectors to be unity. | |
void | set_full_covs_unity () |
Set the full covariance matrices to be unity. | |
void | set_weights_uniform () |
Set all the weights to 1/K, where K is the number of Gaussians. | |
void | set_checks (bool do_checks_in) |
Enable/disable internal checks for likelihood functions. | |
void | set_paranoid (bool paranoid_in) |
Enable/disable paranoia about numerical stability. | |
virtual void | save (const std::string &name_in) const |
Save the model's parameters to a model file. | |
virtual void | join (const MOG_generic &B_in) |
Mathematically join the model with a user supplied model. | |
virtual void | convert_to_diag () |
Convert the model to use diagonal covariances. | |
Protected Member Functions | |
void | update_internals () |
ADD DOCUMENTATION HERE. | |
void | sanitise_params () |
ADD DOCUMENTATION HERE. | |
double | ml_update_params () |
ADD DOCUMENTATION HERE. | |
void | ml_iterate () |
ADD DOCUMENTATION HERE. | |
void | setup_means () |
additional processing of mean vectors, done as the last step of mean initialisation | |
void | setup_covs () |
additional processing of covariance vectors/matrices, done as the last step of covariance initialisation | |
void | setup_weights () |
additional processing of the weight vector, done as the last step of weight initialisation | |
void | setup_misc () |
additional processing of miscellaneous parameters, done as the last step of overall initialisation | |
double | log_lhood_single_gaus_internal (const double *c_x_in, const int k) const |
ADD DOCUMENTATION HERE. | |
double | log_lhood_single_gaus_internal (const vec &x_in, const int k) const |
ADD DOCUMENTATION HERE. | |
virtual double | log_lhood_single_gaus_internal (const vec &x_in, const int k) |
ADD DOCUMENTATION HERE. | |
double | log_lhood_internal (const double *c_x_in) |
ADD DOCUMENTATION HERE. | |
double | log_lhood_internal (const vec &x_in) |
ADD DOCUMENTATION HERE. | |
double | lhood_internal (const double *c_x_in) |
ADD DOCUMENTATION HERE. | |
double | lhood_internal (const vec &x_in) |
ADD DOCUMENTATION HERE. | |
double ** | enable_c_access (Array< vec > &A_in) |
Enable C style access to an Array of vectors (vec) | |
int ** | enable_c_access (Array< ivec > &A_in) |
Enable C style access to an Array of vectors (ivec) | |
double * | enable_c_access (vec &v_in) |
Enable C style access to a vector (vec) | |
int * | enable_c_access (ivec &v_in) |
Enable C style access to a vector (ivec) | |
double ** | disable_c_access (double **A_in) |
Disable C style access to an Array of vectors (vec) | |
int ** | disable_c_access (int **A_in) |
Disable C style access to an Array of vectors (ivec) | |
double * | disable_c_access (double *v_in) |
Disable C style access to a vector (vec) | |
int * | disable_c_access (int *v_in) |
Disable C style access to a vector (ivec) | |
void | zero_all_ptrs () |
ADD DOCUMENTATION HERE. | |
void | free_all_ptrs () |
ADD DOCUMENTATION HERE. | |
bool | check_size (const vec &x_in) const |
Check if vector x_in has the same dimensionality as the model. | |
bool | check_size (const Array< vec > &X_in) const |
Check if all vectors in Array X_in have the same dimensionality as the model. | |
bool | check_array_uniformity (const Array< vec > &A) const |
Check if all vectors in Array X_in have the same dimensionality. | |
void | set_means_internal (Array< vec > &means_in) |
ADD DOCUMENTATION HERE. | |
void | set_diag_covs_internal (Array< vec > &diag_covs_in) |
ADD DOCUMENTATION HERE. | |
void | set_full_covs_internal (Array< mat > &full_covs_in) |
ADD DOCUMENTATION HERE. | |
void | set_weights_internal (vec &_weigths) |
ADD DOCUMENTATION HERE. | |
void | set_means_zero_internal () |
ADD DOCUMENTATION HERE. | |
void | set_diag_covs_unity_internal () |
ADD DOCUMENTATION HERE. | |
void | set_full_covs_unity_internal () |
ADD DOCUMENTATION HERE. | |
void | set_weights_uniform_internal () |
ADD DOCUMENTATION HERE. | |
void | convert_to_diag_internal () |
ADD DOCUMENTATION HERE. | |
void | convert_to_full_internal () |
ADD DOCUMENTATION HERE. | |
Protected Attributes | |
bool | verbose |
Whether we print the progress. | |
int | N |
number of training vectors | |
int | max_iter |
Maximum number of iterations. | |
double ** | c_X |
'C' pointers to training vectors | |
double | var_floor |
ADD DOCUMENTATION HERE. | |
double | weight_floor |
ADD DOCUMENTATION HERE. | |
double ** | c_means |
pointers to the mean vectors | |
double ** | c_diag_covs |
pointers to the covariance vectors | |
double ** | c_diag_covs_inv_etc |
pointers to the inverted covariance vectors | |
double * | c_weights |
pointer to the weight vector | |
double * | c_log_weights |
pointer to the log version of the weight vector | |
double * | c_log_det_etc |
pointer to the log_det_etc vector | |
bool | do_checks |
indicates whether checks on input data are done | |
bool | valid |
indicates whether the parameters are valid | |
bool | full |
indicates whether we are using full or diagonal covariance matrices | |
bool | paranoid |
indicates whether we are paranoid about numerical stability | |
int | K |
number of gaussians | |
int | D |
dimensionality | |
Array< vec > | means |
means | |
Array< vec > | diag_covs |
diagonal covariance matrices, stored as vectors | |
Array< mat > | full_covs |
full covariance matrices | |
vec | weights |
weights | |
double | log_max_K |
Pre-calcualted std::log(std::numeric_limits<double>::max() / K), where K is the number of Gaussians. | |
vec | log_det_etc |
Gaussian specific pre-calcualted constants. | |
vec | log_weights |
Pre-calculated log versions of the weights. | |
Array< mat > | full_covs_inv |
Pre-calcuated inverted version of each full covariance matrix. | |
Array< vec > | diag_covs_inv_etc |
Pre-calcuated inverted version of each diagonal covariance vector, where the covariance elements are first multiplied by two. | |
support class for MOG_diag_ML() and MOG_diag_MAP()
Definition at line 43 of file mog_diag_em.h.
|
inline |
|
inline |
Default destructor.
Definition at line 52 of file mog_diag_em.h.
void itpp::MOG_diag_EM_sup::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 ) |
ADD DOCUMENTATION HERE.
Definition at line 228 of file mog_diag_em.cpp.
References c_X, itpp::MOG_generic::check_array_uniformity(), itpp::MOG_diag::cleanup(), itpp::MOG_generic::D, itpp::MOG_generic::diag_covs, itpp::MOG_diag::disable_c_access(), itpp::MOG_diag::enable_c_access(), itpp::MOG_generic::get_diag_covs(), itpp::MOG_generic::get_means(), itpp::MOG_generic::get_weights(), itpp::MOG_generic::init(), itpp::MOG_generic::is_valid(), it_assert, it_warning, itpp::MOG_generic::K, max_iter, itpp::MOG_generic::means, ml_iterate(), itpp::MOG_diag::MOG_diag(), N, itpp::Array< T >::set_size(), itpp::Array< T >::size(), var_floor, verbose, weight_floor, and itpp::MOG_generic::weights.
Referenced by itpp::MOG_diag_ML().
void itpp::MOG_diag_EM_sup::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 ) |
ADD DOCUMENTATION HERE.
Definition at line 306 of file mog_diag_em.cpp.
References it_error, and itpp::MOG_diag::MOG_diag().
|
inlineprotected |
ADD DOCUMENTATION HERE.
update log versions of parameters and any necessary constants
Definition at line 41 of file mog_diag_em.cpp.
References itpp::MOG_diag::c_diag_covs, itpp::MOG_diag::c_diag_covs_inv_etc, itpp::MOG_diag::c_log_det_etc, itpp::MOG_diag::c_log_weights, itpp::MOG_diag::c_weights, itpp::MOG_generic::D, itpp::MOG_generic::K, and itpp::m_2pi.
Referenced by ml_iterate().
|
inlineprotected |
ADD DOCUMENTATION HERE.
for helping to avoid numerical instability
Definition at line 66 of file mog_diag_em.cpp.
References itpp::MOG_diag::c_diag_covs, itpp::MOG_diag::c_weights, itpp::MOG_generic::D, itpp::MOG_generic::K, var_floor, and weight_floor.
Referenced by ml_iterate().
|
protected |
ADD DOCUMENTATION HERE.
update parameters using the Maximum Likelihood version of the EM algorithm
Definition at line 84 of file mog_diag_em.cpp.
References itpp::MOG_diag::c_diag_covs, itpp::MOG_diag::c_log_weights, itpp::MOG_diag::c_means, itpp::MOG_diag::c_weights, c_X, itpp::MOG_generic::D, itpp::MOG_generic::K, itpp::log_add(), itpp::MOG_diag::log_lhood_single_gaus_internal(), itpp::MOG_generic::log_max_K, N, itpp::MOG_generic::paranoid, itpp::sum(), and itpp::trunc_exp().
Referenced by ml_iterate().
|
protected |
ADD DOCUMENTATION HERE.
Definition at line 176 of file mog_diag_em.cpp.
References itpp::flush(), max_iter, ml_update_params(), sanitise_params(), itpp::Timer::tic(), itpp::Timer::toc(), update_internals(), and verbose.
Referenced by ml().
|
inlinevirtualinherited |
Release memory used by the model. The model will be empty.
Reimplemented from itpp::MOG_generic.
Definition at line 111 of file mog_diag.h.
References itpp::MOG_generic::cleanup(), and free_all_ptrs().
Referenced by itpp::MOG_diag_EM_sup::ml(), itpp::MOG_diag_kmeans_sup::run(), and ~MOG_diag().
|
virtualinherited |
Initialise the model by loading the parameters from a model file.
name_in | The model's filename |
Reimplemented from itpp::MOG_generic.
Definition at line 277 of file mog_diag.cpp.
References itpp::MOG_generic::convert_to_diag(), itpp::MOG_generic::full, and itpp::MOG_generic::load().
Referenced by MOG_diag().
|
inlinevirtualinherited |
Do nothing. Present for compatability with the MOG_generic class.
Reimplemented from itpp::MOG_generic.
Definition at line 121 of file mog_diag.h.
|
inherited |
calculate the log likelihood of C vector c_x_in
using only Gaussian k
Definition at line 59 of file mog_diag.cpp.
References itpp::MOG_generic::do_checks, it_assert, itpp::MOG_generic::K, log_lhood_single_gaus_internal(), and itpp::MOG_generic::valid.
|
inherited |
calculate the log likelihood of IT++ vector x_in
using only Gaussian k
Definition at line 69 of file mog_diag.cpp.
References itpp::MOG_generic::check_size(), itpp::MOG_generic::do_checks, it_assert, itpp::MOG_generic::K, log_lhood_single_gaus_internal(), and itpp::MOG_generic::valid.
|
virtualinherited |
calculate the log likelihood of vector x_in
using only Gaussian k
Definition at line 550 of file mog_generic.cpp.
References check_size(), do_checks, it_assert, K, log_lhood_single_gaus_internal(), and valid.
|
inherited |
calculate the log likelihood of C vector c_x_in
Definition at line 122 of file mog_diag.cpp.
References itpp::MOG_generic::do_checks, it_assert, log_lhood_internal(), and itpp::MOG_generic::valid.
|
virtualinherited |
calculate the log likelihood of IT++ vector x_in
Reimplemented from itpp::MOG_generic.
Definition at line 112 of file mog_diag.cpp.
References itpp::MOG_generic::check_size(), itpp::MOG_generic::do_checks, it_assert, log_lhood_internal(), and itpp::MOG_generic::valid.
|
inherited |
calculate the likelihood of C vector c_x_in
Definition at line 170 of file mog_diag.cpp.
References itpp::MOG_generic::do_checks, it_assert, lhood_internal(), and itpp::MOG_generic::valid.
|
virtualinherited |
calculate the likelihood of IT++ vector x_in
Reimplemented from itpp::MOG_generic.
Definition at line 160 of file mog_diag.cpp.
References itpp::MOG_generic::check_size(), itpp::MOG_generic::do_checks, it_assert, lhood_internal(), and itpp::MOG_generic::valid.
|
inherited |
calculate the average log likelihood of an array of C vectors ( c_x_in
)
Definition at line 181 of file mog_diag.cpp.
References itpp::MOG_generic::do_checks, it_assert, log_lhood_internal(), and itpp::MOG_generic::valid.
|
virtualinherited |
calculate the average log likelihood of an array of IT++ vectors ( X_in
)
Reimplemented from itpp::MOG_generic.
Definition at line 195 of file mog_diag.cpp.
References itpp::MOG_generic::check_size(), itpp::MOG_generic::do_checks, it_assert, log_lhood_internal(), itpp::Array< T >::size(), and itpp::MOG_generic::valid.
|
protectedvirtualinherited |
additional processing of mean vectors, done as the last step of mean initialisation
Reimplemented from itpp::MOG_generic.
Definition at line 231 of file mog_diag.cpp.
References c_means, disable_c_access(), enable_c_access(), itpp::MOG_generic::means, and itpp::MOG_generic::setup_means().
|
protectedvirtualinherited |
additional processing of covariance vectors/matrices, done as the last step of covariance initialisation
Reimplemented from itpp::MOG_generic.
Definition at line 239 of file mog_diag.cpp.
References c_diag_covs, c_diag_covs_inv_etc, c_log_det_etc, itpp::MOG_generic::diag_covs, itpp::MOG_generic::diag_covs_inv_etc, disable_c_access(), enable_c_access(), itpp::MOG_generic::full, itpp::MOG_generic::log_det_etc, and itpp::MOG_generic::setup_covs().
|
protectedvirtualinherited |
additional processing of the weight vector, done as the last step of weight initialisation
Reimplemented from itpp::MOG_generic.
Definition at line 254 of file mog_diag.cpp.
References c_log_weights, c_weights, disable_c_access(), enable_c_access(), itpp::MOG_generic::log_weights, itpp::MOG_generic::setup_weights(), and itpp::MOG_generic::weights.
|
protectedvirtualinherited |
additional processing of miscellaneous parameters, done as the last step of overall initialisation
Reimplemented from itpp::MOG_generic.
Definition at line 266 of file mog_diag.cpp.
References itpp::MOG_generic::convert_to_diag_internal(), disable_c_access(), enable_c_access(), itpp::MOG_generic::full, itpp::MOG_generic::K, and itpp::MOG_generic::setup_misc().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 37 of file mog_diag.cpp.
References c_diag_covs_inv_etc, c_log_det_etc, c_means, and itpp::MOG_generic::D.
Referenced by lhood_internal(), log_lhood_internal(), log_lhood_single_gaus(), log_lhood_single_gaus(), log_lhood_single_gaus_internal(), and itpp::MOG_diag_EM_sup::ml_update_params().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 53 of file mog_diag.cpp.
References log_lhood_single_gaus_internal().
|
protectedvirtualinherited |
ADD DOCUMENTATION HERE.
Definition at line 526 of file mog_generic.cpp.
References D, diag_covs_inv_etc, full, full_covs_inv, log_det_etc, itpp::mean(), and means.
Referenced by lhood_internal(), log_lhood_internal(), and log_lhood_single_gaus().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 80 of file mog_diag.cpp.
References c_log_weights, itpp::MOG_generic::K, itpp::log_add(), log_lhood_single_gaus_internal(), itpp::MOG_generic::log_max_K, itpp::MOG_generic::paranoid, and itpp::sum().
Referenced by avg_log_lhood(), avg_log_lhood(), log_lhood(), log_lhood(), and log_lhood_internal().
|
protectedvirtualinherited |
ADD DOCUMENTATION HERE.
Reimplemented from itpp::MOG_generic.
Definition at line 106 of file mog_diag.cpp.
References log_lhood_internal().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 133 of file mog_diag.cpp.
References c_log_weights, itpp::MOG_generic::K, itpp::log_add(), log_lhood_single_gaus_internal(), itpp::MOG_generic::log_max_K, itpp::MOG_generic::paranoid, itpp::sum(), and itpp::trunc_exp().
Referenced by lhood(), lhood(), and lhood_internal().
|
protectedvirtualinherited |
ADD DOCUMENTATION HERE.
Reimplemented from itpp::MOG_generic.
Definition at line 158 of file mog_diag.cpp.
References lhood_internal().
|
protectedinherited |
Enable C style access to an Array of vectors (vec)
Definition at line 284 of file mog_diag.cpp.
References itpp::Array< T >::size().
Referenced by itpp::MOG_diag_EM_sup::ml(), itpp::MOG_diag_kmeans_sup::run(), setup_covs(), setup_means(), setup_misc(), and setup_weights().
|
protectedinherited |
Enable C style access to an Array of vectors (ivec)
Definition at line 292 of file mog_diag.cpp.
References itpp::Array< T >::size().
|
protectedinherited |
Enable C style access to a vector (vec)
Definition at line 303 of file mog_diag.cpp.
|
protectedinherited |
Enable C style access to a vector (ivec)
Definition at line 304 of file mog_diag.cpp.
|
protectedinherited |
Disable C style access to an Array of vectors (vec)
Definition at line 300 of file mog_diag.cpp.
Referenced by free_all_ptrs(), itpp::MOG_diag_EM_sup::ml(), itpp::MOG_diag_kmeans_sup::run(), setup_covs(), setup_means(), setup_misc(), and setup_weights().
|
protectedinherited |
Disable C style access to an Array of vectors (ivec)
Definition at line 301 of file mog_diag.cpp.
|
protectedinherited |
Disable C style access to a vector (vec)
Definition at line 306 of file mog_diag.cpp.
|
protectedinherited |
Disable C style access to a vector (ivec)
Definition at line 307 of file mog_diag.cpp.
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 207 of file mog_diag.cpp.
References c_diag_covs, c_diag_covs_inv_etc, c_log_det_etc, c_log_weights, c_means, and c_weights.
Referenced by MOG_diag(), MOG_diag(), MOG_diag(), MOG_diag(), MOG_diag(), and MOG_diag().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 219 of file mog_diag.cpp.
References c_diag_covs, c_diag_covs_inv_etc, c_log_det_etc, c_log_weights, c_means, c_weights, and disable_c_access().
Referenced by cleanup().
|
inherited |
Initialise the model to be empty.
Definition at line 43 of file mog_generic.cpp.
References cleanup().
Referenced by join(), load(), itpp::MOG_diag_EM_sup::ml(), itpp::MOG_diag::MOG_diag(), itpp::MOG_diag::MOG_diag(), itpp::MOG_diag::MOG_diag(), itpp::MOG_diag::MOG_diag(), itpp::MOG_diag::MOG_diag(), MOG_generic(), MOG_generic(), MOG_generic(), MOG_generic(), MOG_generic(), and itpp::MOG_diag_kmeans_sup::run().
|
inherited |
initialise the model so that all Gaussians have zero mean and unit variance for all dimensions
K_in | Number of Gaussians |
D_in | Dimensionality |
full_in | If true, use full covariance matrices; if false, use diagonal covariance matrices. Default = false. |
Definition at line 46 of file mog_generic.cpp.
References D, do_checks, full, it_assert, K, paranoid, set_diag_covs_unity_internal(), set_full_covs_unity_internal(), set_means_zero_internal(), set_weights_uniform_internal(), setup_misc(), and valid.
|
inherited |
Initialise the model using user supplied mean vectors.
means_in | Array of mean vectors |
full_in | If true, use full covariance matrices; if false, use diagonal covariance matrices. Default = false. |
Definition at line 69 of file mog_generic.cpp.
References check_array_uniformity(), D, do_checks, full, it_assert, K, paranoid, set_diag_covs_unity_internal(), set_full_covs_unity_internal(), set_means(), set_weights_uniform_internal(), setup_misc(), itpp::Array< T >::size(), and valid.
|
inherited |
Initialise the model using user supplied parameters (diagonal covariance version)
means_in | Array of mean vectors |
diag_covs_in | Array of vectors representing diagonal covariances |
weights_in | vector of weights |
Definition at line 89 of file mog_generic.cpp.
References check_array_uniformity(), D, do_checks, full, it_assert, K, paranoid, set_diag_covs_internal(), set_means_internal(), set_weights_internal(), setup_misc(), itpp::Array< T >::size(), and valid.
|
inherited |
Initialise the model using user supplied parameters (full covariance version)
means_in | Array of mean vectors |
full_covs_in | Array of covariance matrices |
weights_in | vector of weights |
Definition at line 110 of file mog_generic.cpp.
References check_array_uniformity(), D, do_checks, full, it_assert, K, paranoid, set_full_covs_internal(), set_means_internal(), set_weights_internal(), setup_misc(), itpp::Array< T >::size(), and valid.
|
inlineinherited |
Returns true if the model's parameters are valid.
Definition at line 154 of file mog_generic.h.
References valid.
Referenced by join(), itpp::MOG_diag_EM_sup::ml(), and itpp::MOG_diag_kmeans_sup::run().
|
inlineinherited |
Returns true if the model has full covariance matrices.
Definition at line 157 of file mog_generic.h.
References full.
Referenced by join().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Obtain a copy of the weight vector.
Definition at line 166 of file mog_generic.h.
References valid, and weights.
Referenced by join(), itpp::MOG_diag_EM_sup::ml(), and itpp::MOG_diag_kmeans_sup::run().
|
inlineinherited |
Obtain a copy of the array of mean vectors.
Definition at line 169 of file mog_generic.h.
Referenced by join(), itpp::MOG_diag_EM_sup::ml(), and itpp::MOG_diag_kmeans_sup::run().
|
inlineinherited |
Obtain a copy of the array of diagonal covariance vectors.
Definition at line 172 of file mog_generic.h.
References diag_covs, full, and valid.
Referenced by join(), itpp::MOG_diag_EM_sup::ml(), and itpp::MOG_diag_kmeans_sup::run().
|
inlineinherited |
|
inherited |
Set the means of the model.
Definition at line 351 of file mog_generic.cpp.
References set_means_internal(), and valid.
Referenced by init().
|
inherited |
Set the diagonal covariance vectors of the model.
Definition at line 365 of file mog_generic.cpp.
References set_diag_covs_internal(), and valid.
|
inherited |
Set the full covariance matrices of the model.
Definition at line 372 of file mog_generic.cpp.
References set_full_covs_internal(), and valid.
|
inherited |
Set the weight vector of the model.
Definition at line 379 of file mog_generic.cpp.
References set_weights_internal(), and valid.
|
inherited |
Set the means in the model to be zero.
Definition at line 358 of file mog_generic.cpp.
References set_means_zero_internal(), and valid.
|
inherited |
Set the diagonal covariance vectors to be unity.
Definition at line 386 of file mog_generic.cpp.
References set_diag_covs_unity_internal(), and valid.
|
inherited |
Set the full covariance matrices to be unity.
Definition at line 393 of file mog_generic.cpp.
References set_full_covs_unity_internal(), and valid.
|
inherited |
Set all the weights to 1/K, where K is the number of Gaussians.
Definition at line 400 of file mog_generic.cpp.
References set_weights_uniform_internal(), and valid.
|
inlineinherited |
Enable/disable internal checks for likelihood functions.
do_checks_in | If true, checks are enabled; if false, checks are disabled |
Definition at line 214 of file mog_generic.h.
References do_checks.
|
inlineinherited |
Enable/disable paranoia about numerical stability.
paranoid_in | If true, calculate likelihoods using a safer, but slower method. |
Definition at line 219 of file mog_generic.h.
References paranoid.
|
virtualinherited |
Save the model's parameters to a model file.
name_in | The model's filename |
Definition at line 438 of file mog_generic.cpp.
References itpp::it_file::close(), diag_covs, full, full_covs, means, valid, and weights.
|
virtualinherited |
Mathematically join the model with a user supplied model.
B_in | user supplied model |
See On transforming statistical models... for more information.
Definition at line 453 of file mog_generic.cpp.
References itpp::concat(), D, diag_covs, full, full_covs, get_D(), get_diag_covs(), get_full_covs(), get_K(), get_means(), get_weights(), init(), is_full(), is_valid(), it_assert, K, means, MOG_generic(), valid, and weights.
|
virtualinherited |
Convert the model to use diagonal covariances.
Definition at line 499 of file mog_generic.cpp.
References convert_to_diag_internal(), and valid.
Referenced by itpp::MOG_diag::load(), and itpp::MOG_diag::MOG_diag().
|
protectedinherited |
Check if vector x_in
has the same dimensionality as the model.
Definition at line 130 of file mog_generic.cpp.
References D.
Referenced by itpp::MOG_diag::avg_log_lhood(), avg_log_lhood(), check_size(), itpp::MOG_diag::lhood(), lhood(), itpp::MOG_diag::log_lhood(), log_lhood(), itpp::MOG_diag::log_lhood_single_gaus(), log_lhood_single_gaus(), and itpp::MOG_diag_kmeans_sup::run().
|
protectedinherited |
Check if all vectors in Array X_in
have the same dimensionality as the model.
Definition at line 137 of file mog_generic.cpp.
References check_array_uniformity(), and check_size().
|
protectedinherited |
Check if all vectors in Array X_in
have the same dimensionality.
Definition at line 144 of file mog_generic.cpp.
References itpp::Array< T >::size(), and itpp::size().
Referenced by check_size(), init(), init(), init(), and itpp::MOG_diag_EM_sup::ml().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 164 of file mog_generic.cpp.
References D, it_assert, K, means, setup_means(), itpp::Array< T >::size(), and itpp::size().
Referenced by init(), init(), and set_means().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 180 of file mog_generic.cpp.
References D, diag_covs, full, full_covs, it_assert, K, setup_covs(), itpp::Array< T >::size(), and itpp::size().
Referenced by init(), and set_diag_covs().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 200 of file mog_generic.cpp.
References D, diag_covs, full, full_covs, it_assert, K, setup_covs(), and itpp::Array< T >::size().
Referenced by init(), and set_full_covs().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 225 of file mog_generic.cpp.
References it_assert, K, setup_weights(), and weights.
Referenced by init(), init(), and set_weights().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 156 of file mog_generic.cpp.
References D, K, means, itpp::Array< T >::set_size(), and setup_means().
Referenced by init(), and set_means_zero().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 241 of file mog_generic.cpp.
References D, diag_covs, full, full_covs, K, itpp::Array< T >::set_size(), and setup_covs().
Referenced by init(), init(), and set_diag_covs_unity().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 253 of file mog_generic.cpp.
References D, diag_covs, full, full_covs, K, itpp::Array< T >::set_size(), and setup_covs().
Referenced by init(), init(), and set_full_covs_unity().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 269 of file mog_generic.cpp.
References K, setup_weights(), and weights.
Referenced by init(), init(), and set_weights_uniform().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 486 of file mog_generic.cpp.
References itpp::diag(), diag_covs, full, full_covs, K, and setup_covs().
Referenced by convert_to_diag(), and itpp::MOG_diag::setup_misc().
|
protectedinherited |
ADD DOCUMENTATION HERE.
Definition at line 506 of file mog_generic.cpp.
References itpp::diag(), diag_covs, full, full_covs, K, and setup_covs().
Referenced by convert_to_full().
|
protected |
Whether we print the progress.
Definition at line 62 of file mog_diag_em.h.
Referenced by ml(), ml_iterate(), and MOG_diag_EM_sup().
|
protected |
number of training vectors
Definition at line 65 of file mog_diag_em.h.
Referenced by ml(), and ml_update_params().
|
protected |
Maximum number of iterations.
Definition at line 68 of file mog_diag_em.h.
Referenced by ml(), and ml_iterate().
|
protected |
'C' pointers to training vectors
Definition at line 71 of file mog_diag_em.h.
Referenced by ml(), and ml_update_params().
|
protected |
ADD DOCUMENTATION HERE.
Definition at line 74 of file mog_diag_em.h.
Referenced by ml(), and sanitise_params().
|
protected |
ADD DOCUMENTATION HERE.
Definition at line 76 of file mog_diag_em.h.
Referenced by ml(), and sanitise_params().
|
protectedinherited |
pointers to the mean vectors
Definition at line 197 of file mog_diag.h.
Referenced by itpp::MOG_diag_kmeans_sup::assign_to_means(), itpp::MOG_diag_kmeans_sup::calc_covs(), itpp::MOG_diag_kmeans_sup::dezombify_means(), free_all_ptrs(), itpp::MOG_diag_kmeans_sup::initial_means(), itpp::MOG_diag_kmeans_sup::iterate(), log_lhood_single_gaus_internal(), itpp::MOG_diag_kmeans_sup::measure_change(), itpp::MOG_diag_EM_sup::ml_update_params(), itpp::MOG_diag_kmeans_sup::recalculate_means(), setup_means(), itpp::MOG_diag_kmeans_sup::unnormalise_means(), and zero_all_ptrs().
|
protectedinherited |
pointers to the covariance vectors
Definition at line 200 of file mog_diag.h.
Referenced by itpp::MOG_diag_kmeans_sup::calc_covs(), free_all_ptrs(), itpp::MOG_diag_EM_sup::ml_update_params(), itpp::MOG_diag_EM_sup::sanitise_params(), setup_covs(), itpp::MOG_diag_EM_sup::update_internals(), and zero_all_ptrs().
|
protectedinherited |
pointers to the inverted covariance vectors
Definition at line 203 of file mog_diag.h.
Referenced by free_all_ptrs(), log_lhood_single_gaus_internal(), setup_covs(), itpp::MOG_diag_EM_sup::update_internals(), and zero_all_ptrs().
|
protectedinherited |
pointer to the weight vector
Definition at line 206 of file mog_diag.h.
Referenced by itpp::MOG_diag_kmeans_sup::calc_weights(), free_all_ptrs(), itpp::MOG_diag_EM_sup::ml_update_params(), itpp::MOG_diag_EM_sup::sanitise_params(), setup_weights(), itpp::MOG_diag_EM_sup::update_internals(), and zero_all_ptrs().
|
protectedinherited |
pointer to the log version of the weight vector
Definition at line 209 of file mog_diag.h.
Referenced by free_all_ptrs(), lhood_internal(), log_lhood_internal(), itpp::MOG_diag_EM_sup::ml_update_params(), setup_weights(), itpp::MOG_diag_EM_sup::update_internals(), and zero_all_ptrs().
|
protectedinherited |
pointer to the log_det_etc vector
Definition at line 212 of file mog_diag.h.
Referenced by free_all_ptrs(), log_lhood_single_gaus_internal(), setup_covs(), itpp::MOG_diag_EM_sup::update_internals(), and zero_all_ptrs().
|
protectedinherited |
indicates whether checks on input data are done
Definition at line 280 of file mog_generic.h.
Referenced by itpp::MOG_diag::avg_log_lhood(), itpp::MOG_diag::avg_log_lhood(), avg_log_lhood(), cleanup(), init(), init(), init(), init(), itpp::MOG_diag::lhood(), itpp::MOG_diag::lhood(), lhood(), itpp::MOG_diag::log_lhood(), itpp::MOG_diag::log_lhood(), log_lhood(), itpp::MOG_diag::log_lhood_single_gaus(), itpp::MOG_diag::log_lhood_single_gaus(), log_lhood_single_gaus(), and set_checks().
|
protectedinherited |
indicates whether the parameters are valid
Definition at line 283 of file mog_generic.h.
Referenced by itpp::MOG_diag::avg_log_lhood(), itpp::MOG_diag::avg_log_lhood(), avg_log_lhood(), cleanup(), convert_to_diag(), convert_to_full(), get_D(), get_diag_covs(), get_full_covs(), get_K(), get_means(), get_weights(), init(), init(), init(), init(), is_valid(), join(), itpp::MOG_diag::lhood(), itpp::MOG_diag::lhood(), lhood(), load(), itpp::MOG_diag::log_lhood(), itpp::MOG_diag::log_lhood(), log_lhood(), itpp::MOG_diag::log_lhood_single_gaus(), itpp::MOG_diag::log_lhood_single_gaus(), log_lhood_single_gaus(), save(), set_diag_covs(), set_diag_covs_unity(), set_full_covs(), set_full_covs_unity(), set_means(), set_means_zero(), set_weights(), and set_weights_uniform().
|
protectedinherited |
indicates whether we are using full or diagonal covariance matrices
Definition at line 286 of file mog_generic.h.
Referenced by convert_to_diag_internal(), convert_to_full_internal(), get_diag_covs(), get_full_covs(), init(), init(), init(), init(), is_full(), join(), itpp::MOG_diag::load(), log_lhood_single_gaus_internal(), save(), set_diag_covs_internal(), set_diag_covs_unity_internal(), set_full_covs_internal(), set_full_covs_unity_internal(), itpp::MOG_diag::setup_covs(), setup_covs(), and itpp::MOG_diag::setup_misc().
|
protectedinherited |
indicates whether we are paranoid about numerical stability
Definition at line 289 of file mog_generic.h.
Referenced by init(), init(), init(), init(), itpp::MOG_diag::lhood_internal(), lhood_internal(), itpp::MOG_diag::log_lhood_internal(), log_lhood_internal(), itpp::MOG_diag_EM_sup::ml_update_params(), and set_paranoid().
|
protectedinherited |
number of gaussians
Definition at line 292 of file mog_generic.h.
Referenced by itpp::MOG_diag_kmeans_sup::assign_to_means(), itpp::MOG_diag_kmeans_sup::calc_covs(), itpp::MOG_diag_kmeans_sup::calc_weights(), cleanup(), convert_to_diag_internal(), convert_to_full_internal(), itpp::MOG_diag_kmeans_sup::dezombify_means(), get_K(), init(), init(), init(), init(), itpp::MOG_diag_kmeans_sup::initial_means(), itpp::MOG_diag_kmeans_sup::iterate(), join(), itpp::MOG_diag::lhood_internal(), lhood_internal(), itpp::MOG_diag::log_lhood_internal(), log_lhood_internal(), itpp::MOG_diag::log_lhood_single_gaus(), itpp::MOG_diag::log_lhood_single_gaus(), log_lhood_single_gaus(), itpp::MOG_diag_kmeans_sup::measure_change(), itpp::MOG_diag_EM_sup::ml(), itpp::MOG_diag_EM_sup::ml_update_params(), itpp::MOG_diag_kmeans_sup::recalculate_means(), itpp::MOG_diag_kmeans_sup::run(), itpp::MOG_diag_EM_sup::sanitise_params(), set_diag_covs_internal(), set_diag_covs_unity_internal(), set_full_covs_internal(), set_full_covs_unity_internal(), set_means_internal(), set_means_zero_internal(), set_weights_internal(), set_weights_uniform_internal(), setup_covs(), itpp::MOG_diag::setup_misc(), setup_misc(), itpp::MOG_diag_kmeans_sup::unnormalise_means(), and itpp::MOG_diag_EM_sup::update_internals().
|
protectedinherited |
dimensionality
Definition at line 295 of file mog_generic.h.
Referenced by itpp::MOG_diag_kmeans_sup::calc_covs(), check_size(), cleanup(), itpp::MOG_diag_kmeans_sup::dezombify_means(), itpp::MOG_diag_kmeans_sup::dist(), get_D(), init(), init(), init(), init(), itpp::MOG_diag_kmeans_sup::initial_means(), itpp::MOG_diag_kmeans_sup::iterate(), join(), itpp::MOG_diag::log_lhood_single_gaus_internal(), log_lhood_single_gaus_internal(), itpp::MOG_diag_EM_sup::ml(), itpp::MOG_diag_EM_sup::ml_update_params(), itpp::MOG_diag_kmeans_sup::normalise_vectors(), itpp::MOG_diag_kmeans_sup::recalculate_means(), itpp::MOG_diag_kmeans_sup::run(), itpp::MOG_diag_EM_sup::sanitise_params(), set_diag_covs_internal(), set_diag_covs_unity_internal(), set_full_covs_internal(), set_full_covs_unity_internal(), set_means_internal(), set_means_zero_internal(), setup_covs(), setup_misc(), itpp::MOG_diag_kmeans_sup::unnormalise_means(), itpp::MOG_diag_kmeans_sup::unnormalise_vectors(), and itpp::MOG_diag_EM_sup::update_internals().
|
protectedinherited |
means
Definition at line 298 of file mog_generic.h.
Referenced by cleanup(), get_means(), join(), log_lhood_single_gaus_internal(), itpp::MOG_diag_EM_sup::ml(), itpp::MOG_diag_kmeans_sup::run(), save(), set_means_internal(), set_means_zero_internal(), and itpp::MOG_diag::setup_means().
|
protectedinherited |
diagonal covariance matrices, stored as vectors
Definition at line 301 of file mog_generic.h.
Referenced by cleanup(), convert_to_diag_internal(), convert_to_full_internal(), get_diag_covs(), join(), itpp::MOG_diag_EM_sup::ml(), itpp::MOG_diag_kmeans_sup::run(), save(), set_diag_covs_internal(), set_diag_covs_unity_internal(), set_full_covs_internal(), set_full_covs_unity_internal(), itpp::MOG_diag::setup_covs(), and setup_covs().
|
protectedinherited |
full covariance matrices
Definition at line 304 of file mog_generic.h.
Referenced by cleanup(), convert_to_diag_internal(), convert_to_full_internal(), get_full_covs(), join(), save(), set_diag_covs_internal(), set_diag_covs_unity_internal(), set_full_covs_internal(), set_full_covs_unity_internal(), and setup_covs().
|
protectedinherited |
weights
Definition at line 307 of file mog_generic.h.
Referenced by cleanup(), get_weights(), join(), itpp::MOG_diag_EM_sup::ml(), itpp::MOG_diag_kmeans_sup::run(), save(), set_weights_internal(), set_weights_uniform_internal(), itpp::MOG_diag::setup_weights(), and setup_weights().
|
protectedinherited |
Pre-calcualted std::log(std::numeric_limits<double>::max() / K), where K is the number of Gaussians.
Definition at line 310 of file mog_generic.h.
Referenced by itpp::MOG_diag::lhood_internal(), lhood_internal(), itpp::MOG_diag::log_lhood_internal(), log_lhood_internal(), itpp::MOG_diag_EM_sup::ml_update_params(), and setup_misc().
|
protectedinherited |
Gaussian specific pre-calcualted constants.
Definition at line 317 of file mog_generic.h.
Referenced by cleanup(), log_lhood_single_gaus_internal(), itpp::MOG_diag::setup_covs(), and setup_covs().
|
protectedinherited |
Pre-calculated log versions of the weights.
Definition at line 320 of file mog_generic.h.
Referenced by cleanup(), lhood_internal(), log_lhood_internal(), itpp::MOG_diag::setup_weights(), and setup_weights().
|
protectedinherited |
Pre-calcuated inverted version of each full covariance matrix.
Definition at line 323 of file mog_generic.h.
Referenced by cleanup(), log_lhood_single_gaus_internal(), and setup_covs().
|
protectedinherited |
Pre-calcuated inverted version of each diagonal covariance vector, where the covariance elements are first multiplied by two.
Definition at line 326 of file mog_generic.h.
Referenced by cleanup(), log_lhood_single_gaus_internal(), itpp::MOG_diag::setup_covs(), and setup_covs().