||Creating network has 2 steps
- Initializing parameters (function InitializeNet(...) )
- Initializing the layers (function InitializeLayers(...) )
1. Initializing parameters
The whole network has some parameters that user could entered - Learning parameter, learning moment, connection to table, stopping parameter. So in this step nothing is created, just only some values are inserted into the structure of BP_Network.
2. Initializing the layers with Nodes
The network is put together by layers and every layer has some nodes. The user already entered the number of layers and nodes, so there is no reason not to create the Net. In the program it is again a set of steps :
- Creating simple layers - with every layer also structure for nodes is created, number of nodes is in special DataTable "layers", which takes the values that entered the user. This functionality is included in the Constructor of BP_layer(int NumOfNodes)
- Inserting the information into every layer about the number of nodes (edges) in previous layer - is necessary for BackPropagation and optimalization
- Creating Nodes and Edges from nodes to the next layer. To empty structure is inserted a Node with initial Threshold, structure for weights and old weights. Input layer does not have a Threshold. This functionality is included in the Constructor of BP_node(...)
- Initializing the weights of Edges. The edges are already created, but without weights. Now weights (of Edges to the next Layer) for each Node are initialized, because it is known, how many nodes contains the next layer. The weight is a random number not higher in absolute value than parameter. Output layer does not have weights.