## 3 Materials and Methods
### Optimization of Each Class' Weight Values Related to Each Factor
#### 3.3.1 Radial Basis Function (RBF) Neural Network  
Artificial neural networks are widely used in various fields because of their key feature of training. There are many different networks that are classified based on their structure and training method. One of the most widely used artificial neural networks is RBF, which was first introduced by [PERSON] [89]. RBF is a feed-forward artificial neural network that has been widely used in different fields, including geology, mainly due to its high learning speed and having no local minimum problem [90].  
Briefly, the RBF structure is made up of three layers; input, non-linear hidden, and linear output layer (Figure 3) [91]. Hidden layers are also made up of a number of nodes, each having a data cluster with a unique influence radius and center. Each node calculates the distance from its own cluster center to the data vector. The distance is calculated using a transformed basis function and is transmitted to outer layer nodes as the hidden layer output [92]. Several functions are used as radial basis functions, which is illustrated in Table 1.  
Figure 3: Structure of an RBF neural network.  
In Table 1, \(x=\left[x_{1},x_{2},\ldots,x_{n}\right]^{T}\) is the input vector, \(F=\left(F_{1}(x),F_{2}(x),\ldots,F_{k}(x)\right)\) is the \(i\)-th basis function, \(\parallel.\parallel\) is the Euclidian distance, and \(v_{i}\) and \(r_{i}\) are center and width of the Gaussian basic function of the \(i\)-th node, respectively. Among the basis functions given in Table 1, the Gaussian RBF is the most commonly used basis function [93] because of its appealing properties and flexibility associated with the values of its parameters.  
Finally, the output of RBF is calculated using the linear combination set of basis function values, and the weight of each hidden layer node is defined by Equation (5):  
\[y_{h}(x)=\sum_{i=1}^{h}W_{ih}F_{i}(x) \tag{5}\]  
where, \(y=\left[y_{1},y_{2},\ldots,y_{m}\right]^{T}\) is m-dimensional output vector, \(y_{h}\) is the output of \(h\)-th node in this vector, \(W_{ih}\) is the weight between the \(i\)-th node of the hidden layer and the \(h\)-th node of output layer, and \(F_{i}(x)\) is the output of the \(i\)-th node.  
It must be noted that there are different algorithms of the RBF method used by researchers, including the imperialist competitive algorithm (ICA), the teaching-learning-based optimization (TLBO), and the genetic algorithm (GA). However, in all RBF training algorithms, a cost function is used to control the process of training in a way where a low value represents good training and a high value shows poor training. In other words, a high value of the cost function means that the predicted amount by the RBF is far from the target value and a low amount of the cost function shows that the amount predicted by the RBF is close to the target value. The value of the cost function is calculated as follows:  
\[E(t)=\frac{1}{2}\Big{[}y(t)-y_{q}(t)\Big{]}^{2} \tag{6}\]  
where \(E(t)\) is the cost function at time \(t\), and the error \(\Big{[}y(t)-y_{q}(t)\Big{]}\) is calculated by subtracting the target value and the value predicted by the RBF at time \(t\).