Monday, August 11, 2008

Prediction Using Neural Networks


The experiment consisted of three phases (Figure A). In the first phase a genetic algorithm (GA) searched the space of NNs with different structures and resulted a generation with the fittest of all networks searched based on a metric which was either: TheilA or TheilB or TheilC or MAE. The GA search was repeated three times for each metric. Then the best three networks were selected from each repetition of the GA search and for each one of the metrics.

The output of the first phase was a set of thirtysix network structures. In the second phase for each one of the thirty-six resulting network structures we applied the following procedure. We trained (on Training1 set) and validated (on Validation1 set) the network. Then we used the indicated number of epochs from the validation procedure and based on it we retrained the network on the Training1 plus the Validation1 set. Finally we tested the performance of the network on unseen data (Validation2 set).

This procedure was repeated 50 times for each network structure for random initializations of its weights. From the nine networks for each performance statistic, we selected the most stable in terms of standard deviation of their performance. Thus the output of the second phase was a set of four network structures. During the third phase for each one of these four networks we applied the following procedure 50 times. We trained each network on the first half of the Training Set and we used the remaining half for validation. Then, using the indicated epochs by the validation procedure, we retrained the network on the complete Training Set. Finally we tested the network on the Test Set calculating all four metrics.

The performance for each network on each metric was measured again in terms of standard deviation and mean of its performance over 50 times that it was trained, validated and tested.

No comments: