33 #ifndef xmmGmmSingleClass_hpp 34 #define xmmGmmSingleClass_hpp 36 #include "../../core/model/xmmModelResults.hpp" 37 #include "../../core/model/xmmModelSingleClass.hpp" 54 template <
typename SingleClassModel,
typename ModelType>
77 Json::Value
const& root);
100 double filter(std::vector<float>
const& observation);
111 Json::Value
toJson()
const;
118 void fromJson(Json::Value
const& root);
218 double obsProb(
const float* observation,
int mixtureComponent = -1)
const;
233 int mixtureComponent = -1)
const;
249 const float* observation_output,
250 int mixtureComponent = -1)
const;
311 std::vector<float>
const& observation,
312 std::vector<float>
const& observation_output = null_vector_float);
323 void regression(std::vector<float>
const& observation_input);
double emAlgorithmUpdate(TrainingSet *trainingSet)
Update Function of the EM algorithm.
Definition: xmmGmmSingleClass.cpp:389
const std::vector< float > null_vector_float
Definition: xmmGmmSingleClass.hpp:42
std::vector< float > mixture_coeffs
Mixture Coefficients.
Definition: xmmGmmSingleClass.hpp:194
Json::Value toJson() const
Write the object to a JSON Structure.
Definition: xmmGmmSingleClass.cpp:95
std::vector< double > beta
Beta probabilities: likelihood of each component.
Definition: xmmGmmSingleClass.hpp:199
double filter(std::vector< float > const &observation)
filters a incoming observation (performs recognition or regression)
Definition: xmmGmmSingleClass.cpp:78
Parameters specific to each class of a Gaussian Mixture Model.
Definition: xmmGmmParameters.hpp:54
double obsProb_bimodal(const float *observation_input, const float *observation_output, int mixtureComponent=-1) const
Observation probability for bimodal mode.
Definition: xmmGmmSingleClass.cpp:276
void updateInverseCovariances()
Update inverse covariances of each Gaussian component.
Definition: xmmGmmSingleClass.cpp:562
double likelihood(std::vector< float > const &observation, std::vector< float > const &observation_output=null_vector_float)
Compute likelihood and estimate components probabilities.
Definition: xmmGmmSingleClass.cpp:606
Probabilistic machine learning model for multiclass recognition and regression.
Definition: xmmModel.hpp:52
SingleClassGMM & operator=(SingleClassGMM const &src)
Assignment.
Definition: xmmGmmSingleClass.cpp:65
ClassResults< GMM > results
Results of the filtering process (recognition & regression)
Definition: xmmGmmSingleClass.hpp:184
void allocate()
Allocate model parameters.
Definition: xmmGmmSingleClass.cpp:223
void regression(std::vector< float > const &observation_input)
Compute Gaussian Mixture Regression.
Definition: xmmGmmSingleClass.cpp:573
Single-Class Hidden Markov Model.
Definition: xmmHmmSingleClass.hpp:47
std::vector< double > current_regularization
vector containing the regularization values over each dimension
Definition: xmmGmmSingleClass.hpp:339
void emAlgorithmInit(TrainingSet *trainingSet)
Initialize the EM Training Algorithm.
Definition: xmmGmmSingleClass.cpp:87
ClassParameters< GMM > parameters
Convert to bimodal GMM in place.
Definition: xmmGmmSingleClass.hpp:179
Generic Template for Machine Learning Probabilistic models based on the EM algorithm.
Definition: xmmModelSingleClass.hpp:174
SingleClassGMM(std::shared_ptr< SharedParameters > p=NULL)
Constructor.
Definition: xmmGmmSingleClass.cpp:36
void normalizeMixtureCoeffs()
Normalize mixture coefficients.
Definition: xmmGmmSingleClass.cpp:540
Base class for the definition of training sets.
Definition: xmmTrainingSet.hpp:46
Class-specific Results of the filtering/inference process.
Definition: xmmModelResults.hpp:47
void initParametersToDefault(std::vector< float > const &dataStddev)
Initialize model parameters to default values.
Definition: xmmGmmSingleClass.cpp:511
void fromJson(Json::Value const &root)
Read the object from a JSON Structure.
Definition: xmmGmmSingleClass.cpp:108
double obsProb_input(const float *observation_input, int mixtureComponent=-1) const
Observation probability on the input modality.
Definition: xmmGmmSingleClass.cpp:255
Hierarchical Hidden Markov Model for Continuous Recognition and Regression (Multi-class) ...
Definition: xmmHierarchicalHmm.hpp:47
Definition: xmmAttribute.hpp:42
void reset()
Resets the fitering process (recognition or regression)
Definition: xmmGmmSingleClass.cpp:76
Single-Class Gaussian Mixture Model.
Definition: xmmGmmSingleClass.hpp:52
void addCovarianceOffset()
Add offset to the diagonal of the covariance matrices.
Definition: xmmGmmSingleClass.cpp:556
void initCovariances_fullyObserved(TrainingSet *trainingSet)
Initialize the Covariances of the Gaussian components using a fully observed approximation.
Definition: xmmGmmSingleClass.cpp:314
double obsProb(const float *observation, int mixtureComponent=-1) const
Observation probability.
Definition: xmmGmmSingleClass.cpp:234
void initMeansWithKMeans(TrainingSet *trainingSet)
Initialize the means of the Gaussian components with a Biased K-means.
Definition: xmmGmmSingleClass.cpp:300
std::vector< GaussianDistribution > components
Vector of Gaussian Components.
Definition: xmmGmmSingleClass.hpp:189
void updateResults()
update the content of the likelihood buffer and return average likelihood.
Definition: xmmGmmSingleClass.cpp:632