Daniel@0: Daniel@0: Daniel@0: Daniel@0: Netlab Reference Manual rbf Daniel@0: Daniel@0: Daniel@0: Daniel@0:

rbf Daniel@0:

Daniel@0:

Daniel@0: Purpose Daniel@0:

Daniel@0: Creates an RBF network with specified architecture Daniel@0: Daniel@0:

Daniel@0: Synopsis Daniel@0:

Daniel@0:
Daniel@0: 
Daniel@0: net = rbf(nin, nhidden, nout, rbfunc)
Daniel@0: net = rbf(nin, nhidden, nout, rbfunc, outfunc)
Daniel@0: net = rbf(nin, nhidden, nout, rbfunc, outfunc, prior, beta)
Daniel@0: 
Daniel@0: Daniel@0: Daniel@0:

Daniel@0: Description Daniel@0:

Daniel@0: net = rbf(nin, nhidden, nout, rbfunc) constructs and initialises Daniel@0: a radial basis function network returning a data structure net. Daniel@0: The weights are all initialised with a zero mean, unit variance normal Daniel@0: distribution, with the exception of the variances, which are set to one. Daniel@0: This makes use of the Matlab function Daniel@0: randn and so the seed for the random weight initialization can be Daniel@0: set using randn('state', s) where s is the seed value. The Daniel@0: activation functions are defined in terms of the distance between Daniel@0: the data point and the corresponding centre. Note that the functions are Daniel@0: computed to a convenient constant multiple: for example, the Gaussian Daniel@0: is not normalised. (Normalisation is not needed as the function outputs Daniel@0: are linearly combined in the next layer.) Daniel@0: Daniel@0:

The fields in net are Daniel@0:

Daniel@0: 
Daniel@0:   type = 'rbf'
Daniel@0:   nin = number of inputs
Daniel@0:   nhidden = number of hidden units
Daniel@0:   nout = number of outputs
Daniel@0:   nwts = total number of weights and biases
Daniel@0:   actfn = string defining hidden unit activation function:
Daniel@0:     'gaussian' for a radially symmetric Gaussian function.
Daniel@0:     'tps' for r^2 log r, the thin plate spline function.
Daniel@0:     'r4logr' for r^4 log r.
Daniel@0:   outfn = string defining output error function:
Daniel@0:     'linear' for linear outputs (default) and SoS error.
Daniel@0:     'neuroscale' for Sammon stress measure.
Daniel@0:   c = centres
Daniel@0:   wi = squared widths (null for rlogr and tps)
Daniel@0:   w2 = second layer weight matrix
Daniel@0:   b2 = second layer bias vector
Daniel@0: 
Daniel@0: Daniel@0: Daniel@0:

net = rbf(nin, nhidden, nout, rbfund, outfunc) allows the user to Daniel@0: specify the type of error function to be used. The field outfn Daniel@0: is set to the value of this string. Linear outputs (for regression problems) Daniel@0: and Neuroscale outputs (for topographic mappings) are supported. Daniel@0: Daniel@0:

net = rbf(nin, nhidden, nout, rbfunc, outfunc, prior, beta), Daniel@0: in which prior is Daniel@0: a scalar, allows the field net.alpha in the data structure Daniel@0: net to be set, corresponding to a zero-mean isotropic Gaussian Daniel@0: prior with inverse variance with value prior. Alternatively, Daniel@0: prior can consist of a data structure with fields alpha Daniel@0: and index, allowing individual Gaussian priors to be set over Daniel@0: groups of weights in the network. Here alpha is a column vector Daniel@0: in which each element corresponds to a separate group of weights, Daniel@0: which need not be mutually exclusive. The membership of the groups is Daniel@0: defined by the matrix indx in which the columns correspond to Daniel@0: the elements of alpha. Each column has one element for each Daniel@0: weight in the matrix, in the order defined by the function Daniel@0: rbfpak, and each element is 1 or 0 according to whether the Daniel@0: weight is a member of the corresponding group or not. A utility Daniel@0: function rbfprior is provided to help in setting up the Daniel@0: prior data structure. Daniel@0: Daniel@0:

net = rbf(nin, nhidden, nout, func, prior, beta) also sets the Daniel@0: additional field net.beta in the data structure net, where Daniel@0: beta corresponds to the inverse noise variance. Daniel@0: Daniel@0:

Daniel@0: Example Daniel@0:

Daniel@0: The following code constructs an RBF network with 1 input and output node Daniel@0: and 5 hidden nodes and then propagates some data x through it. Daniel@0:
Daniel@0: 
Daniel@0: net = rbf(1, 5, 1, 'tps');
Daniel@0: [y, act] = rbffwd(net, x);
Daniel@0: 
Daniel@0: Daniel@0: Daniel@0:

Daniel@0: See Also Daniel@0:

Daniel@0: rbferr, rbffwd, rbfgrad, rbfpak, rbftrain, rbfunpak
Daniel@0: Pages: Daniel@0: Index Daniel@0:
Daniel@0:

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