net = rbf(nin, nhidden, nout, func)
net = rbf(nin, nhidden, nout, func) constructs and initialises
a radial basis function network returning a data structure net.
The weights are all initialised with a zero mean, unit variance normal
distribution, with the exception of the variances, which are set to one.
This makes use of the Matlab function
randn and so the seed for the random weight initialization can be
set using randn('state', s) where s is the seed value. The
activation functions are defined in terms of the distance between
the data point and the corresponding centre. Note that the functions are
computed to a convenient constant multiple: for example, the Gaussian
is not normalised. (Normalisation is not needed as the function outputs
are linearly combined in the next layer.)
The fields in net are
type = 'rbf'
nin = number of inputs
nhidden = number of hidden units
nout = number of outputs
nwts = total number of weights and biases
actfn = string defining hidden unit activation function:
'gaussian' for a radially symmetric Gaussian function.
'tps' for r^2 log r, the thin plate spline function.
'r4logr' for r^4 log r.
c = centres
wi = squared widths (null for rlogr and tps)
w2 = second layer weight matrix
b2 = second layer bias vector
x through it.
net = rbf(1, 5, 1, 'tps'); [y, act] = rbffwd(net, x);
rbferr, rbffwd, rbfgrad, rbfpak, rbftrain, rbfunpakCopyright (c) Christopher M Bishop, Ian T Nabney (1996, 1997)