## 2 Method
### Neural Network Training
They also leverage modern hardware capabilities, such as GPUs, more effectively, speeding up the training process. However, very large batch sizes may require more memory and might not generalize as well as smaller batches. Therefore, a batch size of 64 is often a practical choice for training deep neural networks [27]. Validation split is a technique used to assess the generalization performance of a neural network. During training, a portion of the data, typically 10-20%, is set aside as a validation set. This set is not used for training but for evaluating the model's performance after each epoch. By monitoring the validation metrics, such as loss and accuracy, we can detect overfitting and underfitting. The validation split helps in tuning hyperparameters and implementing early stopping, ensuring that the model performs well on unseen data [18]. Figure 2 displays the architecture defined in regard to MLP neural networks. The last step before training is the compilation of the model. The optimizer selected for the model was the Adaptive Moment Estimation (Adam) optimizer [28]. Adam is an advanced optimization algorithm that combines the advantages of two other popular methods: Adaptive Gradient Algorithm (AdaGrad) and Root Mean Square Propagation (RMSProp). Adam utilizes first-order gradients to update the learning parameters and adapts the learning rate for each parameter based on the estimated moments of the gradients. This results in faster convergence and improved performance on complex, high-dimensional data. Adam's adaptability and efficiency make it a highly effective choice for a wide range of machine learning tasks, especially those involving large datasets and complex model architectures, as highlighted in [29]. The loss function employed is sparse categorical crossentropy. In classification problems where the target variable represents discrete categories, crossentropy is a standard choice for quantifying the difference between the predicted probability distribution and the true distribution. Sparse categorical crossentropy is particularly suited for problems where the target data are represented as integers rather than one-hot encoded vectors. This approach simplifies the data preprocessing steps and reduces computational overhead, while still effectively guiding the model to minimize the prediction error for multi-class classification tasks. To evaluate the performance of the model during training and validation, the metric chosen was accuracy. Accuracy is a straightforward and intuitive measure that calculates the proportion of correctly predicted instances out of the total instances. By tracking accuracy, researchers can gain insights into a model's performance in correctly classifying the input data. This metric is especially useful in balanced datasets where all classes are represented equally, providing a clear indication of the model's classification capabilities. When running'model.fit' in Keras, you will observe detailed progress information for each epoch in the console. This includes the current epoch number out of the total epochs, the training loss and accuracy metrics for each batch and epoch, and the validation loss and accuracy if a validation split is used. Additionally, you see the time taken per epoch. If early stopping is enabled, a message will indicate when training halts early due to no further improvement in validation performance. This output is crucial for monitoring the training process and adjusting hyperparameters as needed.