 |
THIRD FORTNIGHT REVIEW
INTRODUCTION |
This is the third review out of seven along my 15 week-placement in British Steel.
During the past two weeks, I was working on two different subjects. I finished the projects dealing with the input part of the Network and I have been studying different kinds of NNs to be able to decide which of them could be the most efficient in our particular case.
Many various NNs exist, which cover a lot of different areas, from classification for signals or images (pattern recognition), to prediction for databases. Before doing anything else, I have to choose which type of network to use and which data I'll use to train it.
|
NEUROSHELL 2 |
To test the integrity of the input file generated by my program pfm2input.exe, I tried a basic network from NeuroShell 2.
NeuroShell 2 can be used in two ways, Beginner's or Advanced Systems.
The Beginner's System uses a three layer Backpropagation network, a universal architecture which has the ability to generalise well on a wide variety of problems. The Beginner's System presets network parameters such as learning rate, momentum, and number of hidden nodes. You enter data, specify the inputs and outputs, and train the network. You are then able to apply the trained network to new data and export the results.
The Advanced System gives experienced neural network users the ability to create and execute a variety of neural networks architectures with more user control compared to the Beginner's System.
|
NEUROSHELL 2 BEGINNER'S SYSTEM |
The Beginner's System is divided into four panels.
Problem Input
- File Import - This module allows the user to import formatted files from a spreadsheet for example.
- Data Entry - This module allows the user to enter data in a spreadsheet-like interface.
Build Neural Networks
- Define Inputs/Outputs - This module allows the user to designate which data will be used as network inputs or outputs.
- Test Set Extract - This module allows the user to separate a test data set from the training data.
- Learning - This module allows the user to select network training parameters and trains the network.
Apply Neural Network
- Apply to File - This module processes a data file through a trained network, producing a new file which contains the network's predictions or classifications.
- Attach Output File - This module combines the new file of outputs with the original pattern file. The user may also use this module to combine any two internal (spreadsheet) files.
Problem Output
- File Export - This module allows the user to export data from NeuroShell 2 files into ASCII (text) files, binary files, or to paste data from NeuroShell files into specific columns in your spreadsheet.
- Examine Data - Use this module to view files after network processing.
|
FIRST TEST |
In order to get an idea of the way to use NeuroShell 2 I've tried the Beginner's System. An output graph of the results obtained is printed in the appendix of this logbook. Obviously, it won't be as simple as NeuroShell 2's help file may let believe.
I first imported the input file generated by pfm2input.exe. This file is using the standard CSV format so it is no problem to import it into NeuroShell 2 which saves it as a pattern file.
The file I created for the first attempt is already quite big (but I think it is very small compared to the file that will be used in the final version), it contains 43 columns and 1187 lines:
- 21 columns for the upper thermocouple data recorded during the 20 seconds preceding the supposed alarm,
- 21 corresponding columns for the second thermocouple data and 1 results column which is the alarm type (real alarm, false alarm).
Each line is a different live situation, it means that this file contains 1187 cases to examine to train the network. It represents the data recorded in 17 months.
Then I defined the 42 first columns as input data and the last column as output data, extracted a training set containing 950 patterns and a test set of 237 patterns. Patterns from both sets have been randomly chosen from the pattern file.
I used the Learning module with the default options to train the network. I let it run during 28 hours, 19540 'epochs' has been computed. One epoch is a complete pass though the network of the entire set of training patterns.
I then tried the trained network on the test patterns and calculated the 'R Squared'. It compares the accuracy of the model to the accuracy of a trivial benchmark model wherein the prediction is just the mean of all of the samples. A perfect fit would result in an R squared value of 1, a very good fit near 1, and a very poor fit less than 0. The result was -0.0007, which basically means that I'll have to use another network.
I then used the Advanced System's graph preview whose screenshot is in the appendix. No need to say that there is still a lot of work to do.
|
DIFFICULTIES ENCOUNTERED |
I didn't encountered a lot of difficulties in this part of the project though it was an important point: choosing and training a Neural Network.
The main problem is that I don't really know yet which network I should use. I read several documents on that subject that will help me choose which network I should try.
As I spent most of my time reading about the different kinds of networks and trying the NeuroShell 2's tutorials and examples, I had no other major problem, I just had to follow and understand what was already done.
|
ENHANCED SKILLS |
In the last two weeks, I learnt a lot about Neural Networks, the way to use them, how to include them in a Visual Basic program, what kind of networks were used for particular applications.
I have been looking a bit further as well, trying to understand how is made a network, how it is learning, how it is processing a pattern. I read several Neural Network sources in different languages to get an idea of what it looks like in the computer memory.
In the Visual basic applications I will produce, the network will be a matrix so it won't have any code implementing networks in it. The advantage of it, is that is very simple inside the Visual Basic code, it is very fast to process as well. The main drawback is that a matrix is a trained network and it cannot be modified or enhanced easily. It has to be done with NeuroShell 2.
|
SCREENSHOTS |
 |

This is my first attempt using a basic network on real data from British Steel archives. This results have been obtained by training the network during 28 hours.
This is the result expected for a given set of input data, generated by pfm2input.exe
This is the network's result for the same input data. Not really convincing.
As you've certainly noticed, the schema is unreadable so the text is ununderstandable, I'll fix that later. The MS Word file is readable.
|
|
|
 |