mdnprob.m

来自「The Netlab toolbox is designed to provid」· M 代码 · 共 53 行

M
53
字号
function [prob,a] = mdnprob(mixparams, t)%MDNPROB Computes the data probability likelihood for an MDN mixture structure.%%	Description%	PROB = MDNPROB(MIXPARAMS, T) computes the probability P(T) of each%	data vector in T under the Gaussian mixture model represented by the%	corresponding entries in MIXPARAMS. Each row of T represents a single%	vector.%%	[PROB, A] = MDNPROB(MIXPARAMS, T) also computes the activations A%	(i.e. the probability P(T|J) of the data conditioned on each%	component density) for a Gaussian mixture model.%%	See also%	MDNERR, MDNPOST%%	Copyright (c) Ian T Nabney (1996-2001)%	David J Evans (1998)% Check arguments for consistencyerrstring = consist(mixparams, 'mdnmixes');if ~isempty(errstring)  error(errstring);endntarget    = size(t, 1);if ntarget ~= size(mixparams.centres, 1)  error('Number of targets does not match number of mixtures')endif size(t, 2) ~= mixparams.dim_target  error('Target dimension does not match mixture dimension')enddim_target = mixparams.dim_target;ntarget    = size(t, 1);% Calculate squared norm matrix, of dimension (ndata, ncentres)% vector (ntarget * ncentres)dist2 = mdndist2(mixparams, t);% Calculate variance factorsvariance = 2.*mixparams.covars;% Compute the normalisation termnormal  = ((2.*pi).*mixparams.covars).^(dim_target./2);% Now compute the activationsa = exp(-(dist2./variance))./normal;% Accumulate negative log likelihood of targetsprob = mixparams.mixcoeffs.*a;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?