## Materials and Methods
### Artificial Neural Network Development
#### 2.1.2 Training  
Once the architecture is defined, the neural network is trained, validated and tested upon the experimental data-set made of the primary input signals from the system. In detail, for each network configuration, the training process is carried out dividing the experimental results into three subsets of samples, randomly assorted:  
* The first subset (70% of samples) is used for the training itself and it is fed to the network algorithm in order to calculate the values associated to the weight and bias matrix elements;
* The second subset (15% of samples) is used as validation basis. This is employed to measure the generalization capability of the network and to abort the training process early if the network performance on this subset does not improve. (i.e., before the target value for the error function is reached). The validation subset does not influence the network generalization capabilities. * The third subset (15% of samples) is used for the test, that is to say for a further generalization capability check having no effect on the training phase. As reported in Table 1, two kinds of algorithms are considered to train the networks. First, the Gradient descent with momentum backpropagation (TrainGDM). It updates weights and bias values according to gradient descent with momentum (momentum acts like a low-pass filter and allows ignoring small errors in the error surface). Second, the Gradient descent with adaptive learning rate backpropagation (TrainGDA). It uses a gradient descent with adaptive learning rate. Specifically, for each training iteration (either referred to as epoch), whether performances decrease, the learning rate is updated based on learning rate increasing ratio, \(LR_{inc}\). During training, if the nth-step error is less than (n \(-\) 1)th-step error, the learning rate is increased. Otherwise, in the event of abnormal performance enhancement, the learning rate is decreased by the learning rate decreasing ratio, \(LR_{dec}\). If the nth-step error exceeds the error calculated at the preceding iteration, the learning rate is decreased accordingly. With regard to the network training, Table 2 shows the value assigned to the main parameters of the process, managing learning speed and aborting the process when needed. The other parameters in \begin{table}
\begin{tabular}{c c c c c c c c c} \hline \hline \multirow{2}{*}{**ID**} & \multirow{2}{*}{**Architecture**} & **Number** & **Neurons** & **Neurons** & **Neurons** & **Neurons** & **Training** & **Transfer** \\  & & **of HL** & **in HL 1** & **in HL 2** & **in HL 3** & **in HL 4** & **Function** & **Function** \\ \hline ANN1 & & 2 & 10 & 10 & - & - & TrainGDA & \\ ANN2 & L1 & 2 & 16 & 12 & - & - & TrainGDM & LogSIG \\ ANN3 & & 2 & 20 & 16 & - & - & TrainGDM & \\ \hline ANN4 & & 3 & 20 & 18 & 14 & - & & \\ ANN5 & & 3 & 25 & 22 & 18 & - & & TanSIG \\ ANN6 & L2 & 3 & 15 & 10 & 10 & - & & \\ ANN7 & & 3 & 25 & 20 & 22 & - & & \\ ANN8 & & 3 & 30 & 28 & 26 & - & & \\ \hline ANN9 & L3 & 4 & 12 & 10 & 8 & 6 & & TanSIG \\ \hline ANN10 & L2 & 3 & 30 & 28 & 26 & - & & \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Network configurations: architecture, number of neurons per hidden layers and functions. Table 2 are: \"minimum performance gradient\" represents the minimum accepted value of performance improvement; \"maximum validation failures\" is the maximum number of failures allowed along the network improvement and \"performance goal\" is the target of the performance function. During the training phase, simulation performances are checked on the Mean Squared normalized Error (_MSE_, Equation (1)) and Root Mean squared Error (_RMS_, Equation (2)), both based on the sum of squared errors (the difference between the ANN output \(\theta_{ann,i}\) and the corresponding experimental results \(\theta_{exp,i}\)).