wolffd@0: 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:
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:
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:
rbferr
, rbffwd
, rbfgrad
, rbfpak
, rbftrain
, rbfunpak
Copyright (c) Ian T Nabney (1996-9) wolffd@0: wolffd@0: wolffd@0: wolffd@0: