Back-Propagation Neural Network Constructor

The neural network is constructed on this web page. However, the page does not save the file on leaving the page, so you must save any work that you have created before leaving the page. Please read through all the following before proceeding.

Specifying inputs

In this section of the page you specify the input controls that pass values to the network. At the moment the number of control types is severely limited, but I am hoping to add more in later versions. The possible control types are as follows:

Check boxes (for entering true/false, or 1/0):
Text slots (for entering numbers):

N.B. Text slots are designed for accepting any positive number (decimal or whole number) up to a maximum value that you specify (e.g. you can specify a text slot that takes numbers in the range 0 to 100, or one that takes numbers in the range 0 to 4500 etc.)

The controls that you create will appear within the rectangle below. Each control has a caption (in yellow). The controls will appear in the final network in the order in which they appear below - buttons will appear alongside each control as it is created to allow it to be promoted (moved higher in the list) or demoted.

Input controls
You have no controls currently created

Specifying outputs

This works in the same way as above, except that you specify the outputs from the network. The outputs can also be check boxes or text slots, and you needn't have the same number of outputs as inputs.

Output controls
You have no controls currently created

Training the network

In the text area on the left you should put the data on which you would like the network trained. Back-propagation networks are trained by applying many training patterns repeatedly. Each pattern forms a row in the textarea, with the elements separated by commas.

For instance, suppose you have three inputs (a checkbox, a text slot and another checkbox in that order) and two outputs (a checkbox and a text slot in that order). Each checkbox is represented by the values 1 and 0, each text slot by a value from 0 to the maximum for that slot (e.g. 100 or 4500 in the example above). In this case, rows in the text area will consist of 5 numbers, separated by commas (inputs, then outputs), such as the following three training patterns (colour coded for convenience):

1,56,0,0,100
0,30,1,0,27
1,81,0,1,66

You can type the training data into the slot above, but it is more efficient to paste it in using Copy and Paste from a text file. There is no "save" facility in this program, so a text file in Notepad or something similar is the only way to save the data in any case.

When you click on the button below, the program will check that the training data you have entered matches the controls that you have set up. If it does, then training will begin. The training consists of 10,000 cycles, and you can read how far it has got using the text slot on the right of the button. You can break into the process by saving the network at any stage (it doesn't matter if the count hasn't reached 10,000 - it just means that the network won't have trained as well as it might have done).

(It might be worthwhile saving this page to your hard disk before doing any lengthy training, particularly if you have a slow Internet connection).

Iterations completed :

Saving the network

As you probably know by now, there is no save facility in JavaScript. However, we can cheat a little. The button below will display the finished neural network in its own window, complete with input controls and output controls. This is a good moment to run the network in order to test whether it meets your requirements. If you find that it doesn't produce the results that you want, you can close the small window, give the network another 10,000 training iterations simply by clicking on the Train button again, and then try again.

In order to save the network, you should do the following:

Please feel free to change the page that you create in any way. What this program gives you is the barest minimum, so I would encourage you to personalise it as you think fit.


Back one step