## 2 Theory and Calculation  
### Artificial Neural Network Modeling  
An artificial neural network is a computational approach that is increasingly used in the development of predictive models; its fundamental unit is the artificial neuron [78; 79]. The function of an artificial neuron, like a biological one, is to process input signals and modulate its own response through an activation function, called the transfer function, which determines the interruption or transmission of the outgoing impulse. The computing power of a biological brain depends on the number of connections between neurons and the same goes for ANNs. In a feedforward ANN, neurons are organized into layers and since information flows only in one direction without any recurrent cycle, connections are established between neurons belonging to different layers so that none of the possible pathways touch the same neuron twice. Within an ANN, each neuron (\(j\)) computes a weighted sum (\(n_{j}\)) of elements (\(p_{i}\)) in the input vector through weights (\(w_{j,i}\)) associated with each connection. Then, it calculates an output value (\(a\)) by applying an assigned transfer function to \(n_{j}\)[80]:  
\[a_{j}=f\Big{(}n_{j}\Big{)}=f\Big{(}{\sum}_{i=1}^{R}w_{j}p_{i}+b\Big{)}, \tag{1}\]  
where \(R\) is the number of elements in the input vector and \(b\) is the neuron bias. The transfer function may take different analytical expressions. In the current study, the positive linear (Equation (2)) and hyperbolic tangent (Equation (3)) functions were used:  
\[f\Big{(}n_{j}\Big{)}=\left\{\begin{array}{cc}n_{j},&n_{j}>0\\ 0,&n_{j}\leq 0\end{array}\right. \tag{2}\]  
\[f\Big{(}n_{j}\Big{)}=\frac{e^{n_{j}}-e^{-n_{j}}}{e^{n_{j}}+e^{-n_{j}}}=\frac{2 }{1+e^{-2n_{j}}}-1. \tag{3}\]  
Connections' weights and neuron bias are adjustable scalar parameters and their values determine the network function. The central idea of neural networks is to adjust such parameters, through an iterative process (called \"training\" or \"learning\"), so that the ANN is able to perform a desired task [78; 79; 81]. Given an experimental data set, the learning of a feedforward network is based on a supervised approach: It consists of iteratively adjusting weights' values to minimize the difference between experimental targets and calculated output by using an optimization algorithm [78; 79; 81]. The supervised learning is divided into two phases (Figure 1): After the initialization of connection's weights, the forward pass begins, which consists of processing the incoming information through the parallel processing of many neurons to compute net outputs. Then, the backward pass carries out a comparison between the experimental targets and calculated outputs so that a backpropagation algorithm can evaluate a weight's correction. With such an approach, the artificial network learns to recognize the implicit relationship between the input and target and can provide a solution to new input data. A detailed description of the structure of feedforward networks, the computational process performed by the neuron, and the supervised learning has previously been discussed [66].  
Figure 1: Iterative cycle performed by the backpropagation algorithm.