X

Neural Network Program










Welcome to ECstep’s Neural Network Program

4.71/5 (7)

This easy-to-use, self-contained, extremely fast Windows program can be used to develop an advanced backpropagation neural network from your data by applying the stochastic gradient descent method. There is more about neural networks here.

If you have any questions about the program, you are welcome to contact me.




Dataset

The dataset to be analyzed should be organized in a table format where each line holds the data of one record and each column holds the specific measurements of each characteristic.

The simplest way to organize the data in a table is to use a spreadsheet program like EXCEL.

For the neural networks program to use the data, it should be in a TAB-separated text format (TSV format). EXCEL can save data in that format.

Preferably the first line in the dataset should be a header line holding the names of each column. If such a line is not present in the dataset, the program will insert a header line with names like this “Variable 1, Variable 2, Variable 3, and so on.”

It is very easy to use the program. You just go through the following 7 steps.

1. Load data

The first step is to load the data into the program. To develop a neural network you start by loading a set of training data. The data will then appear in the top left window as shown in the figure below.

2. Select Inputs

The next step is to select those variables that should be used as inputs to the neural network.

You just click the variables in the Select Inputs list box to select them.

3. Select Outputs

In the Select Outputs list box you click the variable(s) you need as output(s).


4. Define Net

Number of hidden layers

After you have specified the Input and Output variables their number will be displayed. Now you need to specify the number of hidden layers.

A single layer may be sufficient in most cases. However, if the number of inputs is large and you suspect a complex data structure, it may be necessary to use two hidden layers.

Neural networks with two hidden layers can represent functions of any shape. Neural networks with more than two hidden layers do not give better results.

Number of neurons

Next, you specify the number of neurons in the hidden layer(s). You may try different net configurations with different numbers of hidden neurons. You may have up to 500 neurons in the first hidden layer and up to 250 neurons in the second hidden layer.

5. Define Training And Test Cases

The training dataset consists of many example records or cases of input variables and the corresponding output variables. After training the resulting neural network will be particularly well adapted to the training dataset.

Normally the neural network should be able to predict the outputs using independent data. It should be useful generally.

The general usefulness of the neural network is analyzed using independent test data.

The program allows splitting the loaded data into a training and test dataset. This can be done in two ways.

Sequential data splitting (default): You can specify the percentage of the data that should be training cases. The remaining percent will automatically be the test cases. You can also specify if the test cases should be the last or the first part of the data.

Random data splitting: The data can also be split randomly into training and test cases according to the selected percentages. You can specify the test dataset to the following percentages: 5, 10, 15, 20, 25, 30, 35, 40, 45, or 50%. The program will automatically perform the random splitting of the data according to the percentage you select.


6. Set training parameters

Learning Rate

The learning rate controls how quickly the neural network is adapting to the problem.

You can specify the learning rate you want to use. You may later change the learning rate after pausing the training. You can set the learning rate from 5 down to 0.000001.

Momentum

The momentum is a parameter (between zero and one) that specifies the fraction of the previous weight update that should be added to the current one.

Initially, the momentum is set to 0.8. You may specify another value and you may later change the value after pausing training of the network. You can set the momentum from zero to one.

Tolerance

The tolerance is the maximum difference between the correct output and the output predicted by the neural network for any of the outputs.

Initially, the tolerance is set to 0.05. You may specify another tolerance initially or in a pause during training. It is possible to choose a tolerance from a wide range of values down to 0.000001.

Noise

Training a neural network with a small dataset can lead to overfitting and poor performance on a new dataset.

Adding noise to the weights during training can improve the robustness of the network, resulting in better generalization and faster learning.

Initially, the noise is set to zero. If training is not successful with zero noise, you may add a normally distributed noise with a small standard deviation (SD) (0.001-0.00001) to the weights in a pause during training.

7. Train Net

Now you should be ready to train the net. The first step is to “initialize” the net by giving the weights in the network random starting values.

After that, you click “Start” to start training the net. At any time you can stop training by clicking “Stop”.

You can stop training and adjust training parameters many times during training.


Progress of Learning

In the windows on the right side of the program, you can follow the progress of learning both graphically and in numbers showing the percentage of correct classification at the specified tolerance and the mean square error between the predicted and the actual correct output.

The progress of learning using the training data is shown in the upper section.

If data splitting has been performed the progress of prediction using the test data is shown in the lower section.

As long as the neural net is learning, the mean square error will decrease as shown by a falling green curve in the continuously moving graphic display(s).

If during training the mean square error increases, learning deteriorates and a rising curve in red color is shown.

Overfitting should be avoided. A sign of this happening is if the mean square error starts to rise for the test data (lower window) while it still falls for the training data (upper window). When this happens the neural network has been trained optimally and training should stop.


Predict using the trained net

When the neural net has been successfully trained, it can be used to predict outcomes in new data.

Below you see the simple data used to develop a net to predict the XOR (exclusive or) function. The output (Y) should be predicted by the two inputs X1 and X2. Y should be 1 if X1 and X2 are different, otherwise, Y should be 0.

Using a net with 2 neurons in a single hidden layer training was performed to a tolerance of only 0.000001.

Using the trained net the predicted Y values can be obtained as shown below.

As you can see the predicted Y-values are rather close to the Y-values (within the specified tolerance).

Save Prediction

You can now save the data file with the prediction results in TAB-separated text format, which can be read by many programs including EXCEL. This will allow you to study the predictions in detail.

Save Net

To use the trained net to predict the output(s) of new data you need to save the net to the computer. You can later reload the net and use it immediately for making predictions using new data.

View the weights in the neural network

The program can display the weights in the trained neural network as shown below.

The weights for biases are included. Biases are included because they improve the learning of the net. The program automatically adds a single bias node for the input layer and for each hidden layer.

Using the net to make predictions from new data

The new data you want to make predictions from should include all the input variables used in the net. These input variables should be organized in the same tabular format as in the dataset used for training the net.

a. Load Prediction Data

You load the prediction data. It will be visible in the top left window.

b. Load Trained Net

Next, you load the trained net corresponding to the prediction data.

Predict the Output(s)

Now you are ready to calculate the predictions of the net using the new data.

The program will immediately compute the prediction of the output(s) corresponding to all cases of the new data.

As before the results will be displayed in column(s) immediately following the last column of the prediction data. The column header(s) will be “Pred.” followed by the output name(s).

As before the prediction results can be saved in TAB-separated text format.

You can see more details on the help page of the program.

If you have any questions about the program, you are welcome to contact me.

Security

  • The program has been successfully tested with every version of Windows including the latest.
  • The program is guaranteed free of any viruses and malware
  • You have an unlimited money-back guarantee no questions asked
  • The online payment is secure using Stripe, which accepts all major debit and credit cards including Visa, Mastercard, American Express, Discover, Diners Club, JCB
  • Card information will remain hidden from me
  • Download the program from a secure (https) download page
  • For extra security, you will receive a backup email with the link to download the program


How to buy

The price for the program is $9.99 USD. This price is very low considering the facilities of the program.

To Buy: Click the blue Pay with Card button below.

Then Stripe sends a small secure pay window to your browser. There you enter your email and your card information.

When you have paid, Stripe will transfer you directly to my secure download page where you can download the program onto your computer. That page will also inform you on how to activate the program to run smoothly on your computer.

As an extra security, you will receive a backup email with the same information. So make sure that you enter your email address correctly.

I wish you the best of luck with the program!