2016-03-26 07:14:54 -0500 received badge ● Editor (source) 2016-03-26 06:52:57 -0500 asked a question Trouble with OpenCV Implementation of EM Algorithm using Spherical GMM Hi I've been trying to use the OpenCV EM code and have had a problem. By setting the maxiter parameter to 1 and using the trainE function I allow only the first expectation step to be completed. I then check the loglikelihood output. Now my problem lies in the fact that if I change the model from GENERIC to SPHERICAL, I get different values for loglikelihood for the same initialization. However the equations for the expectation step remain the same and the loglikelihoods in the first E-Step should be the same values for both models. So I am unable to figure out where the problem lies. Here is my code #include #define NumObs 100 #define Dim 2 #define numClusters 2 #define maxiter 1 int main(int argc, char** argv) { cv::Mat X = cv::Mat(NumObs, Dim, CV_64F); cv::Mat mean = cv::Mat(numClusters,Dim,CV_64F); std::vector covar; cv::Mat mixfrac = cv::Mat(numClusters, 1, CV_64F); cv::Mat logLikelihoods = cv::Mat(NumObs, 1, CV_64F); cv::Mat labels = cv::Mat(NumObs, 1, CV_32SC1); cv::Mat probs = cv::Mat(NumObs, numClusters, CV_64F); int i; mean = (cv::Mat_(numClusters, Dim) << 2, 3, 4, 5); mixfrac = (cv::Mat_(numClusters, 1) << 0.5, 0.5); cv::Mat temp(2, 2, CV_64F); temp = (cv::Mat_(Dim, Dim) << 2, 0, 0, 2); covar.push_back(temp); temp = (cv::Mat_(Dim, Dim) << 3, 0, 0, 3); covar.push_back(temp); X = (cv::Mat_(NumObs, Dim) << 1.497295712046560, 2.389842806384741 , -1.152388866819642, 2.324051537951996 , 0.173091890138541, 3.534436744900519 , 4.013635589903881, 2.635470732249428 , 0.343404593485856, 2.710797002553179 , 1.921946750771822, 2.230097059251492 , 2.923105482852674, 1.968687377364361 , 0.833763816549866, 1.621119740290876 , 1.000974973520235, 0.501003642054062 , 2.722581031828046, 2.179151938477484 , 2.061657164408961, 1.870114601526011 , 2.020337185029648, 1.822954976448330 , 1.076363394410326, 2.640385082400831 , 1.543478612011669, 2.241597508998520 , 1.485372235285237, 2.893724906106137 , -0.715927044291090, 1.369537907446789 , 1.864588596758692, 1.688875700397673 , -0.335577615523311, 2.183975485869516 , -1.456483320753825, 1.493965172927608 , -0.712160818106508, 1.912240385882839 , 0.233365021273562, 1.954626227148290 , 1.998344873833923, 0.343780671699337 , 0.880159284239810, 0.926396318575558 , 0.800239863676473, 2.841303191042556 , 2.509835594907550, 0.767610261936824 , -0.806015998003402, 2.440467562347095 , 2.672846813458981, 1.899891020249070 , 2.396696676145479, 3.621937374575406 , 0.151374345266610, 2.569943677660735 , 2.775466044119043, 1.781063533049695 , 1.191366838548084, 1.702684062103669 , -0.232621783623176, 1.631979353155736 , -1.174537262824991, 1.738099976739696 , -2.550748638571660, 1.816963733157464 , 0.039014544632652, 1.808195242782888 , -2.078943086646864, 2.084038835619226 , 1.081089945552743, 2.576115695603576 , -0.916439364072319, 0.708922705869511 , 0.903297610096863, 2.791378047921652 , -0.561947988394385, 2.656510856158910 , 1.216211768410659, 1.219031885881044 , 0.693337555617687, 1.359035671153648 , 1.417702588339615, 2.313005179476850 , 0.430424593609415, 1.132064410966174 , -0.261023655491497, 1.981218019474763 , 2.268819458983812, 0.391842019202139 , 0.806386480042758, 3.199864590240754 , -0.985989695126394, 0.893059534741550 , -2.442654072043812, 1.689554199357084 , 1.210751074224775, 1.499372753495019 , -0.672567018407857, 2.970910199573346 , -0.507381574772955, 1.967926272242394 , 0.247969979069518, 0.947965104732303 , 2.891713920836473, 0.861177994177589 , 3.354602636199656, 1.942017768571913 , -1.693061842976859, 1.760474923494942 , 3.997953758133590, 1.297952400955861 , 1.512000798331720, 0.853595479991537 , 1.423345018469304, 3.082589664236521 , -0.666695083234841, 1.125720158829322 , 3.464220247867981, 1.038778673164228 , 2.933373891043690, 1.628066445794965 , 2.438787742568557, 1.882463318993010 , 1.156530661730840 ... 2016-03-26 06:52:57 -0500 asked a question Trouble with OpenCV Implementation of EM Algorithm using Spherical GMM Hi I've been trying to use the OpenCV EM code and have had a problem. By setting the maxiter parameter to 1 and using the trainE function I allow only the first expectation step to be completed. I then check the loglikelihood output. Now my problem lies in the fact that if I change the model from GENERIC to SPHERICAL, I get different values for loglikelihood for the same initialization. However the equations for the expectation step remain the same and the loglikelihoods in the first E-Step should be the same values for both models. So I am unable to figure out where the problem lies. For the code and outputs please check: http://stackoverflow.com/questions/36... Thank you for your time.