1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
function e = mdnerr(net, x, t)
%MDNERR Evaluate error function for Mixture Density Network.
%
% Description
% E = MDNERR(NET, X, T) takes a mixture density network data structure
% NET, a matrix X of input vectors and a matrix T of target vectors,
% and evaluates the error function E. The error function is the
% negative log likelihood of the target data under the conditional
% density given by the mixture model parameterised by the MLP. Each
% row of X corresponds to one input vector and each row of T
% corresponds to one target vector.
%
% See also
% MDN, MDNFWD, MDNGRAD
%
% Copyright (c) Ian T Nabney (1996-2001)
% David J Evans (1998)
% Check arguments for consistency
errstring = consist(net, 'mdn', x, t);
if ~isempty(errstring)
error(errstring);
end
% Get the output mixture models
mixparams = mdnfwd(net, x);
% Compute the probabilities of mixtures
probs = mdnprob(mixparams, t);
% Compute the error
e = sum( -log(max(eps, sum(probs, 2))));
|