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