## 3 Artificial Neural Network Models
In fact, the performance of a neural network model is defined by its architecture, but this last one is selected by error validation. The architecture refers to the set of parameters that govern the complexity of the model, including the number of neurons, layers, updating and regularization algorithms among others. The error validation refers to an evaluation procedure for a certain architecture to find a balance between accuracy and error distribution without causing overfitting [32]. In practical applications, the training and testing datasets are used to achieve an architecture model that represents almost all information in the dataset. The training data are used to teach the model on the input-output relations. The testing data validate the model so it represents most of the total spectrum of possibilities in the dataset. For the present research, the databases for the feed rate and cutting velocity model, which are described in Tables 1 and 2, are divided into a ratio of 0.5 for training and testing validation. The algorithm for converging the weights in a neural network model also plays an important role in the architecture. For this implementation, a globally convergent training scheme, based on the resilient propagation, is used. A crucial advantage of this algorithm compared to the traditional back-propagation or normal resilient propagation is the computing time. This approach shows better accuracy performance with similar datasets to be used for this research (datasets that are compounded by factors and numerical mapped values [29]). The most important part in error validation is the definition of a good performance, which qualifies the architecture of a neural network model. For this approach, the traditional root mean square error comparison was not the only one considered to validate the models [32]. Instead, the error validation for this research is defined by the comparison of error density functions for training and testing evaluations. Error density functions are continuous functions that represent the attained errors for training and testing evaluations by a known function. The Gaussian function is used to represent these density functions. In this way, the training and testing evaluations can be represented by a Gaussian error density function. It is important to note that a Gaussian function is defined by two parameters: mean or expectation and standard deviation. For this approach, the expectation value is zero and the entire range of errors in the validation is defined by \(+/-3\) standard deviations by its definition. Under this premise, a certain trained model will present a certain Gaussian density function. For such an attained model, a good performance should be defined by a testing Gaussian density function that is similar to the reached model in the training stage. For instance, Figure 3 shows two models (model A and model B) that evaluate different architectures for the feed rate model as an example. Model A shows a testing evaluation with a particular density function, which is different to the one reached in the training evaluation. In contrast, model B shows a testing error density performance that is quite similar to the one reached in the training evaluations. Table 3 numerically shows the same concept shown in Figure 3. Table 3 also shows additional error comparisons, including the root mean square error (RMSE), median absolute deviation (MAD), maximum and minimum error values, etc. It is important to note that the large differences between RMSE and MAD are indicative of the error density function [30]. To achieve the best model for feed rate and cutting velocity, the following strategy was implemented to validate any possible architecture:  
* Consider random architectures with one and two hidden layers with different neurons per layer. * For each architecture, the training and testing error density functions are obtained.