KrisLibrary
1.0.0
|
A model of a temporal sequence consisting of k discrete states each with a gaussian emission probability. More...
#include <GaussianHMM.h>
Public Member Functions | |
GaussianHMM (int k, int d) | |
GaussianHMM (const GaussianMixtureModel &) | |
int | NumDims () const |
void | Resize (int k, int d) |
void | SetUniformTransitions () |
void | SetUniformExitProbabilities (Real pExit) |
bool | TrainEM (const std::vector< std::vector< Vector > > &examples, Real &tol, int maxIters, int verbose=0) |
Solves the max likelihood model from training data. More... | |
bool | TrainDiagonalEM (const std::vector< std::vector< Vector > > &examples, Real &tol, int maxIters, int verbose=0) |
Real | LogLikelihood (const std::vector< int > &dstates, const std::vector< Vector > &observations) const |
Computes the log likelihood of the time series. | |
Real | LogLikelihood (const std::vector< Vector > &observations) const |
Real | Probability (const Vector &p0, const Vector &obs) const |
void | Predict (const Vector &p0, Vector &pt, int numsteps=1) const |
void | Update (const Vector &p0, const Vector &obs, Vector &pobs) const |
void | Filter (const Vector &p0, const Vector &obs, Vector &pnext) const |
void | ObservationDistribution (const Vector &p0, GaussianMixtureModel &model) const |
void | MAP (const std::vector< Vector > &observations, std::vector< int > &dstates) const |
Computes the MAP assignment using the Viterbi algorithm. | |
void | Posterior (const std::vector< Vector > &observations, std::vector< Vector > &pstate) const |
void | Posterior (const std::vector< Vector > &observations, std::vector< Vector > &pstate, Matrix &tstate) const |
Public Attributes | |
Vector | discretePrior |
Matrix | transitionMatrix |
std::vector< Gaussian< Real > > | emissionModels |
A model of a temporal sequence consisting of k discrete states each with a gaussian emission probability.
The graphical model representation is as follows: x0 -> x1 -> x2 -> ... | | v v o1 o2 ...
void Statistics::GaussianHMM::Filter | ( | const Vector & | p0, |
const Vector & | obs, | ||
Vector & | pnext | ||
) | const |
Given prior distribution over discrete states p0 and the observation obs return the posterior distribution over the next step
void Statistics::GaussianHMM::ObservationDistribution | ( | const Vector & | p0, |
GaussianMixtureModel & | model | ||
) | const |
Given distribution over discrete states, compute distribution over observation
References Statistics::GaussianMixtureModel::phi.
void Statistics::GaussianHMM::Posterior | ( | const std::vector< Vector > & | observations, |
std::vector< Vector > & | pstate | ||
) | const |
Computes the posterior probabilities of each discrete state using the forward-backward algorithm
void Statistics::GaussianHMM::Posterior | ( | const std::vector< Vector > & | observations, |
std::vector< Vector > & | pstate, | ||
Matrix & | tstate | ||
) | const |
Computes the posterior probabilities of each discrete state and accumulates state-to-state transition pairs using the forward-backward algorithm
References Statistics::ExpNormalize(), Math::GetElements(), and Statistics::GaussianMixtureModelRaw::phi.
Given prior distribution over discrete states p0, predicts the distribution after numsteps time steps
bool Statistics::GaussianHMM::TrainEM | ( | const std::vector< std::vector< Vector > > & | examples, |
Real & | tol, | ||
int | maxIters, | ||
int | verbose = 0 |
||
) |
Solves the max likelihood model from training data.
Runs expectation-maximization, starting from current values of gaussians, given the training data, a tolerance, # of max iterations. Returns true if tolerance was reached, returns log-likelihood of data in tol.
Given prior distribution over discrete states p0, updates the distribution given knowledge of the observation
References Statistics::ExpNormalize(), and Math::IsInf().