Time Series Prediction Using a Finite Impulse Response Neural Network |
FIRNet is a neural network-based program that can learn how to predict future values in a time-ordered series of data points. It is written in platform-independent C++ code and employs the Finite Impulse Response neural network architecture. Assuming a basic knowledge of neural networks, FIRNet is easy to use, and can be applied to almost any data set.
This work was done as part of a final project for CS 152: Neural Networks. The primary goal of the project was to create a robust, command line-driven program that could take in any ASCII time series and use FIR network technology to perform time series prediction.
In a standard feed-forward network, inputs to a single node are multiplied by scalar weights that represent the synaptic connectivity between neurons. The FIR network is a generalization of this architecture, where scalar weights are replaced with moving average filters. These filters compute a weighted average of past values presented to the network, as opposed to the feed-forward network, which only computes a weighted "average" of the current value. FIR networks are trained using a variation on the backpropagation algorithm.
The prediction engine in FIRNet is based on a MATLAB demo written by Eric Wan of the Oregon Graduate Institute. My primary resource for theory was the article Time Series Prediction Using a Neural Network with Embedded Tapped Delay-Lines, Eric Wan, in Time Series Prediction: Forecasting the Future and Understanding the Past, editors A. Weigend and N. Gershenfeld, Addison-Wesley, 1994.