Public Methods |
| | RadialBasisNetwork (int inputs, int centers, int outputs) |
| | RadialBasisNetwork (const char *filename) |
| | RadialBasisNetwork (RadialBasisNetwork &srcNet) |
| | Copy constructor, NOT YET IMPLEMENTED. More...
|
| virtual | ~RadialBasisNetwork () |
| virtual void | setCenter (int i, VECTOR ¢er) |
| virtual void | setCenter (int i, real *center) |
| virtual VECTOR | getCenter (int i) |
| virtual int | getCenterCount () |
| | The number of centers in the network. More...
|
| virtual void | setBias (int i, real bias) |
| virtual real | getBias (int i) |
| virtual void | removeBias (int i) |
| virtual void | setWeight (int center, int output, real weight) |
| virtual real | getWeight (int center, int output) |
| virtual VECTOR | getOutput (VECTOR &input) |
| virtual VECTOR | getOutput (real *input) |
| void | setCenterActivationFunction (ActivationFunction f, ActivationFunction df) |
| void | trainWeights (TrainingSet &T) |
| virtual const char * | getClassName () |
| | Returns "RadialBasisNetwork". More...
|
| virtual void | save (const char *filename) |
| | Save the network to a text file. More...
|
Protected Attributes |
| int | _nCenters |
| InputLayer * | _inputLayer |
| | Layer of input. Each member is an InputNeuron. More...
|
| Layer * | _centerLayer |
| | Layer of centers, each member is a CenterNEuron. More...
|
| Layer * | _outputLayer |
| | Layer of output, each member if a SimpleNeuron. More...
|
The network consists of a layer of N-inputs, then h-(N-dimensional) centers, and some outputs. The default activation function for the centers is gaussian(), which is the gaussian distribution function with sigma = 1. If you want to change that then you'll have to write your own activation function and change it with setCenterActivationFunction(). The output neurons use the identity() function as the activation function, thus the output is simply the weighted sum of the outputs of the centers.
There are atleast two ways to train a radial basis network.
One involves fixed centers and training the weights only in order to minimize the error over a training set. The other involves using the gradient descent rule to adjust both centers and weights. Currently only the former is implemented in annie using trainWeights().