rbf

Purpose

Creates an RBF network with specified architecture

Synopsis


net = rbf(nin, nhidden, nout, func)

Description

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

Example

The following code constructs an RBF network with 1 input and output node and 5 hidden nodes and then propagates some data x through it.

net = rbf(1, 5, 1, 'tps');
[y, act] = rbffwd(net, x);

See Also

rbferr, rbffwd, rbfgrad, rbfpak, rbftrain, rbfunpak
Pages: Index

Copyright (c) Christopher M Bishop, Ian T Nabney (1996, 1997)