Mercurial > hg > camir-aes2014
annotate 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 |
rev | line source |
---|---|
wolffd@0 | 1 function g = demgpot(x, mix) |
wolffd@0 | 2 %DEMGPOT Computes the gradient of the negative log likelihood for a mixture model. |
wolffd@0 | 3 % |
wolffd@0 | 4 % Description |
wolffd@0 | 5 % This function computes the gradient of the negative log of the |
wolffd@0 | 6 % unconditional data density P(X) with respect to the coefficients of |
wolffd@0 | 7 % the data vector X for a Gaussian mixture model. The data structure |
wolffd@0 | 8 % MIX defines the mixture model, while the matrix X contains the data |
wolffd@0 | 9 % vector as a row vector. Note the unusual order of the arguments: this |
wolffd@0 | 10 % is so that the function can be used in DEMHMC1 directly for sampling |
wolffd@0 | 11 % from the distribution P(X). |
wolffd@0 | 12 % |
wolffd@0 | 13 % See also |
wolffd@0 | 14 % DEMHMC1, DEMMET1, DEMPOT |
wolffd@0 | 15 % |
wolffd@0 | 16 |
wolffd@0 | 17 % Copyright (c) Ian T Nabney (1996-2001) |
wolffd@0 | 18 |
wolffd@0 | 19 % Computes the potential gradient |
wolffd@0 | 20 |
wolffd@0 | 21 temp = (ones(mix.ncentres,1)*x)-mix.centres; |
wolffd@0 | 22 temp = temp.*(gmmactiv(mix,x)'*ones(1, mix.nin)); |
wolffd@0 | 23 % Assume spherical covariance structure |
wolffd@0 | 24 if ~strcmp(mix.covar_type, 'spherical') |
wolffd@0 | 25 error('Spherical covariance only.') |
wolffd@0 | 26 end |
wolffd@0 | 27 temp = temp./(mix.covars'*ones(1, mix.nin)); |
wolffd@0 | 28 temp = temp.*(mix.priors'*ones(1, mix.nin)); |
wolffd@0 | 29 g = sum(temp, 1)/gmmprob(mix, x); |