Loading...
 

Build a neural network

Build neural network

Description

This app is used to create, train and test a neural network. The input data can be made available to the neural network from the system via a list or via an external Excel file.

Functionality

Editing window

Within this window is all the functionality for loading, training and testing a new neural network to be created.

In the upper area there are the two tabs "Object list view" and "Excel file" to define the source of the training data. After the training data has been defined or read in, the input and output data of the neural network are defined using the columns of the list with the training data.

The last step is to specify the parameters of the neural network (see "Initialise NN" and "Fine-tune NN" buttons).

Now you can train the network with the input and output data using the button "Train NN". This can be executed several times in succession, whereby the result of each training cycle is output in a list.

By clicking on a training cycle, the quality of the neural network can be displayed again on the basis of all input data.

Fields
FieldDescription
Object list view
: Dialogue windowTitle of the window from which the list was sent to this app as a data source for the neural network.
: listName of the list view (if available).
Excel file
: Excel file-
: : fileName of the Excel file that is to be the data source for the neural network. A file can be selected with the button to the right of the field.
: data-
: : tableNumber of the table sheet in the Excel file.
: : row headingSpecification of the line number with the heading of the data. The designation of the data fields is generated from the heading.
:: Read from lineSpecifies the line number from which the data is to be read in from the Excel file.
:: ReadButton for reading the data from the Excel file.
:: Read training data directly from Excel

In the mode to read data from Excel (notebook tab is set to "Excel file"), you can choose whether the data should be loaded directly from Excel during training or whether the data should come from the Excel file already loaded into the list.

If this identifier is set, only a few rows are loaded into the list window in order to determine the columns and their data type. This option is useful for very large Excel files (several hundred thousand rows).

Otherwise, the entire Excel file is loaded into the list window and you can then also change the columns and the list entries (see also Report button in the Training data subwindow).

Training data
: dataIf a list was sent to this app, the entries of this list are listed here as training data. If an Excel file was read in, these are listed here as training data.
: copytoclipboard.pngCall up the report app to change the column format of the list.
: RemoveIf some entries in the list are not to be included in the training data, you can mark these unwanted lines in the list and remove them from the list with this button.
Training columns
: dataOutput of the columns of the training data. Using drag & drop, you can define entries from this list either as input or output training data.
: inputListing of the columns that you have previously inserted as input columns/data for training the neural network by dragging and dropping them from the above list with the column details. If you want to remove an entry, you can drag it back to the list of available columns or move it to the list of output columns.
: outputList of the columns that you have previously inserted as output columns/data for training the neural network by dragging and dropping from the above list with the column specifications. If you want to remove an entry, you can drag it back to the list of available columns or move it to the list of input columns.
: Training cycles

Output of the data of each training cycle.

If you double-click on a training cycle, the Training values window opens with the input values, the original output values and the calculated output values. (This is not possible if the Read training data directly from Excel flag is set).

buttonDescription
: Initialise NNThe neural network is initialised, i.e. all parameters and also any previously trained data are lost.
: NN finetuneDuring training, certain training parameters can be reset.
: Train NN

The input and output data are passed to the neural network as training data. After a training (cycle), the result of the quality is output in the list above.

An NN can be trained several times; it is important to obtain a result in which the training loss and the validation error are as small as possible.

As a rule, neural networks tend to overfit the training data set. This means that the network "memorises" the training data. This is generally undesirable, as the network is then unable to interpolate/extrapolate to data that has not yet been seen. This can be recognised by the fact that the "validation error" is significantly greater than the "training loss" (and the training loss is very small). More under Wikipedia-Overfitting.

Apply
: Input data

Dynamic display of input fields (depending on the selected input columns) for the collection of test data for the neural network.

If the neural network is of the type "regression" and you have only defined one input and one output column, you can have test data generated automatically by means of start, step size and end value. The result of such a test series can then also be output as a graph.

: ApplyWith this button, the input data is transferred to the neural network, the result is output in the output data.
: Output dataDynamic fade-in of output fields (depending on the selected output columns) with the result of the test data from the neural network.
: Save NN as XML

If the testing of the neural network has been successful, this button can be used to save the neural network as an XML file and thus make it available to other users/applications.

Additional description data can be added to the trained neural network in the editing app, and the neural network can also be tested directly there.

Buttons
ButtonDescription
Action-
: BackThe app is closed.

Training values

All input and output columns of the original training data are listed in this window. In addition, the value determined by the neural network is also displayed for each original value of an output column. The additional first column indicates whether and which row was used for validation: If a row number is available, this row was used for validation.

If you double-click on a line, the corresponding line is selected in the training data.

The table columns are structured as follows: first the validation column, followed by the input columns. This is followed by the actual output and the output calculated by the neural network, alternating for each output column. In the case of numerical output values, the deviations are also specified.

Buttons
buttonDescription
Action-
: BackThe window is closed.
: Draw

The specified output data and the output data determined with the neural network are output as a graph. This allows the quality of the neural network to be shown by comparing the data.

The creation of the graphs can be controlled by switching columns on and off and changing their order. If columns are hidden, they are not drawn in the graph. The first column is always interpreted as the X-axis.

If rows are selected, only these rows are included in the graph.

: Restore listDeleted values from the list can be restored by clicking this button.
Context menu - Accessible by right-clicking on the list or a line
Menu itemDescription
Invert selectionSelected rows are inverted, i.e. previously unselected rows are selected and vice versa.
Remove selected lines

Selected rows are removed.

Related topics


Technical documentation

Loading module

Module name

neuralNetworkLoad.app

Classes

CX_NEURAL_NETWORK

Security

In addition to restricting access rights via the class and its data fields, the module can be restricted in its use via some of the received messages.

Received messages
MessageParameterFunctionSecurity

LOAD_NEURAL_NETWORK

Sent messages
MessageParametersFunctionReceive module
PLOT_CHART

Operational business