## 2 Artificial Neural Network Approach  
Artificial neural network (ANN) is a machine learning algorithm that attempted to simulate the nervous system of human to process experimental data by classifying, clustering, regressing, and predicting [43]. Multi-layer feed-forward perception network is one of a typical ANN, the topological structure of this network has an input layer, one or more hidden layers, and an output layer, in which the numerous neurons are distributed into layers (in Figure 1). In the network, all of the neurons in each layer are connected to the next layer, and there is no connection among neurons in the same layer. The conversion between the input and the output layer is accomplished by adjusting the weights and thresholds among layers. If the problem can be learned, a set of weights will be stable and a good result will be obtained.  
For multi-layer feed forward networks, the back propagation neural network is one of the most rudimentary and most important neural networks using nonlinear training methods. The training method of the back propagation network is based on supervised learning, which minimizes the errors between the calculated and experimental values by adjusting the weights in a small amounts each time [40,41].  
The training processes of a back propagation network have two stages: the forward stage and the backward stage. The forward stage calculates the network outputs through the given initial connection weights and the input data. In the process, the input data is passed from the input layer to the hidden layer. Then, the neurons in the hidden layer calculate a weighted sum of the input data, processes the sum by using an activation function, and finally pass the activation results to the output layer. The weighted sum of the input data can be calculated by Equation (1) [43, 44, 45, 46].  
\[net_{j}=\sum\omega_{ij}x_{i}+b_{j} \tag{1}\]  
where \(net_{j}\) is the weighted sum of the \(j_{th}\) neuron received from the lower layer with \(n\) neurons, \(\omega_{ij}\) is the weight between the \(i_{th}\) neuron in the lower layer and the \(j_{th}\) neuron in the upper layer, \(x_{i}\) is the output of the \(i_{th}\) neuron in the lower layer, and \(b_{j}\) is the bias of the \(j_{th}\) layer in the upper layer. The activation function in back propagation network generally is Sigmoid function or Linear function. The Sigmoid function can be expressed in Equation (2).  
\[net_{j}=\sum\omega_{ij}x_{i}+b_{j} \tag{2}\]  
\[o_{j}=\frac{1}{1+e^{-net_{j}}} \tag{3}\]  
where \(o_{j}\) is the output of the \(j_{th}\) neuron in the upper layer.  
In the backward stage, the errors between the calculated outputs and the experimental results are calculated, and the errors are passed back to the network to modify the connection weights and bias. This process is repeated until the errors reach an acceptable level. The adjusted value of the weights can be summarized in Equation (4):  
\[\Delta\omega_{ij}(n)=\eta\times\delta_{j}^{j}\times o_{I}^{i} \tag{4}\]  
where \(\Delta\omega_{ij}\) is the \(n_{th}\) value of weights adjustment between the \(i_{th}\) neuron in the lower layer and the \(j_{th}\) neuron in the upper layer, \(\eta\) is the training rate, \(\delta_{j}^{j}\) is the local gradient of the \(j_{th}\) layer, and \(o_{I}^{i}\) is the output of the input neurons.  
In this study, the training method of the ANN models uses the LM (Levenberg-Marquardt) algorithm, because the LM algorithm combines the advantages of the Quasi-Newton algorithm and the Steepest Descent Back-propagation, which is suitable for non-linear least square problems and curve fitting [45].