## 2 Material and Methods
### Artificial Neural Network  
The artificial neural network (ANN) is a computational model inspired by the human brain's neural network. It typically consists of three primary layers: the input layer, one or more hidden layers, and the output layer [40; 41]. The primary goal in training an ANN is continuous optimization, which involves mapping input to output to find optimal bias and weight values within the fewest possible iterations. The multilayer perceptron (MLP) is the most frequently utilized ANN structure in the literature. This section delves into MLP and the metaheuristic methods increasingly adopted for MLP training in recent years. Additionally, it covers evaluation metrics for regression problem assessments and data-normalization techniques.  
### Artificial Neural Network  
Similar to ANNs, the MLP functions by mapping a set of input values to a corresponding set of output values. This mapping is achieved through a transformation process designed to derive the output. An MLP consists of three layers: the input layer contains \(n\) input values; the hidden layer, positioned between the input and output layers, varies in size depending on the problem type; and the output layer, which aggregates the results of the MLP network [42]. Figure 2a,b illustrate the fundamental MLP structure and a single neuron's architecture, respectively. The input layer hosts \(n\) neurons, the output layer includes \(k\) neurons, and the hidden layer comprises \(m\) neurons. Each neuron in the hidden layer performs two critical operations: summation and activation. The sum obtained is subsequently passed through an activation function, as depicted in Equation (1).  
\[Sum_{j}=\sum_{i=1}^{n}w_{ij}\cdot in_{i}+b_{j} \tag{1}\]  
where \(w_{ij}\) is the connection weight between the hidden neuron \(j\) and the input neuron \(i\). \(b_{j}\) is the bias value.  
\[y_{j}=f\big{(}Sum_{j}\big{)} \tag{2}\]  
\begin{table}
\begin{tabular}{c l l l l} \hline \hline  & & **Parameter** & **Unit** & **Value** \\ \hline \multirow{6}{*}{**ANN**} & \multirow{2}{*}{pH} & \multirow{2}{*}{-} & 2.4–9.7 \\  & & EC & microS/cm & 203–10,434 \\ \cline{3-5}  & & K\({}^{+}\) & & 0.7–191 \\  & & Na\({}^{+}\) & & 2.6–2600 \\  & & Boron & mg/L & 0–38 \\  & & SiO\({}_{2}\) & & 11–650 \\  & & Cl\({}^{-}\) & & 2.8–2500 \\ \hline \multirow{6}{*}{**ANN**} & \multirow{2}{*}{RT} & \multirow{2}{*}{\({}^{\circ}\)C} & \multirow{2}{*}{11–245} \\  & & & & \\ \cline{1-1} \cline{3-5}  & & & & \\ \cline{1-1} \cline{3-5}  & & & & \\ \cline{1-1} \cline{3-5}  & & & & \\ \hline \hline \end{tabular}
\end{table}
Table 1: Range of hydrogeochemical and RT dataset.  
where \(y_{j}\) is the output value of neuron \(j\), and \(f\) is the sigmoid function. Its calculation is shown in Equation (3).  
\[f\big{(}Sum_{j}\big{)}=\frac{1}{1+e^{-Sum_{j}}} \tag{3}\]  
At the end of these operations, the final output value \(\hat{\mathbf{Y}}_{i}\) is calculated using the sum and activation operations. These operations are given in Equations (5) and (6).  
\[Sum_{j}=\sum_{i=1}^{m}w_{ij}\cdot y_{j}+b_{j} \tag{4}\]  
\[\hat{Y}_{j}=f\big{(}Sum_{j}\big{)} \tag{5}\]  
Here \(Y_{j}\) is the final output of \(j\).