Daniel@0: Daniel@0: Daniel@0: Daniel@0: Netlab Reference Manual mdn Daniel@0: Daniel@0: Daniel@0: Daniel@0:

mdn Daniel@0:

Daniel@0:

Daniel@0: Purpose Daniel@0:

Daniel@0: Creates a Mixture Density Network with specified architecture. Daniel@0: Daniel@0:

Daniel@0: Synopsis Daniel@0:

Daniel@0:
Daniel@0: net = mdn(nin, nhidden, ncentres, dimtarget)
Daniel@0: net = mdn(nin, nhidden, ncentres, dimtarget, mixtype, ...
Daniel@0: 	prior, beta)
Daniel@0: 
Daniel@0: Daniel@0: Daniel@0:

Daniel@0: Description Daniel@0:

Daniel@0: net = mdn(nin, nhidden, ncentres, dimtarget) takes the number of Daniel@0: inputs, Daniel@0: hidden units for a 2-layer feed-forward Daniel@0: network and the number of centres and target dimension for the Daniel@0: mixture model whose parameters are set from the outputs of the neural network. Daniel@0: The fifth argument mixtype is used to define the type of mixture Daniel@0: model. (Currently there is only one type supported: a mixture of Gaussians with Daniel@0: a single covariance parameter for each component.) For this model, Daniel@0: the mixture coefficients are computed from a group of softmax outputs, Daniel@0: the centres are equal to a group of linear outputs, and the variances are Daniel@0: obtained by applying the exponential function to a third group of outputs. Daniel@0: Daniel@0:

The network is initialised by a call to mlp, and the arguments Daniel@0: prior, and beta have the same role as for that function. Daniel@0: Weight initialisation uses the Matlab function randn Daniel@0: and so the seed for the random weight initialization can be Daniel@0: set using randn('state', s) where s is the seed value. Daniel@0: A specialised data structure (rather than gmm) Daniel@0: is used for the mixture model outputs to improve Daniel@0: the efficiency of error and gradient calculations in network training. Daniel@0: The fields are described in mdnfwd where they are set up. Daniel@0: Daniel@0:

The fields in net are Daniel@0:

Daniel@0:   
Daniel@0:   type = 'mdn'
Daniel@0:   nin = number of input variables
Daniel@0:   nout = dimension of target space (not number of network outputs)
Daniel@0:   nwts = total number of weights and biases
Daniel@0:   mdnmixes = data structure for mixture model output
Daniel@0:   mlp = data structure for MLP network
Daniel@0: 
Daniel@0: Daniel@0: Daniel@0:

Daniel@0: Example Daniel@0:

Daniel@0:
Daniel@0: 
Daniel@0: net = mdn(2, 4, 3, 1, 'spherical');
Daniel@0: 
Daniel@0: Daniel@0: This creates a Mixture Density Network with 2 inputs and 4 hidden units. Daniel@0: The mixture model has 3 components and the target space has dimension 1. Daniel@0: Daniel@0:

Daniel@0: See Also Daniel@0:

Daniel@0: mdnfwd, mdnerr, mdn2gmm, mdngrad, mdnpak, mdnunpak, mlp
Daniel@0: Pages: Daniel@0: Index Daniel@0:
Daniel@0:

Copyright (c) Ian T Nabney (1996-9) Daniel@0:

David J Evans (1998) Daniel@0: Daniel@0: Daniel@0: