GMM-GMR is a set of Matlab functions to train a Gaussian Mixture Model (GMM) and retrieve generalized data through Gaussian Mixture Regression (GMR). It allows to encode efficiently any dataset in Gaussian Mixture Model (GMM) through the use of an Expectation-Maximization (EM) iterative learning algorithms. By using this model, Gaussian Mixture Regression (GMR) can then be used to retrieve partial output data by specifying the desired inputs. It then acts as a generalization process that computes conditional probability with respect to partially observed data.
A sample is provided to load a dataset containing several trajectory data [t,x] where t is a temporal value and x is a position in 3D. The joint probability p(t,x) is then encoded in GMM, and GMR is used to retrieve p(x|t), namely the expected position at each time step. This is used to retrieve a smooth generalized version of the trajectories provided.
The source codes are implementations of the algorithms described in the book "Robot Programming by Demonstration: A Probabilistic Approach", EPFL/CRC Press. More information on http://programming-by-demonstration.org/book/