wolffd@0: wolffd@0: wolffd@0: wolffd@0: Netlab Reference Manual rbf wolffd@0: wolffd@0: wolffd@0: wolffd@0:

rbf wolffd@0:

wolffd@0:

wolffd@0: Purpose wolffd@0:

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

wolffd@0: Synopsis wolffd@0:

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

wolffd@0: Description wolffd@0:

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

The fields in net are wolffd@0:

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

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

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

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

wolffd@0: Example wolffd@0:

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

wolffd@0: See Also wolffd@0:

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

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