## 3 Research Methodology
### ANN-Based Machine Learning  
ANNs are network structures composed of connected artificial neurons. By modifying the weights of the connections between artificial neurons, decision makers can simulate scenarios according to their perception and judgment. The output of each neuron is obtained using Equation (7), in which \(x_{i}\) represents the input value, \(w_{i}\) represents the weight of the neuron connection, \(b_{i}\) represents the bias, and \(y_{i}\) represents the output value. By transferring the principles of biological neural networks to ANNs, scientists have enabled the use of advanced mathematical and statistical calculations to solve complex problems. ANNs can obtain information from the external environment. By using network structures and learning algorithms to train ANNs, decision makers can control the output to obtain the desired outcome. \[y_{i}=\sum_{i}^{n}w_{i}\cdot x_{i}+b_{i}, \tag{7}\]  
ANNs comprise an input layer, hidden layers, and an output layer (Figure 1). The input layer receives data from the external environment and converts the input data into suitable network signals according to the characteristics of the problem. Each neuron in the input layer only receives one input variable, which is then passed to the neuron in the next layer. The number of neurons in the input layer is equal to the number of input variables received. The hidden layers, which are located between the input and output layers, serve as an internal structure where interactions occur for solving nonlinear problems. The number of hidden layers and the numbers of neurons in these layers are fixed and can be freely adjusted according to the data complexity. The use of a higher number of hidden layers results in a longer computation time, during which local optimization might occur, which causes overfitting. When fewer neurons cannot be used for processing complicated problems, the output layer processes the data output to the external environment. The number of neurons in the output layer is determined according to the problem. In the output layer, nonlinear transfer functions are used to convert output data into output signals, which serve as a reference for predicting possibilities. During ANN training, the input parameters are randomly initialized, and loop computation is performed to output the training results. The training results are compared with the actual results to obtain the loss function. The input parameters are constantly updated until a minimal loss function value is achieved. After the error threshold is reached, the \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline
**Order** & **1** & **2** & **3** & **4** & **5** & **6** \\ \hline RI & N.A. & N.A. & 0.58 & 0.9 & 1.12 & 1.24 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: RI values for different layers. loop computation is stopped. An ANN training model combines backpropagation (BP) and stochastic gradient descent to minimize errors. First, BP is used to compute the weight of the connections between neurons in each layer. Second, an optimized objective function is used to determine the quality of each weight. Because BP networks have excellent nonlinear mapping capabilities, the ANN can approximate continuous functions for model learning. A study on deep neural network learning indicated that stochastic gradient descent is an effective optimization method [48]. Nonlinear functions are used in ANNs as activation functions (e.g., the sigmoid and tanh functions) to approximate any function. Activation functions must be differentiable to enable the computation of the partial derivative of the loss function with respect to the weights when using BP to update the gradient. Basically, a two-layer neural network can approximate most functions. In ANN training, the input (\(x_{i}\)), weight (\(w_{i}\)), and bias (\(b_{i}\)) are used to calculate the weighted sum of each neuron. Therefore, the parameters of the activation function are defined as the connection weights of input layer neurons and hidden layer neurons [49].