Radial Basis Function Network |
This program demonstrates some function approximation capabilities of a Radial Basis Function Network.
The user supplies a set of training points which represent some "sample" points for some arbitrary curve. Next, the user specifies the number of equally spaced gaussian centers and the variance for the network. Using the training samples, the weights multiplying each of the gaussian basis functions arecalculated using the pseudo-inverse (yielding the minimum least-squares solution). The resulting network is then used to approximate the function between the given "sample" points.
This Java applet (© 1996 - Jesse W. Hong, Massachusetts Institute of Technology) was integrated as is into this web page with the agreement of the author. Please send comments about this applet directly to jesse@mit.edu.
After learning, the scaled plots of each of the gaussians is shown in green in the upper graph. The resulting approximation of the curve which is the sum of all the scaled gaussians is shown in red.
Try to make sure that your data points are equally spaced. If they are not and you have a lot of centers, then in between some of the data points, the fitted curve may go off screen. Just add a new point in these regions and click on "Go!" again.
Play around with the number of centers and the standard deviation and see how the smoothness and accuracy of the approximation is affected. E.g. make the standard deviation 0.25, place 10 equally spaced data points, click on "Go!", then make the standard deviation 1.0, and click on "Go!" again. You can also play with the number of data points, etc.