EM_GM_fast is the modified version of EM_GM (EM algorithm for k multidimensional Gaussian mixture estimation) for speed enchancement suggested by Mr. Michael Boedigheimer. The functionalities of EM_GM_fast and EM_GM are identical.
Note: EM_GM_fast requires more memory than EM_GM to execute. If EM_GM_fast does not provide any speed gain or is slower than EM_GM, more memory is needed or EM_GM should be used instead.
Similar to EM_GM, EM_GM_fast is designed as a single file function (i.e. all sub functions are included in the same file) for convenience and portability.
Detail descriptions of all inputs and outputs are included in the file. EM_GM_fast can be controlled to plot 1D or 2D problems and display CPU time used as well as number of iterations.
X = zeros(600,2);
X(1:200,:) = normrnd(0,1,200,2);
X(201:400,:) = normrnd(0,2,200,2);
X(401:600,:) = normrnd(0,3,200,2);
[W,M,V,L] = EM_GM_fast(X,3,,,1,)
How can I apply this to a 3D brain image. (e.g. dimension: 170*170*170)??
I'm using your EM_GM_fast code. Could you please tell me is there the option that permits to estimate Gaussian mixtures with diagonal covariance matrices? Thank you.
Noticed something that may be incorrect. When using multiple mixtures, you cannot compute the log likelihood of all of the data under each mixture and then just sum them. You need to do the sum before going into the log domain. Or use an approximation: http://nlp.cs.byu.edu/mediawiki/index.php/Log_Domain_Computations
This implementation, although very fast and useful, unfortunately doesn't detect and prevent the collapse of a mixture component, resulting in divisions by zero, if the number of initial components selected is suboptimal.
Just updating the license.
Only the title is modified to describe this function better.