where \(\Omega (g)\)  is a complexity penalty term associated with the final model \(g\)  that has been chosen as part of the training process. Eq. (REF ) implies that for the ML model to have good generalization abilities, the in-sample error has to be made as small as possible, while also keeping the model complexity to a minimum. Simple models may not be capable of achieving a small enough \(\mathcal {E}_{\text{in}}\) , underfitting the available data. Overly complex models can potentially achieve a zero \(\mathcal {E}_{\text{in}}\)  at the cost of a large complexity penalty term, overfitting the data. This is known as the bias-variance trade-off [1]}. Finding a balance between minimizing \(\mathcal {E}_{\text{in}}\)  and restricting \(\Omega (g)\)  is accomplished through the evaluation of different models on a dataset that is not used during training. Consequently, it is common practice to create three different datasets for a specific task; the training, the validation and the test set [1]}. The training set is used to train the learning parameters \(\psi \)  of a network, such as the weights \(w\)  and biases \(b\)  in in an artificial neural network (ANN). The validation set is used for model selection as well as for ensuring that the network is not overfitting during training. Finally, the test set is used to evaluate the chosen ML model, after it is trained.
