Training a Radial Basis Function Network using C#

A Radial Basis Function (RBF) network is somewhat similar to a neural network. Both accept numeric inputs and emit numeric outputs, and can be used to make predictions. For example, an RBF network (or a neural network) can be used to predict a hospital patient’s risk of a second surgical operation (low, medium, high) based on factors such as age, sex, blood pressure, and so on. Note that categorical factors such as sex (male, female) must be encoded to numerical values (-1, +1).

The main challenge is to find the values for an RBF network’s weights and biases so that computed outputs closely match known outputs. This is called training the RBF network. Once trained, the weights and bias values can be used to make predictions for new input data where the output values are not known.

I wrote an article titled “Radial Basis Function Network Training” in the December 2013 issue of Visual Studio Magazine. See In theory, RBF networks can be trained very quickly and efficiently using traditional matrix-based techniques. However, such techniques tend to be rather brittle and don’t scale well for extremely large data sets. So I often prefer to train RBF networks using particle swarm optimization (PSO).

PSO is a meta-heuristic (meaning a set of guidelines and principles rather than a specific algorithm) that is based on the behavior of groups such as flocks of birds. Although PSO doesn’t guarantee an optimal solution, PSO often is very effective.

RBF networks aren’t used very much, but they are quite interesting. RBF networks are an example of “kernel systems”. RBF networks are conceptually related to Support Vector Machine (SVM) systems.


This entry was posted in Machine Learning. Bookmark the permalink.