Mercurial > hg > camir-aes2014
view toolboxes/FullBNT-1.0.7/netlab3.3/demgpot.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
line wrap: on
line source
function g = demgpot(x, mix) %DEMGPOT Computes the gradient of the negative log likelihood for a mixture model. % % Description % This function computes the gradient of the negative log of the % unconditional data density P(X) with respect to the coefficients of % the data vector X for a Gaussian mixture model. The data structure % MIX defines the mixture model, while the matrix X contains the data % vector as a row vector. Note the unusual order of the arguments: this % is so that the function can be used in DEMHMC1 directly for sampling % from the distribution P(X). % % See also % DEMHMC1, DEMMET1, DEMPOT % % Copyright (c) Ian T Nabney (1996-2001) % Computes the potential gradient temp = (ones(mix.ncentres,1)*x)-mix.centres; temp = temp.*(gmmactiv(mix,x)'*ones(1, mix.nin)); % Assume spherical covariance structure if ~strcmp(mix.covar_type, 'spherical') error('Spherical covariance only.') end temp = temp./(mix.covars'*ones(1, mix.nin)); temp = temp.*(mix.priors'*ones(1, mix.nin)); g = sum(temp, 1)/gmmprob(mix, x);