gmmTrain
GMM training for parameter identification
Contents
Syntax
- gmmModel = gmmTrain(data, gmmOpt)
- gmmModel = gmmTrain(data, gmmOpt, showPlot)
- [gmmModel, logLike] = gmmTrain(...)
- gmmOpt = gmmTrain('defaultOpt');
Description
gmmModel = gmmTrain(data, opt) performs GMM training and returns the parameters in gmmModel. I/O arguments are as follows:
- data: dim x dataNum matrix where each column is a data point
- opt: gmm options for architecture and training
- opt.arch.gaussianNum: No. of Gaussians
- opt.arch.covType: Type of covariance matrix
- opt.train.showInfo: Displaying info during training
- opt.train.useKmeans: Use k-means to find initial centers
- opt.train.maxIteration: Max. number of iterations
- opt.train.minImprove: Min. improvement over the previous iteration
- opt.train.minVariance: Min. variance for each mixture
- opt.train.usePartialVectorization specifies the use of vectorized operations, as follows:
- 0 for fully vectorized operation
- 1 (default) for partial vectorized operation (which is slower but uses less memory)
- gmmModel: The final model for GMM
[gmmModel, logLike] = gmmTrain(data, opt) also returns the log likelihood during the training process.
For demos, please refer to
- 1-d example: gmmTrainDemo1d.
- 2-d example: gmmTrainDemo2dCovType01.m, gmmTrainDemo2dCovType02.m, and gmmTrainDemo2dCovType03.
Note that opt.arch determines the architecture of GMM, which is then used to determine the initial GMM parameters by gmmInitPrmSet.m. In fact, opt.arch could be a valid GMM parameters that specify the GMM architecture directly. On the other hand, opt.train determines the parameters for training.
Example
DS=dcData(2);
trainingData=DS.input;
opt=gmmTrain('defaultOpt');
opt.arch.gaussianNum=8;
opt.arch.covType=1;
opt.train.useKmeans=0;
opt.train.showInfo=1;
opt.train.maxIteration=50;
[gmmModel, logLike]=gmmTrain(trainingData, opt, 1);
GMM iteration: 0/50, log likelihood. = -2176.899395 GMM iteration: 1/50, log likelihood. = -1809.513767 GMM iteration: 2/50, log likelihood. = -1739.879326 GMM iteration: 3/50, log likelihood. = -1673.792270 GMM iteration: 4/50, log likelihood. = -1630.780294 GMM iteration: 5/50, log likelihood. = -1604.305048 GMM iteration: 6/50, log likelihood. = -1578.688540 GMM iteration: 7/50, log likelihood. = -1550.721166 GMM iteration: 8/50, log likelihood. = -1528.377797 GMM iteration: 9/50, log likelihood. = -1514.268505 GMM iteration: 10/50, log likelihood. = -1505.246626 GMM iteration: 11/50, log likelihood. = -1498.892696 GMM iteration: 12/50, log likelihood. = -1493.933101 GMM iteration: 13/50, log likelihood. = -1489.768738 GMM iteration: 14/50, log likelihood. = -1486.140973 GMM iteration: 15/50, log likelihood. = -1482.928599 GMM iteration: 16/50, log likelihood. = -1480.065106 GMM iteration: 17/50, log likelihood. = -1477.510487 GMM iteration: 18/50, log likelihood. = -1475.238999 GMM iteration: 19/50, log likelihood. = -1473.231551 GMM iteration: 20/50, log likelihood. = -1471.470897 GMM iteration: 21/50, log likelihood. = -1469.939184 GMM iteration: 22/50, log likelihood. = -1468.617208 GMM iteration: 23/50, log likelihood. = -1467.484661 GMM iteration: 24/50, log likelihood. = -1466.520791 GMM iteration: 25/50, log likelihood. = -1465.705146 GMM iteration: 26/50, log likelihood. = -1465.018212 GMM iteration: 27/50, log likelihood. = -1464.441885 GMM iteration: 28/50, log likelihood. = -1463.959761 GMM iteration: 29/50, log likelihood. = -1463.557271 GMM iteration: 30/50, log likelihood. = -1463.221685 GMM iteration: 31/50, log likelihood. = -1462.942040 GMM iteration: 32/50, log likelihood. = -1462.708994 GMM iteration: 33/50, log likelihood. = -1462.514668 GMM iteration: 34/50, log likelihood. = -1462.352460 GMM iteration: 35/50, log likelihood. = -1462.216871 GMM iteration: 36/50, log likelihood. = -1462.103342 GMM iteration: 37/50, log likelihood. = -1462.008104 GMM iteration: 38/50, log likelihood. = -1461.928045 GMM iteration: 39/50, log likelihood. = -1461.860601 GMM iteration: 40/50, log likelihood. = -1461.803659 GMM iteration: 41/50, log likelihood. = -1461.755475 GMM iteration: 42/50, log likelihood. = -1461.714611 GMM iteration: 43/50, log likelihood. = -1461.679878 GMM iteration: 44/50, log likelihood. = -1461.650292 GMM iteration: 45/50, log likelihood. = -1461.625037 GMM iteration: 46/50, log likelihood. = -1461.603434 GMM iteration: 47/50, log likelihood. = -1461.584918 GMM iteration: 48/50, log likelihood. = -1461.569017 GMM iteration: 49/50, log likelihood. = -1461.555337 GMM total iteration count = 50, log likelihood. = -1461.543546