## 2 Method
### Neural Network Training
The backpropagation algorithm calculates the gradient of the loss function with respect to each weight by the chain rule, allowing the network to learn the optimal weights that minimize the prediction error on the training data. Regularization techniques such as dropout and batch normalization can be employed to prevent overfitting, ensuring that the model generalizes well to unseen data [19; 20]. The effectiveness of Multi-Input MLPs in handling feature-based datasets has been demonstrated in various domains. For example, in healthcare, these networks have been used to integrate patient demographic information, clinical measurements, and genomic data to predict disease outcomes [21]. In finance, Multi-Input MLPs have been utilized to combine market indicators, economic factors, and textual news data to forecast stock prices [22]. These applications highlight the versatility and robustness of Multi-Input MLPs in processing and learning from complex, multi-faceted datasets. In summary, employing a Multi-Input Multi-Layer Perceptron for feature-based datasets offers a powerful approach to capturing the complex interactions within heterogeneous data. By leveraging the architecture of MLPs and the flexibility to handle multiple input types, this method provides significant advantages in terms of accuracy and generalization across a wide range of applications [23; 24]. To define the neural network, we used Keras. Keras is a powerful, high-level neural network API, written in Python and capable of running on top of TensorFlow. It is designed to enable fast experimentation with deep neural networks, allowing users to build and train models efficiently. Keras provides a user-friendly interface that simplifies the process of building complex neural network architectures. It supports both convolutional and recurrent networks, as well as combinations of the two, making it a versatile tool for various deep learning tasks [25]. To define a multi-input neural network in Keras, each input is specified with its respective shape. For example, images of size 150 \(\times\) 150 pixels are represented as separate input layers. Each input undergoes a flattening process to convert the 2D matrices into 1D arrays. Dense layers are then applied to each flattened input, allowing the network to learn representations from each input independently. These dense layers are concatenated to merge the features learned from each input, followed by additional dense layers to process the combined features further. This approach enables the network to learn from multiple inputs simultaneously, making it suitable for complex, multi-feature datasets [18]. In the neural network, we integrated early stopping. Early stopping is a technique used to prevent overfitting in neural networks by monitoring the model's performance on a validation set during training. It stops training when the validation loss stops improving, indicating that the model has learned as much as it can from the training data. The patience parameter specifies the number of epochs to wait for an improvement before stopping. The restore_best_weights parameter ensures that the model weights are set to the best-performing epoch, providing the best possible model after training. This technique is crucial for achieving optimal generalization on unseen data [26]. Setting a high number of epochs, such as 100, allows the model to learn sufficiently from the data, ensuring that it captures the underlying patterns. However, this must be balanced with the risk of overfitting. Early stopping can mitigate this risk by halting training when performance ceases to improve. Training for more epochs provides a comprehensive understanding of the training dynamics and helps determine the optimal stopping point based on validation performance [18]. Choosing a batch size of 64 balances the trade-off between computational efficiency and the stability of gradient updates. Larger batch sizes, such as 64, enable more stable and accurate gradient estimates, leading to smoother convergence.